Aurelia, the next Angular?
On the 27th of July Aurelia 1.0 was released, after more than a year since it was first announced. If you might be wondering why is this important or what is Aurelia exactly, here’s a bit of a backstory.
Rob Eisenberg (creator of Caliburn.Micro, Durandal and Aurelia) left the Angular development team in November 2014 with this message:
“Several months ago the general direction of Angular 2.0 began to change in critical ways. I found myself fundamentally at odds with certain aspects of the proposed design. Still, I tried to keep an open mind and explore the various possibilities. Unfortunately, I haven’t been satisfied with how things have progressed since then. At this point, there are too many irreconcilable differences. The Angular that’s being built is not the Angular I signed up to work on and after careful consideration I do not believe it’s best for the Durandal community”
It has support for web components, as you can write your components as web components and export them to other apps that were not written in Aurelia and it’s open source, which makes it a great community project.
Aurelia and Angular
Aurelia has a few similarities with Angular 2.0 for obvious reasons (see Rob Eisenberg profile), but at one point they go in different directions, just as Rob Eisenberg went from the original Angular team. Aurelia offers ES6-support out of the box and supports all forms of alternative abstraction syntax such as TypeScript and CoffeeScript.
The differences between Angular 2 and Aurelia will be noticeable right away, in the syntax, which is much simpler and somewhat more explicit than what Angular 2 has to offer. It has default ES6 and JSPM, and no special characters like the ones you can find in Angular. Aurelia is very pluggable, as you can plug in internationalization, animation, virtualization and more. You also get two way binding out of the box.
If you’re thinking that you don’t really want to learn another framework, you’re not in luck, as Aurelia’s learning curve is somewhat similar to that of Angular 2, but you get plenty of documentation which is very helpful, so there’s a big plus there.
Aurelia shines over Angular through an advanced composition mechanism and template parts, with minimal framework structures in its final code, making it more compact. You can get a good glimpse at the difference between Aurelia and Angular in its code (from Durandal )
— — — — — — — — Angular 2.0— — — — —Aurelia — — — — — — — — -
Note: Additional code is needed for Angular 2.0 if ES6/ES5/CoffeeScript is used rather than AtScript since annotations must be “manually transpiled” by the developer.
You really get a tendency to compare Aurelia with Angular 2, taking into consideration that its creator worked on Angular as well. We can’t say which one is better, comparing on such an ultimate level wouldn’t even be fair, but Aurelia has great promise, the potential to overshadow Angular. Even at this stage Aurelia can steal the spotlight because of use of conventions vs extra code and configuration, leading to a much simpler syntax compared to Angular 2. Other advantages include the fact that Aurelia is a Durandel product, a company with a great background in development and with a good vision for the future of Aurelia (something that is missing in the Angular side). Also Durandel will offer both commercial and enterprise support for Aurelia (something that Google and Facebook don’t offer for Angular and React)
Find out more about Aurelia here !