http://code.google.com/webtoolkit/
http://developer.yahoo.com/yui/
EDIT: Took vaadin.com out - thanks arturadib
What's missing from these?
I mentioned GWT. As you know, it's Java that compiles to JS.
I don't see how YUI is different from jQuery and plugins. I don't see a router or templates in the yui docs.
Sencha targets mobile.
You asked what's missing. Well, none of them are based around jQuery, arguably the reigning king of minimalist js libs. Minimalism means less learning, easier to use. They are all pretty heavy. I imagine making something more like web.py or Flask or weby, but for frontend JS.
Here's a post on defining your template within the html itself using yui3. http://lostsyntax.net/posts/5
I will admit I had a little trouble with that approach, and ended up defining my "templates" as strings within the javascript itself for unscatter.com. That's how the paging works for javascript enabled clients.
If you are really after MVC, from what I've read of them I think SproutCore probably comes the closest.
I think though, you need to consider the environment you're working in. Programming a system that will run on a server is much different that programming an application that will run on a personal computer, laptop or even mobile device. You're generally bound to a single core with limited memory availability. Syntactic sugar leading to faster development time is generally a good compromise on the server side, but on the front end you have to be careful. This warning isn't an attempt to disuade you from the existing frameworks listed, or even to keep you from writing your own. It's just meant to advise you of something to keep in mind while you do your application development. Know your box, and excel inside it.
Backbone looks really lightweight. SproutCore looks interesting, I misunderstood it at first. It looks like Cappuccino is trying to be like Cocoa, a little to heavy and specific for my needs.
None of which offers good UI/theme, in my opinion. I like jQuery Mobile's theme, even on desktop. That's what I'm using for my latest project (also using Backbone.js for MVC).
Have you checked out angular.js? It has routing, templates, controllers and jsony stuff. Models are a little more complicated.
There are a few known issues that I have to finish, listed at the bottom. Nevertheless, it is functional and fun to use.
I created this as an experiment in Facebook comments and one-page JS webapps.
I know that many of you don't use Facebook, and neither did I, but the Facebook comment system has a lot of intelligence in its social sorting algorithm and it is very viral.
The whole app code is one index.html. I minified and compress the css/js into one file on deploy. All data and functionality come from js apis.
It scales infinitely because I can host the file on S3 and point the DNS at it.
Working on this made me realize that the world needs a front-end-based javascript web framework.
There are a number of backend js frameworks including ones that bridge to ajax on frontend, but none focus on making purely JS apps (with JS, GWT uses java) on one page using hashes and/or history. jQuery does a lot of stuff, but webapps need a little glue.
We need a full client-side JS app framework, with an URL Router, Templates, Controllers, Models, and plugins. It should be able to wrap json api interfaces easily, and it should handle all the page changes that need to happen when it's all just js changes.
TODO: * Needs real, accurate logo; using a placeholder for now * Orange share button broken * Video duration not shown; descriptions not shown * No category browse feature * No About page, FAQ, Press, etc * Search should have instant suggestions * Design could be prettier
* The Facebook status message is generic not video specific because facebook's server side crawler does not execute js. I might make a small server side component using Go on GAE later to fix this.