Monday, June 16th, 2008

SproutCore: Being talked of as a Flash killer? Really?

Category: JavaScript

It may be going a little far to hype up Cocoa for Windows + Flash Killer = SproutCore.

The post goes into a lot of history, including going back to NeXT days, to try to setup a case to match the title. It could all be a lot simpler though. They get to the meat:

The SproutCore JavaScript framework was developed outside of Apple by Charles Jolley, originally to create an online email manager called Mailroom. Apple hired Jolley as part of its .Mac team and collaborated to rapidly improve upon his framework.

SproutCore not only makes it easy to build real applications for the web using menus, toolbars, drag and drop support, and foreign language localization, but it also provides a full Model View Controller application stack like Rails (and Cocoa), with bindings, key value observing, and view controls. It also exposes the latent features of JavaScript, including late binding, closures, and lambda functions. Developers will also appreciate tools for code documentation generation, fixtures, and unit testing.

A key component of its clean MVC philosophy that roots SproutCore into Cocoa goodness is bindings, which allows developers to write JavaScript that automatically runs any time a property value changes. With bindings, very complex applications with highly consistent behavior can be created with very little “glue” code.

Take a look at the documentation for a real feel for SproutCore.

This is very different than an actual plugin, one that lets you develop in Cocoa itself. Safari also has the ability to embed Quartz components to do cool things, what if you could do that elsewhere? And then you have Cocoa JS bindings. There is a lot to the story, and it will be interesting to see how Apple bridges it all.

Posted by Dion Almaer at 10:38 am

2.9 rating from 57 votes


Comments feed TrackBack URI

so much for a good product….:) It’s just a anti-Flash rant.

The server at is taking too long to respond.

Comment by patitdude — June 16, 2008

Sorry the page is down. has been running on a low end shared server since it is just cached wordpress. Unfortunately I could not get it switched to a higher capacity server before the digg-storm hit.

A new server should be up this afternoon.


Comment by charlesjolley — June 16, 2008

It sucks. I hate to sound harsh, but there’s nothing here that impresses me. jQuery UI could kill Flash. But not this buggy, ugly, hard to use piece of framework.

Comment by Ryura — June 16, 2008

Hi Charles,
It is a rather stretch to say that it is a flash killer, not to mention flash and javascript live in two difference spaces though serve somewhat the same purpose (interactivity).

Personally I prefer jQuery, uses jQuery extensively, in fact, everything is jQuery. I would visit your site after it is up, I would like to learn more.


Comment by hyu — June 16, 2008

The site is still slow. I’ll look later.

Question, though. Is this all client side? Does SproutCore force me to have a certain language on the server side, or is it server-agnostic?

Comment by Nosredna — June 16, 2008

There is still some way to go before this can be a Flash killer.

I am still looking for ways to make my own widgets. For the moment, at least I can see that there is a need for datagrid widget.

Comment by tcmak — June 16, 2008

I’ve found that data bindings make programming applications more complicated than it already is. They also make applications harder to debug and performance bottlenecks harder to find (look how sluggish dotmac is) Although this framework may seem like an interesting proof of concept, I would not use it for anything serious.

Comment by gfkspof — June 16, 2008

I do find SproutCore and Cappuccino to be highly interesting if a little heavy. But I think it’s important to make the distinction between Cocoa and having a Mac luscious UI. Javascript’s object literal notation is a beautiful thing and is something to embrace and neither SproutCore nor Cappuccino really do. A few Javascript frameworks use it significantly. I have recently been exploring the Echo3 Javascript framework beta and creating some styling enhancements with more Mac like styling. It embraces object literal notation, layout components, no HTML necessary, and the styling – while related to CSS – is component oriented, and dynamic and scriptable. This framework is simply an elegant, lean, and brilliant gem and I wanted to mention it as an alternative.

Comment by philmaker — June 17, 2008

Error: navigator.userAgent.match(/Firefox\/(.)/) is null

Comment by Jeria — June 17, 2008

