State of JavaScript in 2017
In this article, I wanted to give you a state of JavaScript (JS) in 2017 and explaining what is necessary to know as you are going to talk with front-end developer.
You may ask yourself : “What would I want that ? ”
Basically, if you are a data analyst in a web company you may want to understand what are the possibilities for your “data retriever” team. You want to understand, how affected are your data by the different method use.
Vanilla JS
Vanilla JS is the language on the rise actually. For a long time being, people were using a lot of library to realize “basic” action on the website. However as the website started to be more complex and HTML5 increased the possibility of pure JS, developer realized that it is actually better to realize those tasks directly in JS (so-called Vanilla JS) instead of loading-using a library on their website.
By default, pure JavaScript has all the functionalities that you want from a front-end development language. There is no limitation but at the same time, the time required to implement those solutions for all browser will take longer as the JavaScript is not standardize on all browsers. It require adjustment when you want to develop click tracking on Safari mobile browser or Firefox desktop.
Yes, the event tracking (the most interesting part of our data for Online Website) require a tricky solution depending when and where you want it.
Here example of difference between onClick and onMouseDown :
http://www.cardinalpath.com/experiment-onclick-vs-onmousedown-event-tracking-in-google-analytics/
Tap vs Click tracking & UX :
https://coderwall.com/p/bdxjzg/tap-vs-click-death-by-ignorance
ontouch vs onclick :
https://eloquentJavaScript.net/14_event.html
The good part of Vanilla JS is that you can learn it pretty easily if you know HTML and some CSS. You’ll never be an expert but you can solve some easy problem on your own and better interact with your dev team.
jQuery
jQurey was the first famous library making JavaScript coding a bit easier to manager for different browser (you can tell me if I miss one). It is basically used almost everywhere and serve the purpose to make you code look shorter and standardize it for the different browser.
This is very convenient as you want to go fast and there is no need to take care of the compatibility of the different browser. You can manipulate easily the DOM (as soon as the jQuery is loaded) and all about event triggering is a lot easier in this language.
At the same time, programming language are not magic, so you can imagine that in order to realize those short versions of code, you still need to run them in pure JavaScript at some point. This is the reason why you need to load the library at some point on your website.
As developer are always struggling to make the website faster, loading the library on the page take resources and bandwidth allocation. It starts to be necessary to require this library and as I said earlier; the improvement of JS and HTML5 make it less and less necessary, especially when new library arrived and have a better range of possibility.
This language /library is also easy to learn, so I would recommend learning it for the person that are actually comfortable with the pure JS.
Vue.js
Vue is another JavaScript based library that are aim to front-end developer. The creator of this library have actually stated that he has been inspired from Angular (see later) but he found that Angular had too many (hard) concept for developer, so he wanted to develop something lighter.
I would say that this language is actually a mix between the new Angular way of doing things (JavaScript really integrated into the development of the project) and the old JS / jQuery way of doing things (let’s put a layer on top to do the extra work).
It also takes some of React power by optimizing the rendering, changing only elements that are necessary to be changed in the rendering process.
I am not well aware of Vue possibility but if you are starting to learn JS and jQuery, I will definitely say that Vue should be the next on your list. The relative simplicity of its language combine with its power will definitely make it the language of the future. (For front-end developer)
Angular.js & React.js
Angular was developed in 2010 and React in 2013 (so new languages) and since then, they just grows a lot. It is mostly coming with his best friend Node.js but not only (Express.js, Angular.js itself, etc…).
These libraries are actually taking care of the problem caused by single application framework. It also interact with the DOM element of the HTML page, but the difference is that those element need to use specific tag in order to be taken into consideration by Angular. The good point is that Angular is directly bind to the elements and synchronize with them. It improve stability of the page and can interact with other component easily. For React, you can use virtual DOM to code your necessary javascript effect or HTML element you need React to work with and React will take care of updating the real DOM as soon as it is loaded.
On your side, what you need to know / remember is that these languages are more complex than “normal” JavaScript and therefore require specific developer skills, often specialized developer in angular and/or react development to run your website. You can mostly forget to learn and use it by yourself as this language is mostly done in the web development phase.
Node.js / Express.js
This part is not to go especially for Node.js or Express.js but just to explain you that JavaScript, even if it is a flaw language (no standard -or not follow, hard error handler, for a long time inefficient in term of processing), it has recently started to get more and more standardization and improvement.
So much that they even start to create derivative library based on that language, such as Node and Express.js. Those language-library are not for front-end developer but to build back-end application online. Yes, now JavaScript is getting more and more famous and start to expand out of the front-end community. The development in these communities is another story but just so you don’t get confused by those terms. They are JavaScript based language but they have a totally different purpose.