Ben Ward

Tumblr 81235921

.

Cappuccino is not designed for building web sites, or making existing sites more “dynamic”. We think these goals are too far removed from those of application development to be served well by a single framework. […] With Cappuccino, you don’t need to know HTML. You’ll never write a line of CSS. You don’t ever have interact with DOM.

Everything that’s wrong about Cappuccino, quoted from their own about page.

I actually get angry about this. When I hear a friend talking about learning Cappucino I react as if they’ve been tricked out of their money by a con-artist on a street corner. I think they’ve been conned out of true knowledge, duped down the wrong path. “Don’t be like those schmucks learning HTML! Just take these magic beans!”.

Cappuccino is based on a philosophy which I find completely alien, and with which I’m completely unable to sympathise.

If you want to build a rich web application, you need to learn something new. Many people think this will be JavaScript 2, or HTML 5, or some new standard. The problem is, as we’ve come to realize, standards bodies work too slowly. Cappuccino works right now, not in the theoretical future.

“The web is hard, but we’re smarter than it, so we bypassed it.”

Let’s get this clear: Yes, the web as a platform is limited compared to native frameworks. It is limited compared to Flash. But the flipside of these limitations is rich accessibility and availability of content; content consumable by anyone, across all sorts of devices, some of which you’ve never heard of; content reusable dynamically by other sites, other machines. A flow of information tangled together into a sometimes crude, but beautiful singular application. The web is bigger than you and your app.

If you don’t value these benefits of the web, then I have to ask: Why are you building on the web? Why are you tolerating rendering differences? Why are you tolerating the lack of a robust layout language? Why are you tolerating an absurdly limited set of form controls? Why are you tolerating the slow pace of specification development? Why are you tolerating Microsoft Internet Explorer 6?

Cappuccino is a remarkable thing. An incredible exercise in doing something absurd within the browser client. The Mac OS inspired UI is beautiful, the abstractions are neat. The Atlas interface builder is remarkable. Seeing Cappuccino and Atlas in action makes you gasp, and though I haven’t used Interface Builder in OSX, Atlas is slicker than Visual Studio 2005 was the last time I build a piece of desktop software.

What’s more, for all my criticism here, we do need things like this. We need the boundaries pushed, we need people with the talent to build crazy things in the browser to do it. We need these because it challenges us to take the positive aspects of their endeavours and find ways to make them actually feasible and work.

But to see Cappuccino promoted as real, feasible platform for web application development? That’s nuts. I mean, Flash sucks, but even Flash now has hooks for assistive technology. Even Flash can be indexed by (some) search engines. Even Flash shares language syntax with JavaScript, so you’ll actually gain transferrable web development skills. And Flash has access to powerful system APIs that aren’t part of the browser. And Flash can integrate cleanly with conventional web site piping. Cappuccino gives you less application functionality than Flash, like the web, but takes away all the benefits of the web as a platform as well.

I have never been an advocate of Flash.

Just by paraphrasing their own website, if you learn Cappuccino, you wont learn HTML, CSS or JavaScript. You won’t learn anything about actually building for the web. Via: cappuccino.org.

You can file issues or provide corrections: View Source on Github. Contributor credits.