Behind the Explosive Growth of JavaScript

Vincent Wilson

Is JavaScript really growing?

JavaScript skills are in demand more than ever before. For the past five years, JavaScript has been the most popular technology in StackOverflow’s developer survey. The same survey also listed JavaScript as the second most “wanted” language. In the open source community, more JavaScript code is uploaded to GitHub than any other language; JavaScript tops the charts in number of active repositories and number of commits / day. The number of packages uploaded to NPM has grown faster than any other major languages package manager, showing that JavaScript developers are not only using the language but continuing to release projects and code to accelerate that growth.

What makes JavaScript so appealing?

There are a number of variables that contribute to the continual upward growth of JavaScript. A common trend throughout the last several years has been an increase in the number of environments where JavaScript is now a sane development choice. JavaScript was built for the web, and traditionally has been taught exclusively with the goal of writing front-end web applications. Now JavaScript developers have the ability to target a plethora of other platforms; companies like Netflix are using Node.js as a layer for their front-end web services. JavaScript is finally a great choice for developing cross-platform native applications, thanks to the work of Facebook with React Native. Github and Microsoft have adopted electron to facilitate the development of cross-platform desktop applications used by millions of users a day. With tools like Johnny-Five, community members are exploring the viability of using JavaScript as a language for programming embedded systems. If you really want to explore the leading edge of technology, you can even prototype Virtual Reality applications with React Native VR.

Not only has the number of platforms increased, but the number of ways you can write JavaScript has increased. New additions to the JavaScript language through ES2015 have been readily adopted by the JavaScript community, and browser vendors have followed suit, being quick to implement the specification so new language features can be used in modern browsers. Beyond that, there are a number of options to pick from if you want to write JavaScript, without, well, writing JavaScript. If you prefer a strong functional style, you could write ClojureScript or Elm; if you prefer strong typing, you could write TypeScript or augment your existing codebase with Flow.

There have never been more ways to write JavaScript or more things to write JavaScript for; We’ve never come closer to having a language as ubiquitous as JavaScript. This fact comes with a fair amount of problems, such as a lower barrier to entry (increasing the amount of garbage in the ecosystem), the diverse nature of the language leading to lot of fragmenting and instability, and a lack of a consistent style guide that can be applied to all principles. But those are problems for another blog post.

In general, if you know JavaScript, you can write code for anything. In an economy where speed and flexibility are valued, JavaScript is a valuable skill to have. Rather than needing to learn a new language for every new task, large or small, a developer with JavaScript competency can usually find a way to iterate in a language he is comfortable in, whether he is writing an API server, a static website generator, a single page control panel, a mobile application, or a desktop calculator.

So how should I get started?

With so many resources out in the wild, it can be difficult to know what JavaScript is and where to start if you want to jump on the train. Here at Differential, our learning is driven by our projects. Our engineers will pick up skills in new areas based on what challenges our clients will be likely to face. If you want to learn JavaScript, you can apply the same approach to your own growth! Pick a problem you want to solve, ask a friend or search for what tools exist to solve that problem (note: it might not be JavaScript) and dive in. For those looking for specific resources, we at Di have a growing list of tutorials and lessons that will guide your learning.

Check it out here!