Beyond Cocoa
Cappuccino has a long way to go to completely catch up with Cocoa. But it will, and it a few ways it’s already better. It will keep pulling ahead across many different fronts in many different ways. It will easily absorb the dribbles of innovation Apple offers each WWDC.
And Cocoa will go from being the best application framework in the world to that-old-framework-you-have-to-use-if-you-really-need-a-native-app.
How long until “native app” is a dirty word?
I’ve not been building with Cappucino, but I have been building a web-based app which borrows look and feel from Mac OS X, and will probably be accessed primarily via a SSB at some point in the future.
CSS+JavaScript aren’t quite there yet, but it’s close. Really close. It certainly takes some skill and knowledge to execute, but then, so does Cocoa.
I do wonder how long it is before WebKit starts shipping with some additional built-in styling and scripting rules which developers can leverage. Rather than being content with new input types and that sort of thing, how long before we can add a class of -webkit-source-list, -webkit-tableview, or -webkit-imagebrowser? Even -webkit-unified-toolbar? I’m starting to suspect it’s only a matter of time.
Most of the complaints about webapps (and, indeed, AIR applets) stem from the fact that their UI elements are incongruous or lacking compared to native controls: what happens when controls specified in HTML have all of the behaviours and appearance of native ones? There will always be types of application which can’t be effectively implemented as webapps, but for those that can, developers are being given the choice of developing natively or developing for the web.
Microsoft tried to do this around the time of Internet Explorer 4, of course—a lot of IE’s horrendous proprietary extensions were created precisely to support this kind of thing. At that point, though, the desktop wasn’t ready for webapps in a big way (slow DOM, slow JS VM, slow connectivity, no local storage), and the web wasn’t really ready for these kinds of extensions (no sane mechanism for doing it, or predictable degredation path).