As promised in my previous post, I’ve also built an AngularJS version of the Moped web client for Mopidy. Moped is an HTML 5 music player app that uses Web Sockets to communicate with the Mopidy music server.
I’ll put this simply: Angular is easier to get started with than Durandal. There are no dependencies, almost no ceremony. Just a single .js file and a massive amount of tutorials on the web.
BUT: while Durandal might be a little bit more complex to setup, it does a better job of leading developers into to the pit of success by choosing sensible defaults and conventions that scale better when your projects grows in size. With Angular it’s surely possible to choose a structure that scales well but most examples are pretty naïve and are only suited for small apps that will likely grow into big mess.
I think, from a development perspective, the Angular way is superior to Durandal. The binding syntax is cleaner and easier to learn and you don’t have to deal with observables. People often warn that the Angular way of binding is slow with many bound elements, but I didn’t notice that up until a couple of thousand bound elements.
Angular makes testing so easy that it’s almost impossible to not do it. Even the simplest tutorials already show how to test. I wouldn’t say that testing with Durandal is that hard, but it’s a different ball game.
Documentation & examples
Official Angular docs are great and official Durandal docs are great.
Angular has one problem however: there are many articles and blog posts that can be considered either outdated or simply not so good. Be careful and always check post dates and comments.
Community / momentum
And the winner is…
There is no clear winner. Technically both frameworks are equally capable with only relatively small differences left and right.
My pick at this moment would be Angular. For me, it has a few edges over Durandal that are mostly related to personal preferences but I also find the small community of Durandal and the fact that it is developed by only one person a little bit worrying. We’ll have to see what future brings.
However, at the time of writing, Durandal runs a kickstarter campaign to fund the next generation of the framework. I really hope that this next generation of Durandal is going to kick the butts of all the other frameworks. The plans look promising and I think that Google doesn’t need another monopoly with Angular.
Opinions? Please leave a comment.