It seems that out of all of the popular web development technologies, software, and programming languages, nothing has grown faster than Javascript. I have counted 5 popular Javascript technologies that are highly demanded, but there are literally over 25 of them.

I want to review them as I know them from my own angle.

Core Javascript: Javascript started out as a client-side interactive way to enhance HTML and make it do things that it was not originally intended for. This includes:

  • CSS enhancements (DHTML back in the day)
  • form validation
  • AJAX
  • XML processing
  • and other HTML enhancements.

Knowing core Javascript was important and in the early 2000s, when popup ads were being abused, there was a popular opinion that Javascript should not be used. The best advice was to disable it, but that did not stop web developers from using it anyway. This tug of war game between developing some great web applications with Javascript and disabling Javascript altogether was a struggle. Now, in today’s web design world, disabling Javascript on your web browser is a mistake. There are too many technologies out there based on Javascript and the decision to continue developing in it has won in the war against popup ads, and automatic redirects to malignant websites from 10 years ago.

I review the Javascript technologies that I use on almost every website. I am always looking for more “JS libraries and frameworks”. I think they are all good, but hiring managers have their own favorites as well. The technologies I list below are the most popular to date with others escalating in popularity as well.

jQuery: I have been using jQuery for ten years now and to me, it was the best replacement for DHTML which failed to keep its popularity after 2005. jQuery allows developers to manipulate the DOM (Document Object Model), which is a fancy name for the collection of all the HTML elements on a page including images, headings, paragraphs, etc. To me, jQuery revolutionized the web development and allowed developers to add interactive events including CSS manipulation, animation, form validation, etc. jQuery’s marriage to HTML was connected through classes and IDs. The ID is an attribute that identifies every HTML element and allows jQuery to find it easy and manipulate it. Classes are similar to IDs with one difference: they can be applied to multiple elements where IDs can be applied to one. Some developers found that this was not the best technology for Javascript since front end web developers change them and break the connection.

AngularJS: Created by Google, AngularJS practices the MVC pattern (model, view, controller) which is a method for separating the presentation from the business logic. AngularJS operates by the “ng-” attributes (called directives) and turns the entire HTML page into a single page application (SPA) through its ng-app directive. From there, the developer can add controllers through the ng-controller directive which work through a private data object called $scope. The $scope is what connects the data to the view. An AngularJS model is more lightweight as compared to the models of PHP frameworks like CodeIgniter or Laravel, but they are also represented through their ng-model directive which is mostly used for form elements. The advantage of using AngularJS is that there is very little DOM manipulation through classes and IDs, so it is a safer method than jQuery. Front end web developers add data through handlebars in the format of {{variable}}. Back end developers handle the business logic with connections to JSON and SQL through AJAX requests handled by the $http object.

GulpJS and GruntJS: These are not really programming languages that interact with HTML, but they are more like utilities that minimize the work of a developer by automating them through node packages including SaSS, CSS, Less, auto-refresh. minimizing/uglifying, local server creation, debugging, etc. Today, every major development project should incorporate either GulpJS or GruntJS.

NodeJS: Node is a Javascript language for creating client-side server applications and API endpoints. It utilizes the same engine as Google Chrome, NodeJS helps applications run faster, because it includes a non-blocking I/O methodology that makes applications more efficient.

ReactJS: React was created by Facebook and is utilized on Facebook.com and Instagram.com. It is a declarative JavaScript library for building robust user interfaces with very little code. React uses components that can be reused anywhere in a web application. Those components are rendered and changed as the backend data changes.

Other fast growing Javascript technologies are VueJS, Backbone, Redux, Flux, Underscore. I am have not learned them yet, but plan to in the near future.