10 tips on how to prevent business value risk
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Craig Wickesser on Sep 02, 2009
InfoQ has reported on SproutCore a couple of times in the past and recently learned about the upcoming 1.0 release. SproutCore promises stunning desktop-class applications without plugins inside of the browser. All of this is done by using techniques and technologies that have been around for years but which have continued to evolve. SproutCore boils down to JavaScript, HTML and CSS. This naturally leads SproutCore to be backend agnostic which is also a nice advantage,
It can work with any backend server technology that you want to use. In fact, once it is deployed, SproutCore apps contain only standard HTML, JavaScript and CSS. You could deploy an entire app using nothing but Apache.
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?
This fall. Although there will be apps live on SproutCore 1.0 before that time. It's currently fairly stable since we added over 5,000 unit tests over the last year covering just about every feature. Over the last year we've literally rewritten almost every part of the SproutCore build tools and JavaScript framework to stabilize the API and make major improvements in performance. Whereas I think SproutCore 0.9 and earlier was about proving that you could build rich desktop-scale applications in the web-browser, SproutCore 1.0 is about making this core technology work smoothly and reliably. I'm happy to say we've really surpassed even our own goals on this front. SproutCore 1.0 is definitely the best work many of us have ever done.
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?
Usually people who try GWT or Cappuccino switch to SproutCore for a couple of reasons. The first reason they switch is performance. All three frameworks (GWT, Capp or SproutCore) will get you going pretty fast on a rich web app. Once you build an app with some complexity though, it usually doesn't take too long before major bottlenecks creep up, especially on the initial load time it takes for the app. SproutCore apps scale really well in this regard. The second reason is the ability to customize. GWT and Cappuccino both keep you pretty isolated from the web browser, inside their Java or Objective-J sandbox. This works great until you hit the edges of what they have done with their platform. Then you're on your own mucking with the internals. SproutCore offers a rich layer of functionality also, but it is plain old JavaScript so going off and doing your own thing is a lot easier.
Why the move away from Ruby (0.9) to pure JavaScript (1.0) for the view layer?
Two major reasons. First, we are planning to build a drag-and-drop UI designer once 1.0 is complete. The move to JavaScript makes this possible. In fact the core library needed to do a UI designer is already done and in SproutCore 1.0 code. We just need to finish the designer app itself. Second, and more importantly, is performance. It turns out that if you simply write in JavaScript and then let SproutCore handle all of the HTML and CSS for you, we could implement some tricks that make your app way faster, even on IE. Overall the new view layer in SproutCore is about 10x faster than the old version (and the old version was pretty fast). As a side benefit, using pure JavaScript makes development a lot easier since you don't have to think in two programming languages; only one.
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.
Monitor your Production Java App - includes JMX! Low Overhead - Free download
Mobile and the New Two-Tiered Web Architecture
SCM best practices for multiple processes, releases & distributed teams
In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.
Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.
No comments
Watch Thread Reply