The Rise of JavaScript

The leap beyond browsers into mobile,
desktop applications and more

There was a time when the word JavaScript reminded developers about form validations in web pages. Things have changed since then drastically. JavaScript as a language evolved over time and now it’s used in more places than ever before. This article will explore what are the areas a JavaScript developer can explore today and what it means to be a JavaScript developer in 2017.

If we look back in time, JavaScript was created for Netscape Navigator by Brendan Eich. The confusing name “JavaScript” was given to the language just to get the attention of developers by utilizing the popularity of Java at that time. When the language specification was written, it was named as ECMAScript. ECMAScript went through several revisions to make the language more approachable. ECMAScript 6 is one of the major revision to the language since its last revision on 2009. ECMAScript 6 introduced several new changes to the language including the ‘class’ keyword to make object orientation straight forward.

Image Courtesy: Calvin French-Owen at segment.com/blog

Node.js: A Change in Perception

For quite some time, JavaScript was a thing that was used only in browsers until Ryan Dhal, the creator of the Node.js, had the awesome idea to make JavaScript run outside of the browser. Ryan Dhal demonstrated Node.js to the world on November 8, 2009 at European JSConf. The introduction of Node.js changed the perspective of the language entirely. A language that was once seen as a toy language performing client side form validations then became a language that is capable of handling millions of requests per second in a server side application with ease.

Node.js also gained popularity as a tooling platform. Modern web application development tools like Grunt, Gulp and Webpack relies on Node.js. to do the heavy lifting.

After the introduction of Node.js, the JavaScript ecosystem grew faster than ever. npm, the default package manager for Node.js, is one of the fastest growing package manager in the planet.

Domination of Front End Frameworks

Nowadays web applications have considerable amount of business logic in the client side. The amount of code written in client side imposes new challenges such as how to architect, write and maintain thousands of lines of JavaScript. With the rise of frameworks such as AngularJS and ReactJS, web applications are able to deliver compelling experiences to users than ever before. These frameworks also help to write maintainable code.

Opinionated frameworks such as AngularJS is a one-stop shop, which comes equipped with various components to build a fully-fledged front end application. Angular contains modules, which could help with fetching data from the server, to manage business logic and many more. On the other hand, libraries like React are less opinionated and just does one single thing well, which is rendering the view and let developers rely on other libraries to accomplish different concerns. For example, since ReactJS is just a view library, in order to talk to a server to fetch data, developers have to rely on some other library. It’s up-to the requirements and the developers to choose what framework best suited for them.

Apart from the very dominant frameworks like Angular and React, there are several other frameworks which managed gain attention as well. VueJS is one of notable framework that gained a lot of attention from the JavaScript community. VueJS combines the good pieces of Angular and React yet keeping the framework simple and lean.

Today there is Angular, React and Vue. Tomorrow there would be couple of new once. Try to stay away from framework arguments and pick what suits you the most for your requirements and stick with it.

Thousands of Lines of JavaScript Means the Dawn of New Challenges

JavaScript is a dynamic language and it could be difficult to manage a huge codebase when there are multiple developers working in a team. Developers could feel unproductive due to the lack of support from tools such as Intellisense in the editor. Refactoring a large JavaScript codebase can be tricky since editors would not be able to help much like they do with a statically typed language such as Java or C#.

This is where TypeScript comes to rescue. TypeScript is an implementation on top of JavaScript, a superset of JavaScript, which introduces a type system. TypeScript was introduced by Microsoft and it has been widely adopted by various teams as a viable mechanism for implementing scalable JavaScript applications. It’s worth mentioning that Angular 2, which is a framework from Google, is written in TypeScript and the Angular team recommends to use TypeScript when developing Angular 2 apps.

TypeScript is not the only thing that is trying to make JavaScript more manageable. Flow, a technology introduced by Facebook, is a type-checker for JavaScript. Flow allows you to add type annotations to your existing JavaScript file, where TypeScript is a language of its own.

Hybrid Mobile Applications are a Thing of the Past

Apart from browser and server side applications, JavaScript is better known also in the area of hybrid mobile applications. A single JavaScript codebase could be used in multiple mobile platforms saving time and cost.

Even though hybrid applications are a great option when considering time and cost, in terms of performance, it always been a concern. Since hybrid applications are a web view rendering the UI, obtaining native like performance is a challenge.

Image Courtesy: cdn-images-2.medium.com

This is where technologies like React Native and NativeScript comes into play. With these technologies, we can still write the application in JavaScript but get the performance benefits similar to a native application. Technology like React Native renders native UI views depending on the platform, providing the end user with the native rendering performance while allowing the developers to write the application in JavaScript.

Taking Over Desktop Applications

Writing cross platform desktop applications was a nightmare few years ago. JavaScript has changed the desktop application development landscape too. For example, Electron is a technology introduced by GitHub. Electron is a shell, which uses Chromium browser to render the UI elements and uses Node.js to access the file system and other native APIs, where a typical sandboxed browser based application would not be able to. This allows developers to build the UI of the desktop application by making use of the wide ecosystem of web frameworks and also enable file system access and many more native functionality, through the native APIs exposed by Electron.

Electron has been gaining a lot of attraction lately. Electron is the technology that powers the Atom editor of GitHub and GitHub realizing its potential, decoupled the shell and open sourced it as a standalone platform. Now Electron powers various applications, including Visual Studio Code editor from Microsoft and the desktop version of Slack.

JavaScript in 2017 and Beyond, the Programming Language of the Future

The days, where JavaScript was considered as a toy language is long gone. Today, JavaScript is a language, which can run in browsers, servers, mobile devices, desktop applications and even in embedded devices powering IoT use cases.

As I see, JavaScript is a language that is going to be here for a long time. It’s going to be a language, which truly breaks the platform barrier and allows developers to solve problems in various platforms.

It’s an exciting time to be a JavaScript developer. Feeling like diving in-depth to JavaScript? Take a look at the awesome book series titled You Don’t Know JavaScript. You might also be interested in checking out our 4 part series on building JavaScript web applications from scratch called The Road to JavaScript Web Applications.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.