I think apple will be highly competitive with flash. But not necessarily because of sproutcore, but because of the huge development efforts being poured into webkit now.

Can any of you think of something that flash or silverlight can do that webkit, on its own, cannot- especially now that it has squirrelfish?

Comment by Breton — June 17, 2008

I am really surprised that no one has mentions ExtJS in my opinion the polished look of Ext is much superior to sproutcore and jQuery, and most all the other javascript frameworks out there right now.

Comment by dorgan — June 17, 2008

Hi Dorgan,
The licensing & price of ExtJS isn’t very attractive at all. Sproutcore and others are open source and free. In fact I would even use Flash over ExtJS.

Comment by zivelli — June 17, 2008

Exactly how much of MobileMe has been implemented in SproutCore? Of that part, how much has used the version freely downloadable this week? What I’ve read so far is very vague. Maybe Charles can help?

Comment by modelerr — June 18, 2008

Real flash killer? Faster Javascript, better SVG support and a good framework on top of that….. or maybe just an JS/SVG compiler generating SWF.

Regarding the talk about SproutCore being a Flash killer, it seems more like an alibi for not being able to adopt flash lite into iPhone.

Comment by OndraM — June 18, 2008

“Can any of you think of something that flash or silverlight can do that webkit, on its own, cannot- especially now that it has squirrelfish?”

Can WebKit do…
– Frame based animation?
– Frame rates that run independently of the browser?
– Video?
– 3D? (Okay, so I also hate PaperVision 99.98% of the time, but still…)
– Embedded fonts?

I don’t understand why some people still think you need to use 100% flash or 100% Jvascript to make a website that people can respect. Use each what its meant for.

Comment by restlessdesign — June 18, 2008

Actually I really like restless’s comment but I understand it’s from a designer’s point of view. What I like is that we need to define what it is we’re “killing” here. Flash has done a great job of letting us create more or less any conceivable kind of application either standalone, embedded, or on a website. Flash handles video and vector graphics. And I agree, Apple and Mozilla’s implementations of Canvas and SVG totally suck. I would LOVE IT if we had an open source alternative to Flash that could just run in a common browser without a plugin. But unless it gets baked into the browser itself it’s never going to happen. JavaScript is a fine scripting language. We don’t need another scripting languange, and in spite of all the recent hype about new accelerated JS interpreters, we don’t need JavaScript to run faster to make good applications. What we do need is something better than the DOM and SVG and the Canvas. We need a much better graphical toolkit. If I took a JavaScript interpreter and linked it into, say, an OpenGL authoring tool, or a .NET GDI+ application, or a Java AWT canvas… I could make really gorgeous graphical user interfaces. It’s the HTML that is killing us. We waste a ton of time trying to trick the DOM into doing things it was not meant to do. I never really liked HTML. I have resented the choice to adopt HTML as the DE FACTO standard for the Web since 1994. I have never wanted a Web that was about publishing documents. I have always wanted a Web that was about building distributed, multi-user, collaborative applications.

Comment by BenjaminTremblay — October 28, 2008

complementing GWT and sproutcore seems like a good idea…esp. if apple is going to put some muscle behind sproutcore it might be used as a bridge from GWT to OpenGL on the client end….There’s still a bunch of web hackery going on without websockets.

Comment by meatgrinder — February 2, 2009

I like both the Sproutcore and Objective-J/Cappuccino approach, though it’s always a question if you want to learn a new programming language as you’d have to in the case of Cappuccino. Sproutcore has the advantage that there’s no abstraction layer between the language you code in and the runtime environment.

Personally I’ve been using OpenLaszlo for a long time, and the new support for both JavaScript 1 and ActionScript 2 generation of the OpenLaszlo compiler is a nice feature. With OpenLaszlo, it’s really easy to create cross-browser components with exactly the same look and feel, running in both JavaScript/Ajax mode and Flash 9/10. ActionScript 3 code generation might be an interesting feature for Sproutcore as well.

Comment by rbitter — January 8, 2010

Leave a comment

You must be logged in to post a comment.