JavaScript Can Has MVC
There's of course a lot of buzz about "Rich Internet Applications" floating around the Internets these days, and rightly so. The web is evolving and that means shrugging off the look and feel of static website with dynamic features to deliver user experiences that more closely resemble desktop applications.
Many folks are looking to build the next generation web applications using proprietary platforms like Flash or Flex (or even Silverlight). On the other side of the aisle are open source JavaScript-based solutions, but until just recently, it's been difficult to for many folks to wrap their heads around building comparable solutions using just JavaScript. Enter SproutCore, and a whole new breed of JavaScript frameworks...
In a nutshell, SproutCore is a JavaScript-based MVC framework. Unlike traditional web-based applications where all the "interesting" stuff happens on the server and is communicated back to the client via page reloads or (more recently) Ajax techniques, a SproutCore-based application lives entirely in the browser. By delivering a more desktop-like thick client with all the necessary smarts baked in, it no longer has to rely on a continuous web connection and can be as quick to respond as a local application. It can then contact the server whenever it's actually needed, such as to save data, load new records, or other similar operations.
There are a couple exciting things about this; first of all, it gives you the ability to build incredibly responsive, rich interfaces quickly and without a lot of custom code. Who wants to rewrite the same old dialog animations over and over again, after all? Also, as Ryan Carson points out, if you run an application of this calibre inside a SSB like Fluid, it can look and act just like the desktop app that it's replacing. Of particular interest to me is the fact that SproutCore is based on Merb, a lightweight Ruby web application framework, and is easily plugged into a Rails or Merb backend (but can be used with any other server side framework as well!)
Perhaps just as importantly, Sproutcore is being touted by Apple as the next big thing. In fact, it's been used as the basis for their new MobileMe service, and they've contributed a good sized portion of this work back to the framework itself. This is good news becuase not only because it gives Sproutcore a killer app out of the gate, but also because it throws the weight of a serious software giant behind it. If Apple is taking this seriously, then certainly other companies will follow in short order.
Of course, Sproutcore isn't the only new-age MVC JavaScript framework making waves. Why, there's also the well-named WaveMaker and the forthcoming Objective-J and its Cappuccino framework. Objective-J and Capuccino are the buzzworthy brainchildren of 280North, the company behind 280 Slides, an impressive web-based variant of Apple's Keynote presentation package. They're purportedly straight ports of Apple's Objective-C and Cocoa to JavaScript. Yep, you heard that right.
For more information on SproutCore, make sure to check out their hello world tutorial and documentation; it's a great way to get a feeling for exactly what's happening here (and how you might use it!) in under 10-15 minutes. SproutCore also hosts a number of impressive open source demos written using the framework that you can peruse.
For more on Objective-J, well, stay tuned...

