Filed under: Developer
Following Apple on the road to rich web apps
Roughly Drafted has an interesting (and long) article that discusses Apple, Adobe, Google and Microsoft, and their different approaches to developing rich applications for the web. The article is very readable for a non-technical audience, and well-researched, too.
The article contrasts Apple's mature development tools and platform frameworks with Google's new open-source tools (like Google Gears). Further, it discusses closed frameworks like Adobe Flash and Microsoft Silverlight, and why Apple is ignoring those in favor of open-source, standards-based development for both apple.com and support for the iPhone.
Then it gets good. Daniel Eran Dilger writes about Charles Jolley's SproutCore, a JavaScript framework that Apple has adopted for its own rich web apps, based on a Cocoa-like model-view-controller foundation with bindings, key value observing, and view controls. Think JavaScript on Rails. SproutCore bares its teeth at Adobe's development tools, all ready to show off in Apple's upcoming release of Mobile Me.
"That makes SproutCore a light Cocoa alternative for deploying web apps that look and feel like Mac OS X desktop apps," Dilger writes.
It's a good read for a Sunday afternoon, and will get you thinking about the kinds of apps that you can build (more easily than ever) for the web. If you enjoyed Brett's earlier video about 280 North, you're sure to love this.
Thanks, William!

![TUAW [Cafepress]](http://www.blogsmithmedia.com/www.tuaw.com/media/tuaw-cafepress-promo.png)


Reader Comments (Page 1 of 1)
mobilemind said 3:06PM on 6-15-2008
Can the writer please explain how SproutCore can make stand-alone cross-platform _desktop_ applications? That seems to be what Adobe AIR does.
Big difference between desktop-like apps and desktop apps.
A more, ahem, apples-to-apples comparison might be SproutCore to other JavaScript frameworks like Spry.
http://labs.adobe.com/technologies/spry/
or comparison to a few other of the dozen or so JavaScript frameworks and libraries-
http://en.wikipedia.org/wiki/List_of_JavaScript_libraries#JavaScript
Reply
Robert Palmer said 3:25PM on 6-15-2008
True, Flex would have been a more apples-to-apples comparison, but I think one of the points the article was making was that Apple's adoption of open standards for its own web development excludes Flash, Flex and AIR. Apple already has Cocoa, of course, for desktop app development.
Longer-term, I think desktop use of smaller apps well-suited for JS-based implementation will drop off sharply as mobile platforms mature. JavaScript implementations like SproutCore, Spry, and Objective-J, IMHO, will be most useful on iPhone (of course) and eventually Android platforms.
Even so, you could combine a SproutCore app with something like Fluid, for example, and you have a pretty good standalone desktop experience.
Charles Jolley said 11:38PM on 6-15-2008
@mobilemind: See Fluid (http://fluidapp.com). Combined with a sensible caching model and a recent version of WebKit, you are 98% there. Someone with a need to do so could get an offline SproutCore app running within a day or so. (I know some people doing exactly that on an internal project.)
scott lewis said 4:40PM on 6-15-2008
There seems to be something of a quest to find the one cross-platform RIA builder to rule them all. It seems pretty likely that having some diversity would be good.
From my perspective, I still haven't seen anything that comes close to Seaside on Squeak/Smalltalk. I don't mean to be dismissive of MVC on Sprout and other Javascript frameworks, but Seaside is much closer to real MVC than any of them.
I've only played with Sprout for about an hour, but I find my interest wanes fairly rapidly with anything (Rails, TurboGears included) that requires html templates.
(Of course, Seaside has its own problems with scalability and so forth, but for most of the apps I build that really isn't such an issue.)
The other really interesting development is Lively Kernel from Sun. It's only an experimental system, but again, I think it goes quite a bit further than Sprout.
What would be really great would be if Apple revisited a WebObjects-like internet engine, combining aspects of systems such as Seaside and Lively Kernel, and used Obj-C instead of Java. The idea of being able to build a Mac app in Cocoa, then share at least the model classes with a web app would be just wonderful. That's pretty much what I'm doing currently with Seaside/Smalltalk. The earliest versions of WebObjects did actually use Obj-C.
Wishful thinking, perhaps. But I do think Apple should consider developing their own sub-set of web development tools, based on open source code.
Reply
Gwydion said 12:41AM on 6-16-2008
I don't know how someone can read such a fanboy like Daniel Eran.
As an owner of various Apple machines, I'm ashamed that someone thinks that apple owners are like him.
Reply
Robb said 11:59AM on 6-16-2008
I partially agree... sometimes Dan's analysis and commentary are spot-on, well written and an excellent foil to the PC punditry on the web and print. And then other times it reads like he's writing strictly for the kool-aid crowd and sounds no different from the pundits he goes after.
Ed said 2:33AM on 6-16-2008
It's called "Gears" now, the "Google" prefix has been dropped.
Reply
orgreeno said 10:01AM on 6-16-2008
It is worth noting that Google analytics, arguably one of the company's most complex RIA's requires the Adobe Flash player.
Reply
Robert Palmer said 10:17AM on 6-16-2008
True, but it's also worth noting that Google Analytics was not a homegrown product: Google bought Urchin in 2005.
John M. said 10:02AM on 6-16-2008
Having following many JS framework for web 2.0 I am not sure if anyone at TUAW has really dig into SproutCore and looked at how big it is and how slow it is on regular basis -I am not even talking about the memory footprint that damned thing has on Safari or Firefox.
If I recall correctly that framework has already been used on .Mac with the web gallery application and oh man this is quite a big slow pig... I remember that when it came out the framework was I think close to 500K of JavaScript to download and slowish like hell. Try to use a gallery on Windows and you will feel even more pain !!
What worst and people don't realize is that in order to make things faster for the web gallery instead of improving the JS framework SpoutCore they instead decided to use Akamai ! Try to do a ping gallery.mac.com and you will see what host is replying to it! For me looking for a JS framework that was the deal killer : if in order to get performance you need to use Akamai then something is definitely wrong!
I think Apple did bet on the wrong horse here and MobileMe is going to be an interesting story to follow.
Reply
Jeff Jungblut said 4:15AM on 6-17-2008
Regarding Roughly Drafted's essay, "long" is an understatement. Dilger spends almost 3000 words -- though it seemed much longer -- blathering on about the SproutCore javascript framework being "Cocoa for the Web" (and linking to many more blatherings on the history of Cocoa) when in reality, SproutCore is absolutely, completely unrelated to the OS X API.
SproutCore, too, like the Roughly Drafted piece, is rather bloated -- the "Hello World" example loads 440K of javascript code to display two words.
Reply
Robert Stack said 5:41PM on 6-17-2008
For the past few years I've been developing a better program to build websites, and web based apps. I hoping to have it out in the near future. Anyway, I just wanted to mention it, and say I really enjoy reading all the comments.
Thanks
Robert
Zoshe Foundation
http://www.zoshe.com
Reply