The Band Played On

Why you shouldn’t migrate your AngularJS application

Dave Gavigan
4 min readApr 22, 2017

If you’re the slightest bit plugged into the web development community, surely you know that AngularJS went under a complete rewrite from top to bottom. Everything you once knew and loved... GONE. It threw the entire Angular community into sheer panic. On top of that, the team announced no clear migration path from 1 to 2 (now 4.x … yes 4.0... more on that later).

The initial reaction was something like …

OMG WHAT DO WE DO?! We sold our manager on Angular and now its dead!

Rather than sit tight and be patient, developers latched onto early versions of Angular. The clear answer was “ABANDON THE ANGULAR 1 SHIP. ITS ALL GOING DOWN. SAVE THE JR DEVS & INTERNS!”

We Play On

I was leading a project for a company, and they turned to me and asked “What do we do? Should we migrate to Angular 2”.

I responded, no. We play on.

And there we stood. Like the band that kept playing its last tune on the sinking ship. We decided to keep the project in AngularJS.

Angular 2+ has a lot of amazing new features available to us. It also comes with a large overhead in understanding new technologies and concepts. The team would need to invest proper time in order to catch up on these new features and tools.

Making the jump at this point would derail the project. The company spent quite a bit investment over the past year to get the product off the ground and needed to get more return in order to warrant a rewrite.

Plugging The Hole

Just as we see the Angular 2 lifeboats drift off into the distance, we looked around to improve our current situation. It lied within AngularJS 1.5.x.

The AngularJS team has retroactively brought Angular 2+ features into AngularJS, mainly the concept of components.

AngularJS packages, such as ui-router have also tried to help with making their router fully compatible for component based routing.

Finally, module bundlers are not exclusive to frameworks. There was nothing stopping us from using Webpack 2 with our AngularJS project. We incorporated the babel-loader to utilize new es6 features as well.

What we got was awesome.

  • We were able to keep the project in AngularJS 1.x
  • We got to dip our toes into the tidal wave of tech that's currently slapping everyone in the face right now.
  • Keeping the project in Angular 1.x meant we had access to all the great open source modules developed by the community. This is huge for small teams.
  • We had a project that aligned much more closely with Angular 2+ and ultimately better suited for a migration
  • Conversion took a couple weeks instead of months.

At this point you could say we stopped the water from pouring in. We also had a boat stocked with supplies to ensure we could make it to our final destination.

Jumping Too Soon

So lets visit our friends who jumped in the Angular 2 boat at the first site of water.

Half of them were dead. Nobody realized the lifeboats didn’t have supplies. They never had a plan as to where they were going. They just jumped in the boat to drift out into seas. No food. No water. No plan.

When developers arrived to Angular 2+ they realized one big thing. The bag of open source you can reach into was underwhelming. Most projects, like ng-bootstrap or material2 were and still are in beta. Things like finding a datepicker quickly become maddening. You end up having to roll everything from scratch.

The early Angular 2 projects I’ve seen are all similar in one thing. They suck. Usually a hodgepodge of worst practices and odd build processes. There wasn’t enough information available at the time (Stackoverflow), so developers just made it work and shipped it.

Since the initial release, the Angular team and community have really come together. I would say the Angular ecosystem is just now getting to a point where resources are plentiful.

The Bottom Line

New technology is constantly hitting the scene, especially in the world of modern web development.

If you sit there and jump to every shiny new toy, you’ll find yourself on the sideline while someone else beat you to market.

Being a good developer is not always about using the latest and greatest. You need to be aware of the changing environment around you, but apply it to your specific team and situation.

Software facilitates the business. Its up to us as developers to make the recommendations and solutions that drives the business forward.

TheStartupLab.io — Design. Code. Brand

--

--

Dave Gavigan

Web & Mobile Developer, Founder of https://www.thestartuplab.io . I help people build their products and launch their business