Why deal with JS?

Deal with JS

Why deal with JS? - It's a fair question why is the tech world nowadays so JS oriented?


I know, I know what you are saying right now, there are other things, like big data, cloud computing, AI and so on which developers are excited about...


Well...

Yes, there are other technologies too which are interesting and important, but JS has such a big community around it, that its really overwhelming and year by year the number of domains which are tackled by JS are more and more.

If we take a step back and take a look at the role of JS in the tech community and in the industry by the beginning of 2000 we can see that it was mostly used for making websites dynamic and that's it, period.

In 2009 there was a turning point, node.js was released and this triggered an avalanche. Suddenly developers started to use JS, a single threaded, asynchronous programming language on the server side (where java and .net were used before) and as history has proven this worked out quite well.

In 2010 angular.js was released, at that time this client side MVC framework was so different (better?) from all the other available in the market (like knockout.js or backbone.js) that it started to be adopted by the community. Angular 1.x was (still is) around for ~7 years, which I think signifies how good that framework is and how much kudos do the guys in the angular team deserve. Angular 2 was released recently which now can be used from JS, TypeScript and Dart. The creation of Angular 2 was again a great effort of the JS community and enterprises (Google from Angular side and Microsoft from TypeScript side).

react.js appeared in 2013 and it has evolved rapidly, with its virtual DOM and JSX syntax it got a lot of attention and criticism from the JS community, but its still there and its working very well for the users. Of course the JSX syntax has its pros and cons, but that is a different topic what we will cover later on.

In 2015, again, a big step was made so JS can adopt and conquer the tech world, RN (ReactNative) was released, which glues web, android and iOS development together. Many developers consider RN as a competitor for mobile Hybrid app solutions, which might be true, but as far as I can see, RN is the one which can be easily adopted by web developers and managed to get the most out of the community.

I just mentioned three milestones which resulted in JS to be widely known, used and embraced by the tech community, I didn't even mention the release of express.js or twitter's bootstrap components, which were significant but not as important as the ones mentioned before.

So...

To give my answer to the question Why deal with JS?

I think nowadays and in the next decade JS will be the programming language (along with the mentioned technologies) which will give so much flexibility to IT companies from Human Resourcing point of view, like no other technology did before, since the creation of C programming language. There are two main reasons why I say this.

The first reason is, that today, if you have good JS knowledge (that is your main technology, your main asset) you have all the necessary technologies and frameworks at your hand to deliver a product, you can create a website, a mobile application, even a console and a SmartTV application can be created using only JS (of course these applications have to have some platform specific features and sometimes besides JS other technology needs to be used, but the core can be done with JS). So we can say that JS is the foundation a (more or less) universal application development platform.

The second reason is related to the first one and is related to career development and human resourcing. If you think of any tech company, one of the biggest issues these face is that they do not have the necessary developer-power to deliver some projects, because the current employees are not competent within the required technology or they cannot recruit people fast enough who have the necessary technical skills. So, if the technology stack has a common base, like the same programming language and the same development environment and offers possibility to deliver products on many different platforms, then, extending and managing delivery teams is much much easier, because there is a common knowledge and there is not much time needed to ramp-up technology-wise. I assume, I do not need to explain how much flexibility this offers to a tech company.

I really believe the points which I detailed are true and will shape our future and the tech industry's future too, but till we get there, there is still (much?) stuff to work on in the JS world.