Afew weeks ago (around the time of Apple’s WWDC), I had a chance to see Ross Boucher from 280 North give a demonstration of Cappuccino and a pretty thorough explanation of what it does and how it works. In short, Cappuccino is a GUI web programming framework that aims to bring Desktop style applications to the browser. It uses similar (if not the same) paradigms to Cocoa and Objective-C.
We had previously been writing our app in jQuery + RaphaelJS which looked good, but we found it was a bit hacky and jumped at a chance to work on a framework that would give us a more freedom with UI interactions.
After toying around with Cappuccino for the past month and learning more about Objective-J, we’ve come to appreciate the code organization that Cappuccino allows (and enforces) with classes, imports (mix-ins) and sane variable scoping. This has been incredibly beneficial in keeping our code readable and easy to follow. At the end of the month, we stepped back and looked at the pros and cons of cappuccino and decided to move forward with using Cappuccino.
PROS OF CAPPUCCINO:
- Fast Development of real GUI interactions in a browser
- Standard UI Look & Feel
- No dealing with HTML & CSS
- Writing a re-usable UI component is straight forward
- Open Source*
- Higher learning curve (if not familiar with GUI programming or Cocoa)
- Less feeling of “control”
- Harder to debug – be warned that you have to write code with caution and test often
- Harder to theme and style than CSS – the default theming is just as tedious as theming a desktop APP (ick)
- Longer loading times
- Less well explained documentation than jQuery or RaphaelJS – there is an expectation that you know how to use Cocoa. Luckily, Philippe Laval has put together a nice set of tutorials at http://www.nice-panorama.com/Programmation/cappuccino/ that have helped us out greatly.
As the cappuccino devs mention, Cappuccino is meant for Applications and not content presentation. Once your user interaction becomes more involved than a user clicking an element to get at new content, it may be time to consider Cappuccino.