SproutCore: An HTML 5 Application Framework
Since the last time we wrote about SproutCore a lot has changed which is why InfoQ asked Charles Jolley, President and CEO of Sproutit, a few questions about the upcoming release.
What makes SproutCore an HTML 5 application framework?
SproutCore is one of the first web frameworks explicitly geared towards using the new web app features in HTML5 (such as offline storage, HTML5 ApplicationCache, etc) to build rich native-class apps. SproutCore works fine on older browsers running on HTML4 features, but we're looking towards the next 5 years where the HTML5-capable browsers - such as Safari 4, Chrome, Firefox 3.5, etc. are common place.
To me this is where the most exciting work will be happening on the web, so we're designing for it.
When is SproutCore 1.0 expected to be out of beta?
Will all of the documentation, website updates, etc be done for the 1.0 release (as it mentions on the site)?
Yes. In fact, we just started hosting the API docs at http://docs.sproutcore.com and we have a built-in documentation viewer that someone is building. There are also a bunch of sample apps (http://demo.sproutcore.com) including some full end-to-end examples that will be open sourced soon.
Why SproutCore instead of GWT or Cappuccino?
Is the DataStore API applicable for retrieving data from a Java server? An RDBMS (i.e. MySQL, Oracle)?
You can work with any backend that you like. The Todos Tutorial (http://wiki.sproutcore.com/Todos%C2%A0Intro) in fact currently lets you choose from three different server technologies when you work through the tutorial. Java is not part of that list yet, but someone I think is working it. The cool thing is that SproutCore apps are simple HTML/JS/CSS. It doesn't matter what backend server technologies you use since your SproutCore app communicates with them via Ajax.
Is it possible/feasible to embed other view content (i.e. videos, flash content, audio)?
You bet! Checkout the video demo (http://demo.sproutcore.com/video/) in Safari 4 for an example. [this demo uses the HTML5 video tag] In fact with SproutCore 1.0 we removed our dependency on Prototype and made SproutCore JS-library agnostic. This means if you have existing code in jQuery, ExtJS, YUI, or even Prototype, you can embed it inside of a SproutCore app.
With SproutCore 1.1 on the roadmap, is there a timeframe for that release?
Not yet. We're focused on ensuring that SproutCore 1.0 is the best it can possibly be. Unlike 1.0, where one company made a lot of the major contributions, 1.1 and later should be done more in the community so I expect it to happen more publicly on the site.
SproutCore is an interesting possibility for building web applications that rely only on the browser, however, there are alternatives that are also worth investigating such as Google's GWT and Cappuccino.