I think being a late adopter has way more advantages that being on the cutting edge. As a consultant writing code for others, I stick to old and proven tech. I feel like this confers quite a few advantages.
- Stable. Early adopters have ironed out the bugs.
- Support. There will likely be extensive documentation and stackoverflow question history to guide you.
- Social Proof. What easier way to sell a customer on using technology X, when you can point to large established companies using it too?
This isn't to say that you shouldn't use new and innovative technologies. If I was a salaried employee at a company whose primary focus was software, I would absolutely jump on some new technology or even write some myself. If your software isn't the product, but rather the tool to enable efficiency for specific business use-cases, you should probably being using .NET or Java.
I spend a lot of time streamlining / automating business processes. Internal tablet apps, web-portals, interacting with legacy iSeries codebases, on and on. The app needs to just work 100% of the time with no intervention from you. Trust me, you don't want to feel that dread in the pit of your stomach every time your phone rings.
Things I've Completely Avoided Because I'm Busy Shipping
- Angular 1.x
- I mean I've of course made a chatroom with node, express, and socketio
- Most of Java except Spring.
- Blockchain - hard pass on all of this.
Things I've Avoided But I'm going to Deep-dive On In 2018
- .NET Core
- Modern CSS