SproutCore
SproutCore applications move business logic to the browser so they can respond to your users' taps and clicks immediately, avoiding an agonizing roundtrip across often intermittent network connections.
As web application users go increasingly mobile, applications can no longer depend on reliable connections to a remote server to do the heavy lifting.
At the same time, web browsers continue to radically improve their ability to quickly process data and deliver polished user interfaces—a perfect opportunity to rethink the architecture of modern web applications.
Building web applications with traditional web development techniques is painful. Making sure your HTML is always up-to-date is challenging, and swapping information back and forth with your server can be error-prone.
There is a better way. SproutCore's robust bindings system allows you to create data-centric applications. Just describe the state of your application and how the data flows from your models to your views and let SproutCore do the rest.
Semantic templates allow you to write HTML and CSS that update automatically when your models change—like magic. And an in-memory database lets you intelligently manage and query your data and synchronize with your server.
SproutCore will change the way you think about building applications and surprise you with how little code you have to write.