Compare JS MVC frameworks implementing the same site: TodoMVC
addyosmani.github.com
addyosmani.github.com
To that extent, I have to apologize for publishing the original Todo example app ;)
While TodoMVC is a fine resource, I think it's still important to look at what the different libraries and frameworks choose to do differently ... and most importantly, what sort of real apps have been built with each.
Whilst at present TodoMVC provides a simplified baseline for comparing JavaScript MV* frameworks, we feel that this at least gives developers an opportunity to narrow down the list of them they wish to explore further. No one should be using TodoMVC as the be all and end all of which framework they use as there's significantly more to it than that. That would be a little silly :)
With respect to the comment lower down in the page regarding the nitty gritty not being covered (auth, validation, routing etc.), it's a valid point and we currently have plans for tackling this in version 1.1 of the project. Initially Backbone.js, Spine.js, Ember and CanJS will have complete end-to-end examples offered but we hope to expand upon this as we work our way through releases.
At the end of the day, our goal is to make it as easy as possible to find the framework (or frameworks) that best fit your needs and hopefully give you some incentive to investigate one or two in more depth before making your decision on what to use.
Disclaimer: I'm one of the devs (Sindre).
Sure you can write comparable code... but writing benchmarks in multiple languages in an idiomatic style that plays to each language's strengths while still remaining comparable is challenging.
Actually getting down into the nitty gritty side of things (which includes everything from authentication, validation, and templating, to routing, persistence (both sql and no-sql), and XHR/we sockets) is crucial, in my eyes, for us to really see how a system can grow from an intro-to-framework-X into the next-big-thing.
Obviously, there's a requirement to actually learn the language/framework that you end up choosing, and therefore there's no real benefit to having a copy/paste sample app that includes the kitchen sink, but damn, I'm sick of recreating the wheel.
Sure, if you're not careful; but that's the case w/any language or layer of an application stack. I'd consider becoming familiar w/JavaScript a greater concern though. Learn to avoid JavaScript's foot guns, and use tools like Speed Tracer to help profile your JavaScript.
If it matters, my time tracking and invoicing product uses heavy client side processing, to the point where some of its reports never touch the server. We're seeing response times in the low ten's of milliseconds when relying on JS-only generated reports.
Edit: Just got this one from another post on the front-page https://github.com/mde/geddy.
1) interface 2) database 3) adding/removing from said store 4) sorting 5) class structures ...
I could go on. Essentially, the best way into any language is to know how something is supposed to work and compare it to how it appears to be working, making those more difficult leaps by actually practicing.