By Sergey Gernyak, Back-end Engineer.
Here at Brain, JavaScript is a very big part of the work we do. Especially for the front-end developers. The prevalence of JS usage is prolific, particularly after the V8 release by Google, and of course including writing scripts for the front-end part; writing server-side applications; writing mobile applications (thanks to ReactNative) and others. But despite such widespread and the overall hype around JS, I’m not a fan of its community and infrastructure, and here’s why.
Currently there are 3 versions of JS in use: ES5, ES6, ES7. But! Only ES5 is supported by all browsers. In order to use the very cool syntax (comparing with ES5) of ES6/7, you need to use compilers to convert your cool code into the S&#* that all browsers eat. Some nightly builds on Chrome can help execute ES6 successfully, but this is only one of the many browsers in operation. It is unclear when ES6 will become the new standard. So you’ll need to continue using compilers in both the near and distant future. But we’re pretty sure when ES6 is finally approved as the standard, another version will be created, and declared as way to go. Perhaps it’ll be called ES10 and you’ll need to continue using compilers forever.
Have you heard of that game where you call out a word and then you have to find the library that uses that word as its name? It’s a very funny game and you can be sure that you’ll be very surprised by the naming conventions for JS libraries. If you add alcohol to this game you can definitely get very drunk during the game :-). However it’s not that funny when you’re trying to solve a problem! There are a lot of libraries titled version 0.0.1 and most of them do the same thing. So you find everybody trying to reinvent the wheel in order to try and support and develop the one already in existence. There are a number of libraries that are very small, maybe about 10 lines of code and they are responsible for very simple actions. Those actions are so general so they should be part of the language, IMHO. From my perspective, it seems that the language is actually really poor. But at the moment you really have no choice: either you use the library or you’ll need to reinvent the wheel for each project, again and again. As a result, what appeared to be a very lightweight library brings along a ton of other dependencies you weren’t expecting.
Hmmm, You know what’s interesting? How long some pretty solid and mature solutions/libraries/frameworks live in mainstream? You might be surprised to hear that we’re talking about a couple months to 1 year max. Say what now??!!? There we all are spending months learning to use a framework. You implement the key part of your application using that framework and then just a few short months you have to tell your client that you need to rewrite the whole application because the current framework is old and is not maintainable. WTF?!? Fucking hipsters! It really seems like they are not patient enough to try and craft a solution and cultivate it to ensure it becomes mature. Instead they just want make a new one-time solution and then quickly announce it at the next big thing at the next conference. So the way the they solve problems is to develop another version that creates new problems. Awesome!
Despite all the negatives we’re still using JavaScript and we’ll continue to use it because it’s the only thing that browsers understand. Between a rock and a hard place as they say!
Of course, this is only my opinion, and regardless of my feelings all that is left to say — long live JavaScript!
An executive’s guide to AI and Intelligent Automation. Working Machines takes a look at how the renewed vigour for the development of Artificial Intelligence and Intelligent Automation technology has begun to change how businesses operate.