Posted by & filed under Architecture, JavaScript.

There seems to be a tendency to avoid javascript as a language and treat it more like a platform (same holds true for java, but for other reasons…) – what is so fundamentally wrong with javascript, that everybody tries to get around it?

The most recent attempt in this line is the beautiful Cappuccino-Framework – it replaces javascript with an objective-c derivative called objective-j and brings with it some cocoa-goodness: It creates a GUI that looks&feels very similar to a Mac-App, as you can see at the spectacular 280 Slides.

One can argue, that writing an Objective-C-compiler on top of JavaScript is a little strange, but it is not stranger than GWT which already is a huge success-story. In comparison to these extreme approaches Sproutcore is rather conservative: It is “just” an abstraction-layer/framework on top of javascript together with a bunch of ruby/merb-based tools for packaging your application. Don’t let yourself be scared away by the rather limited number of widgets – sproutcore is not about widgets, it’s about the underlying framework: It moves the tried&tested MVC-patterns from the server into the client: eg. it allows you to connect to CouchDB and gives you a Ressource-abstraction inside the browser that is modelled after ActiveRecord.

Summary

The situation seems to be comparable to the early servlet-based frameworks. It became very soon very obvious, that there is something lacking from the simple request-response-encapsulations the servlet-api gave you. Now, as more and more functionality is shifted into the Browser, it is only natural that lots of MVC-Frameworks appear, that work in the client and not on the server. As the clients become smarter, the Servers become dumber: There’s not so much left for the Server to do than serve some rather plain RESTful interface to some kind of datastore. History repeating (in more than one way…)

Resources