Cocoa for the Web
  

I am interested in the Cocoa inspired Javascript MVC frameworks such as SproutCore and Cappuccino/Objective-J. I believe these of other frameworks like them will be the future of web application development.

Both are Web 2.0 frameworks based on NeXT's clever design patterns of
Key-Value Observing (KVO) and Key-Value Coding (KVC). These design patterns
are the key (no pun intended!) to live updates of data to the UI. Its like a publish and
subscribe system but at the fine granularity of the property of an object.

Both projects started out a couple of years ago. Cappuccino has a nice nice
feature that allows you to convert a NIB file (stands for NeXT interface builder) or XIB
file (as used in XCode) to a Cappuccino equivalent (CIB file i think). Last time I checked
it was still experimental and patchy. But if this works it means you can use the Apple's
Interface Builder Tool (drag and drop widgets and graphically bind to the model) to
make a Cappuccino UI!

For those who don't know the history, Apple's MacOS X Snow Leopard is effectively
NEXTSTEP version 11 and KVO and KVC is fundamental to the architecture of the
frameworks in MacOS X, iPhoneOS and WebObjects that made them so powerful
and so far ahead of their time. Its funny when you realise that NeXT pioneered OO
in 1989 and since then Java has copied Objective-C but neglected to copy key things
like KVC/KVO ; Visual Basic copied the NeXT Interface Builder but neglected to copy
the MVC design pattern and bindings; and now, web 2.0 frameworks are finally catching on
to the proven design patterns in NeXT's technologies 20 YEARS LATER while the Microsoft
and Java camps are yet to see the light! :-)

Also take a look at Cocotron and GnuStep which are trying to re-create NEXTSTEP APIs on Windows and Linux.




© 2009 Keith Foster. "The Daring Developer" was created for people who share an insane excitement about advanced software engineering.