This is great. I've been considering moving to a client side MVC as opposed to relying on GAE. I started messing around with Backbone.js and I really like it. What are the downsides of client side MVC as opposed to server? Is it easy to bog down the client with the extra processing?
Is it easy to bog down the client with the extra processing?
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.
Makes sense, there's no one answer to my question, because there are so many variables involved. So, it will take trying them out and of course it will depend on my needs. It may even make sense to do server side on some parts of the site and client side on others. I like the idea of being less constrained to my backend technology, which is what attracts me to JS MVC. I also like how concise Backbone.js is, it doesn't seem to try to do too much.
SEO can be a nightmare if you're going totally single-page (you really have to go with a solution where you can render your javascript templates server-side if someone directly requests a page); though we've found that bounce rates go down considerably when navigating between pages is near-instantaneous.