Web developers can be divided into two camps: Server-side programmers work in languages ranging from Java to PHP to Ruby, and their programs execute on one or more Web servers, typically communicating with a relational database server. Client-side developers, by contrast, work mainly in JavaScript, HTML, and CSS, displaying and manipulating data within a Web browser, while retrieving and storing that data on the server. While client-side programs are the ones that users see and use most frequently, it sometimes seems as though server-side programmers have all of the nifty toys, helping them to develop, benchmark, test, and deploy applications.
Over the last few years, there has been effort to catch up. This is particularly true in the wake of the growth of Ajax ("asynchronous JavaScript and XML"), a technique for developing Web applications that are richer, and more desktop-like, than previous generations of Web applications. A number of open-source JavaScript libraries, such as Prototype, jQuery, and Dojo, have become quite popular, handling issues such as cross-browser compatibility, back-end server communication, and data manipulation. If you are writing a client-side application without a JavaScript library, then you are probably spending too much time testing and debugging, and not enough time developing new features.
People have occasionally expressed interest in having an even richer development (and deployment) environment for client-side Web applications. Steve Yegge, a Google developer and prolific blogger, wrote last year about his "Rhino on Rails" project, an attempt to port Ruby on Rails to the "Rhino" JavaScript engine. This project is not yet public, but interest in Yegge's work indicates that people are looking for a full framework for client-side applications, rather than libraries that provide widgets and some extra JavaScript functionality.
One exciting possibility on this front is SproutCore, a new JavaScript framework. SproutCore is not new, but it has gained a great deal of public attention in the last week, since Apple announced that its new MobileMe (formerly .Mac) service uses it, and that it's possible to connect SproutCore applications with desktop Cocoa applications for OS X. SproutCore is written in Ruby, and is installed most easily using the Ruby "gems" system.
The difference between SproutCore and other JavaScript frameworks is the fact that SproutCore is a full-fledged application framework, rather than functions and objects that can be integrated into individual pages. The demos of SproutCore show that it not only has some nice-looking widgets and controllers, but that they are relatively easy to integrate into HTML pages. Like Rails and Django, SproutCore is based on the model-view-controller ("MVC") paradigm that has become pervasive among Web developers, making it easy to create nice-looking Web applications.
Rails developers will find SproutCore's command-line generators and interfaces to be quite familiar. The software is distributed under the MIT license, meaning that the software itself is open source, but that it can be repurposed and used inside of proprietary software.
SproutCore is merely a beginning; it still doesn't have all of the things that a client-side developer might want, or all of the debugging support that we might expect in a server-side framework. However, the fact that Apple has already adopted SproutCore ensures that it will continue to be maintained, at least for the near future. It remains to be seen how the various JavaScript frameworks react to SproutCore, and how the server-side Web application frameworks work to incorporate it (or not) as a default.
Comments
Add CommentBy Arul Prasad on Jun. 17, 2008
Am surprised you haven't mentioned anything about Adobe Flex framework. Going by ur theory Adobe Flex 'raised the bars' for client side programming a long while ago.
IMHO - Your title should've been 'SproutCore raises the bar for AJAX development, for Ruby developers'
By nuttersmark.com on Jun. 17, 2008
Adobe Flex isn't open source. Also, the language developers use shouldn't factor in, only the final product, so saying that the article should have been qualified by the fact that Sproutcore uses Ruby is inane. Good developers are language agnostic - they pick the best tools for the project.
By Arul Prasad on Jun. 17, 2008
@nuttersmark.com
Adobe Flex sdk *IS* open source. http://opensource.adobe.com/wiki/display/site/Home
>>Also, the language developers use shouldn't factor in, only the final product, so saying that the article should have been qualified by the fact that Sproutcore uses Ruby is inane.
I don't necessarily agree. If you look at only the final product, SproutCore ends up being JavaScript in the browser.
Google WebToolkit, for eg, lets you write Java code and create AJAX UI. The immediate adopters of GWT are not day to day HTML & JS developers, but Java developers who want to write AJAX apps in a language that they are comfortable with(Java). If you had to hire someone to do some GWT work, you'd hire a Java developer, not a JS developer, would you?
My comment about SproutCore was based on the statement >>SproutCore is written in Ruby,
and
>>Rails developers will find SproutCore's command-line generators and interfaces to be quite familiar.
I'vent tried out SproutCore, so am not sure if my assumption that 'SproutCore lets you write code in Ruby and publish to JS' is right. Took a brief look at SproutCore and it looks like you still write code in JS.
By JSPerson on Jun. 17, 2008
No one seems to mention ExtJS. It has a vastly more rich component lib than sprout core, and a very pervasive unified component framework.
Check it out extjs.com
By RyanH on Jun. 22, 2008
Just wanted to back up Asul. Adobe Flex is open source. That includes the compilers, the languages, the source code for the massive component library, etc. The only things that are not open source are the Flex Builder plugin for Eclipse and the (primarily 3rd party) data visualization components (charting, graphing, etc.) that come with Flex Builder Pro (although you do get the source code for all "pro" components from Adobe).
Share Your Comments
Trackback URL
http://ostatic.com/trackback/165328