Should We Start Again Instead?
The Life and Death of Developer tools
Inevitably, there are tools that come and go which adds to the difficulty of trying to chose a pathway through this morass. I don't blame large corporations for this. They are struggling as much as everyone else to decide they way forward. But it is frustrating and expensive to invest a lot of time in learning a toolset only for it to be quickly ditched.
Angular 1, for example, was ditched and re-written from scratch and it's remaining life is currently uncertain. Visual Studio Lightswitch was a nice tool that I used for a number of projects until its life was abruptly halted back in 2016.
So This is Where We Are. Where Do We Go Now?
At the moment the landscape is a minefield and if you need to decide how and with what to build an application for the web you are faced with a decision that you may regret terribly at some point down the line.
Of course, your requirements will drive the final decision and these usually come down to a combination of business requirements and resources at your disposal. But even when those are clear you still have to decide from a bewildering array of frameworks and other tools to chose.
Up until now if I was going to build a web site I'd chose either ASP.NET MVC or NancyFx as the server side framework. I'd use Razor for the views and either vanilla js or Jquery for the fancy stuff. Or, if I needed a CMS I'd use DNN or Wordpress.
In most of the main options there are more than 5 choices to be made. It's bewildering and this is before we've even tried to build anything. I am not alone in struggling to decide the way forward from here. Web technology, tools and methods have gone mental in recent years and it will be a while before things settle down. In the meantime us developers need to make pragmatic decisions about what we chose to learn to stay in the game. We need to look at the best tools for the job but we also need to be very aware of the trends in the job market otherwise we might be working ourselves out of employment.
Let's assume the client wants a modern Single page application to replace their dated internal system. Do we jump on the AngularJS bandwagon? Do we wager on something lighter and more elegant like Vue.js? Or do we plump for something lean and approachable such as Mithril.js?.
Well, it's not easy but requirements and resources should give you an idea. As a pragmatist I am coming to the conclusion that there are a few things you can do that will stand you in good stead.
Learn a Good and Popular Language Such as C# or Python.
Keep Your Mind Open.
Group thinking can be a dangerous thing. Following the herd and jumping on new tools just because they are popular can get you in trouble. Careful evaluation should be carried out before any tool is used for a serious project.
Play with New Tools on a Regular Basis
Just this past week I have played with Amber Smalltalk, ELM and JS++. These are all great tools and if it wasn't for their relatively small user bases I'd be very happy to chose and learn one of them properly.
Look at What You are Doing and Ask Yourself If it Can Be Done Better.
The Way Forward For Me
Hopefully, learning Typescript is a good direction for now. There is a great deal to learn and for the moment a complex framework will make learning the language harder.