SproutCore is the second framework I’ve used in my project to implement a trivial time tracking application in multiple client-side/rich frameworks. SproutCore, the framework behind Apple’s MobileMe, is one of the heavyweight contenders in the desktop-like web application arena. Originally released last year in version 0.9.x form, it has undergone major changes over the past year+ to the currently near-release 1.0 version. Thankfully my experience with SproutCore started as it was becoming more stable towards the 1.0 release, although the documentation still hadn’t all caught up to the 1.0 changes (but has since been massively updated and is in good shape now). SproutCore is a Cocoa-inspired framework, but is implemented in JavaScript so it makes use of some of the good aspects of the language. JavaScript as the language choice comes in contrast to RestfulX which uses ActionScript 3, and Cappuccino which uses (and created) Objective-J. Since I’ve already looked at RestfulX, it’s interesting to note some similarities in the platforms. Both have:
- Ruby tools for code generation and application compiling/building
- Bindings to wire together the various components of applications
- Fixtures to let you develop your app prior to switching over to using a real back end server
- Attractive controls by default
- No date selection field in standard widgets (although this appears to be part of the new SproutCore-UI project)
- Write-save-refresh cycles are somewhat slow, but speed up substantially with Ruby 1.9 vs 1.8