Batman's views rely heavily on HTML data attributes. Compared to Angular Batman is less modular, placing its namespace in global scope for easier access. batman.js is written in CoffeeScript and shares the principle of "convention over configuration" inspired by Ruby on Rails. This makes its code more compact and readable, much faster to write and prototype, and easier to jump into a new project. The downside is that the learning curve now includes learning all of the conventions that the framework provides.
Let's take a quick look at some code from both frameworks. Here is a controller built both in AngularJS and batman.js. (I will use CoffeeScript in this example)
As you see they are pretty similar, but personally I find batman.js's code a lot cleaner.
One problem with batman.js is the documentation. Batman in general has a bit of a smaller community and fewer tutorials available. Still, I tried it once for my project Mailican and I must say the experience was really positive.
Hi, @nciagra. Why did you decide to build your own MVC framework?
How hard is to maintain an open source project of that size? Are you the only core developer?
It's definitely a challenge. batman.js is developer as an extraction from Shopify 2, so all of the many many developers we have here are potential contributors, and many of them are. There is also a growing number of external contributors—working on some really amazing projects—who send us some great pull requests. I'd say the biggest challenge for us is managing our time between batman.js and the Shopify product, but it does mean that all of the code going into batman.js is code being used in our production app.
What are the future plans for batman.js?
The next release of batman.js is going to be a big, breaking release. We've decided to clean up a lot of API's and make everything more consistent. We're also going to bring everything in line with Rails 4 and remove a lot of old cruft and code paths that either aren't being used any more or just don't belong in the core of the framework. You can see some early results of this in master right now. Performance and documentation are also huge concerns. We have a dedicated suite of tools for testing batman.js performance, and it's getting really, really good. Documentation is also extremely important to us, and we'll have some really neat developments on that front to go along with the new version!
Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.
Meteor is an open-source platform for building top-quality web apps in a fraction of the time, whether you're an expert developer or just getting started.
I still really like Backbone and all of its elegant simplicity. I think Meteor is doing some really neat things as well, but in general, I really respect all of my fellow framework authors. It's hard to solve these problems in generic ways and everyone always has extremely creative solutions. I'm really excited to see what everyone comes up with in the future.
Thanks Nick for the interview and for a great project you develop!