days
-1
-3
hours
-1
-3
minutes
-2
-2
seconds
-2
-8
search
jQuery, Angular, React — The gang's all here

The world of JavaScript: Obstacles, current front runners and what’s next

Vladimir Shkarupin

© Shutterstock / Suwanmalee

JavaScript has evolved a lot over the past few decades. And in this time, this language has become an essential part of the modern web. In this article, Vladimir Shkarupin explains how Angular became the juggernaut it is today and what’s next.

The JavaScript world is fascinating. Over some 20 years, the applications of the language have grown by leaps and bounds – from simply animating web pages to doing practically anything you can imagine. Despite that, the actual JavaScript coding language hasn’t undergone many radical changes. Most of the changes that have been made were just added in the past few years and involve ECMAScript.

In my opinion, the most powerful boon for the development of the language was the creation of AJAX. AJAX is a technology that allows requesting and retrieving data from a server without reloading the page. From then on, it was possible to develop applications within a browser without invoking specialized inline apps such as Java applets or Adobe Flash.

Obstacles along the way

However, along with the new opportunities that opened up, certain difficulties occurred too. In the early days, JavaScript was still mainly used by web designers and layout designers. In other words, it was used by the people who had some idea of how to write apps and use programming patterns and architecture. However, the nature of their work was “making images move” or “animating pages”. All too often, the core professional duty of those designers was to convert a picture design into HTML format or to “color” a page and lay the resulting frames in their proper places through the use of CSS. Everyone had a set of certain plug-ins and widgets to make the page interact with the user in one way or another.

As market requirements grew, more and more complex applications were in demand. Desktop application developers and backend developers jumped into frontend development. They came to realize that JavaScript was similar to “conventional” programming languages, only with syntax similar to C. The rest was a far cry from traditional server-side programming: there was no strong data typing, different browsers had their own implementation features for any given functionality, some browsers even supported features that others simply didn’t use at all, there was different scoping, and there were endless headaches surrounding the magical word “this”.

SEE ALSO: Two years with Angular and loving it

jQuery

Today, jQuery is a standard library that reconciled developers with browsers. Think of it as kind of a code unifier. Once you enabled it, the cross-browser problems disappear. The features perform the same on every browser.

What’s next?

As time passed, the requirements for coding speed kept on rising. The era of single page applications was dawning. Everyone needed a cheap tool that would support routing, modularity, and link to data. It also had to have a low learning curve, so that a programmer could hit the ground running.

The first steps were ExtJS, prototype, YUI, and dojo. The key disadvantages were the high learning curves for each.

Then, backbone appeared. It became the envy of the industry for some time, but it too soon revealed its own peculiarities that developers had to take into consideration when coding. But then the two giants, Microsoft and Google, entered the market. Microsoft started developing KnockoutJS, and Google introduced AngularJS.

The current front-runner: Angular

Of these two offerings, it’s clear that Angular has won over time. Of course, it’s not perfect. There are still some disadvantages. For example, the learning curve was still not the simplest. However, this framework has allowed developers to do a lot “out-of-box” coding. What’s more, as npm (a package manager for JavaScript) and NodeJS (on more global basis) have evolved, it is now possible to find lots of box solutions for projects.

Sometime later, Facebook introduced ReactJS, its own library for JS-rendering optimization. ReactJS only deals with rendering but was based on “picking up” data variation. Facebook also offered its own architecture for building Flux applications.

Google introduced the second version of Angular, which was more similar to Flux architecture than to the original architecture of Angular1. In fact, Angular 2 could use ReactJS as an engine for views.

When considering the evolution of JavaScript and the rising demand for features like strong typing, syntax simplification for class declarations and object initialization, today’s top TypeScript has to be Microsoft’s. The choice is clear, even when compared to CoffeeScript and Google’s Dart.

The new JavaScript standard is even more flexible. It enables old-style coding (prototype-based inheritance); using classes for encapsulation, ensuring and inheritance in a more “habitual” form; and as ReactJS is on the map, functional style programming (pure functions and things like that) is still gaining traction.

SEE ALSO: Angular 2018 roadmap includes Ivy Renderer, Angular Elements, Bazel and more

Key players

Currently, Flux+ReactJS and AngularJS 2 are the key players in the market. In fact, Angular 5 is already on the market. Despite this, version 2 is still sitting pretty. Another contender is TypeScript, which represents additional syntax and which can be used both for React and for Angular.

The essential difference between Flux+ReactJS and AngularJS

AngularJS is a framework which enables coding out-of-box. It has a very convenient CLI, but it requires its own application architecture. Flux’s architecture can be utilized with a wide variety of methods.

For now, the most popular architectural implementation is Redux. This provides more flexibility in solution choices. It likely provides more optimal code with respect to recourses. However, without proper control, any app can snowball which results in maintenance complexities.

 

This article is part of the “Use, favor, ditch: Angular, Vue.js, React & Node.js” JAX Magazine issue:

If you’re not sure what your list of New Year’s resolutions should include, why not go for JavaScript and its myriad of frameworks and libraries? This JAX Magazine issue should help you decide.

The number of libraries and frameworks could easily overwhelm you so let’s stick to the most popular ones: Angular, React and Vue.js.

Author

Vladimir Shkarupin

Vladimir Shkarupin, a frontend developer at Archer Software with over 20 years experience in frontend development, talks about the evolution of Javascript.


Leave a Reply

1 Comment on "The world of JavaScript: Obstacles, current front runners and what’s next"

avatar
400
  Subscribe  
Notify of
Benoît Hubert
Guest

I enjoyed this post, but:
* Don’t say AngularJS 2. AngularJS is the name for Angular 1.x, while versions >= 2 are referred to as Angular.
* AngularJS won over Knockout, no doubt, but that was a while ago.
* If there’s one clear winner now, it would more likely be React. Angular, React and also Vue.js are the big ones now.