Monday, June 16th, 2008
SproutCore: Being talked of as a Flash killer? Really?

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.












so much for a good product….:) It’s just a anti-Flash rant.
The server at http://www.sproutcore.com is taking too long to respond.
Hi,
Sorry the page is down. Sproutcore.com 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.
-Charles
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.
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, http://www.tablefy.com uses jQuery extensively, in fact, everything is jQuery. I would visit your site after it is up, I would like to learn more.
Cheers.
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?
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.
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.
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.
Error: navigator.userAgent.match(/Firefox\/(.)/) is null
http://developer.mozilla.org/en/docs/Browser_Detection_and_Cross_Browser_Support
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?
I am really surprised that no one has mentions ExtJS http://www.extjs.com 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.
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.
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?
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.
“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.