From Angular to Aurelia Part 1

This is the begin of a blog series about moving to Aurelia from Angular 1.x. I'm going to explain how fundamental concepts of Angular 1.x map to Aurelia's work flow. This should help you getting started with your new projects based on Aurelia.

The first article is more about a business perspective and why Aurelia is a good choice to invest into. Please keep in mind that this is my personal opinion so read it, think about it and make up your own mind. If you have more questions visit our Gitter chat or leave a comment below.
Join the chat at https://gitter.im/aurelia/discuss

Why Aurelia?

I've been involved with Aurelia from the beginning of 2015 and so far I liked every aspect of it. It's a modern approach to design a framework by leveraging a multitude of small packages. Each of them provides distinct features and is exchangeable. The sheer endless opportunities to customize and bend to framework to your will makes it in my opinion a perfect choice for enterprise apps. Why? Well each business is different. It's good to know that you're not forced into a certain direction. Having opportunities to adapt your tool to your process instead the other way around is what makes an important investment decision. On top of that Aurelia is backed by a dedicated company Durandal Inc. which is going to make sure it stays that way.

What happened to Angular 1.x?

As a software consultant so far I had a few customers placing high bets on Google's Angular 1.x framework. I do like to work with Angular and i've even invested a lot of private time to come up with a new book brought out by O'Reilly in March 2015. So there was and I think still is a lot of buzz all around one of the first pioneers in SPA frameworks for large scaled applications. Still I must admit that Aurelia's predecessor Durandal was my first choice when it came to developing serious applications.

Back to Angular though, we've all seen the misunderstanding that Google had with their Developer Community. I do understand that people tend to avoid changes likes the pest but having so much complaints about the new direction of Angular 2.x is not to be overseen. So from a business perspective I tend to believe that future investments in a highly risk-oriented framework won't happen as easy as they did before.

What should we do next?

The customers I mentioned all had a pretty straight forward question.

We're a backend shop, we like Java/.NET and need something stable and future proof on the frontend as well. What should we choose now that NG screwed up?

This is the moment when you should step back and think about the next answer you are going to give. Personally I think a professional advice should try to answer not only the question but also the concerns and use cases driving it. So looking at the question I always try to highlight some interesting facts and think about them in detail:

We're a backend shop, we like Java/.NET (dev XP is important!) and need something stable and future proof on the frontend as well. What should we choose now that NG screwed up?

A backend shop most likely has it's focus on developing backend applications. That implies perhaps that investments in the frontend are second focus but a nasty thing they need to tackle. Having Java or .NET devs also indicates that they most likely do care about a proper Dev Experience since they are used to a wide range of good tool support and proven stacks. The demand for something stable tells me that they either didn't have the time or will to search for the best fit. It's understandable seeing how quickly the JavaScript world is changing. This is furthermore highlighted by demanding something future proof, which is a cry for certainty.

What makes a good candidate?

Having analyzed that question I think the following properties are key to success:

  • Adaptability: Which means having a way to change the framework itself
  • Choice of languages: VanillaJS or TypeScript — choose your poison
  • Support: Free stuff is good but sometimes you need first-class support
  • High automatization: Who really want's to do all the boilerplate by himself?
  • Freedom & Flexibility: Make your devs happy by breaking their chains

Conclusion

Aurelia is still young but given it's age it already feels quite complete and offers a more then satisfying feeling when working with it. No matter to which of my colleagues I talked to each of them got the Convention over Configuration thingy and saw it's immediate benefits.

So is it the right choice? I for myself am definitely sure that Aurelia is going to be my framework of choice for upcoming projects.

Looking forward to read your comments and perhaps meet you in Gitter

Photo credit: The Forgotten Memories Theatre via photopin (license)