Like it or not, if you’re not writing apps with AngularJS, you’re not getting much freelance work. This is sad news for a few reasons, but maybe not the reason you’re thinking.
I like to keep my finger on the pulse of what skills are in demand. I do this because I help coordinate training events and part of that is deciding what topics we’ll present. A few good ways to do that are to keep an eye on the job boards and freelance websites. It’s no surprise that job boards are still overwhelmed with work in the typical enterprise topics. Java, C#, Ops, etc. UX is getting more prominence, which makes me feel good (that’s my main job function these days).
The freelance websites are showing a different trend. There, AngularJS is blowing up. Many of the front-end development jobs specify AngularJS as a requirement.
What I find most discouraging about this is that client’s are hiring people for a technology. I strongly prefer potential customers to come to me with a problem, not a solution. What I like to hear is, “Hey Matt, can you help be build a tool that will do X and Y?” I say, “Yeah, sure, considering your needs, I think we should use Z to get that done.”
Instead, people are saying, “Hey, we need you to come write an AngularJS app.” What problem are they trying to solve? Apparently they don’t have enough AngularJS apps.
Another problem with AngularJS is that it is about to go through a state of major churn. Before 2015 is out, expect to hear news that a major new revision to Angular will be released that is backwards incompatible. This is a good thing and a bad thing. A lot of great front-end people are concerned with AngularJS’s architectural decisions. There are some well thought out, well reasoned discussions on this. Here’s one to get you started. A rewrite is needed. But that means all the code you write today will be obsolete. Ouch.
I’ve been doing web development for about 15 years now and I’ve seen trends come and go. My gut tells me to use some caution with AngularJS. I recently had a discussion with a colleague and was describing the problems of getting AngularJS working with Polymer, the reference implementation of Web Components. He made the off-hand comment that they were both Google products and should work together.
Yes, in case you hadn’t heard, both Polymer and AngularJS are built by Google employees. And yes, you heard correctly, they don’t work together nicely. Here’s the interesting thing: At Google I/O the presenters have been selling Web Components pretty hard. In 2012, 2013 and 2014 they all had prominent mention. Angular, on the other hand, hasn’t been mentioned. In 2013 I attended a hands-on lab for web components that they offered, in 2014 there were 5 web components or Polymer tutorials. Google released a set of web components sculpted to match their Material UI guidelines.
After reading that last paragraph, answer this question: Between AngularJS and Web Components, two technologies that don’t play well together, which do you think Google is more committed to? To me, it sounds like they’re behind Web Components.
Now we come to the crux of the problem. Many great devs are steering away from AngularJS. Google is steering people towards a technology that is incompatible with AngularJS. The Angular development team is about to make all the AngularJS code you write obsolete.
But clients all want you to write AngularJS apps for them. Now. As in, right now.
So what do you do? Here are a couple options:
- Just say yes. Follow the money. You want Angular? You get Angular.
- Just say no. Don’t take the work. Fight over the other stuff.
- Steer clients towards being open to alternative technologies. “Sure, I can write you an AngularJS app, tell me what our goal is… Ah, we can certainly do that with AngularJS, but let me tell you about another way that may work out better for you in the long run…”
- Say yes but use React instead. (or whatever framework you like) When they ask, just tell them you used AngularJS and hope they don’t notice
- Other suggestions are welcome
I’d say, if you’re actively looking for freelance work, your safest bet is to invest some time in AngularJS now, but keeping your eye down the pipe so that you’re ready for what’s next. My prediction: ES6, React, Browersify and possibly Ember 2 when it launches.