JavaScript is one of the most popular programming languages in use today. But what of the future? Will JavaScript be replaced by a new language?
20-02-2023
Back in February 2022 we gave our crystal ball a rub to see what the future of JavaScript might be. It was, and still is one of the most popular programming languages in use. Now we are well into 2023 we are returning to this question to see what has changed over the last 12 months.
Back in Feb 2022 we said that it doesn't matter which tech survey or index you look at; JavaScript is always near the top of the list. This certainly has not changed!
For example, the PopularitY of Programming Languages (PYPL) index places JavaScript third (behind only Python and Java) both in February 2022 and in Feb 2023 - in fact, the popularity of JavaScript has actually increased slightly in that 12 months (albeit by only 0.6% but not bad for a language first released late in 1995).
Similarly Stack Overflows’ list of most popular technologies in 2021 placed JavaScript top just shy of 65% of respondents using JavaScript and this is still the case - the current Stack Overflow survey from 2022 shows a small increase. This is now 10 years in a row that JavaScript has come top! Interestingly, if you consider only those learning to program, it is a very close three-way tie between JavaScript, Python and HTML/CSS (which this author considers a mark-up language rather than a programming language). However, just under 60% of respondents are still using JavaScript to learn to program.
What's more, TIOBE index 2021 (which considers a wide range of factors such as searches, courses, 3rd party vendors, developers etc.) placed JavaScript 7th as of February 2022. In 2023 the TIOBE Index still places JavaScript 7th
but again, there is a 0.7% increase in activity.
So although there hasn’t been a massive increase in interest or usage in JavaScript across the last 12 months, it does still indicate the stability of the JavaScript ecosystem.
Last year, we posed the question:
“What of the future? Will JavaScript be replaced by a new language? Will it evolve unrecognisably? Will it continue to dominate?”
So has anything changed / happened in the last 12 months to change our opinion? Let's look at the points we made last year and consider the Frameworks and libraries to watch in 2023.
Present Day
Last year we identified several trends and considered their effect on real-world JavaScript development. To keep things fresh, let's take a look at what has changed...
Ubiquitous Availability
There was a time when JavaScript could justifiably be considered a browser-only front-end language. These days, JavaScript is available on nearly every platform and can not only be used for browser-based UI applications, but also for back-end services (Node.js or Deno, both originally created by Ryan Dahl are popular choices); for mobile applications (e.g. using React Native or NativeScript); on the desktop (via Electron) and with hybrid applications (for instance, using Ionic). JavaScript is literally everywhere today!
This ubiquitous availability makes for a very useful tool for developers and promotes its utility to organisations...and that doesn't look set to change any time soon.
One interesting aspect is the continued interest in and growth of React Native. Pretty much neck-and-neck with Flutter (an open source framework from Google) they were the most popular truly cross-platform technologies in 2022 according to (again according to the Stack Overflow Survey 2022).
Developer Community
The developer community for JavaScript is still huge. This means that not only is there a large amount of skill out there, but also if an organisation needs to recruit new JavaScript developers, they will be able to do so and at a reasonable cost. This is important, as choosing to use a language for which there are scarce and / or expensive resources available will cause problems somewhere down the line.
Ecosystem
This is also still a huge ecosystem of JavaScript libraries available - these libraries cover everything from front-end frameworks, to performance enhancements, to programming language extensions. This means that rather than starting from scratch, developers can employ (often very well-maintained) libraries rather than re-invent the wheel, saving time and money. This ecosystem is not about to disappear, and any new language would take significant amount of time to generate similar levels of support.
The Standard Keeps Evolving
The standard used to specify what is in a particular version of JavaScript is essentially defined by the ECMA (European Computer Manufacturers Association) as ECMAScript (technically speaking ECMAScript does not include a few things that any JavaScript implementation will provide such as the DOM API). This is often shortened to ES as in ES6 (ECMAScript 2015 6th Edition). Thus, a particular JavaScript runtime, such as Google's V8 engine, or browser such as Firefox, will be said to be "ES6 compliant."
The current version of ECMAScript at the time of writing is ES13 (13th Edition ECMAScript 2022 released in June 2022). This version added new features such as private instance fields, methods, and accessors. This illustrates that the language is still evolving and still developing. This means that established programming concepts can be adopted as well as newer more exploratory features; the language is not dead and indeed JavaScript 23 might look significantly different to JavaScript 6!
Interestingly, "JavaScript" is a trademark of the Oracle Corporation as it was originally trademarked by Netscape, who collaborated with Sun Microsystems, who then acquired the trademark before Oracle acquired Sun!
Compile-to-JavaScript (Transpiling)
One trend over the last decade has been the development of compile-to-JavaScript or transpilers.
A Transpiler is a source-to-source compilation which translates one programming language into another. These transpilers allow another language to be cross compiled into JavaScript so that it can be run on a JavaScript environment such as a browser. The post child for JavaScript transpilers is TypeScript – essentially a typed version of JavaScript. Other languages that can be transpiled to JavaScript include TypeScript, Kotlin, Scala and Dart. Indeed as of 2023 there are many, many languages that can be transpiled into JavaScript (see a list of the best languages that compile to JavaScript).
This has the potential for JavaScript and its runtimes, such as V8, to become the default cross platform execution environment of tomorrow.
Near Future
Based on current and recent trends in both JavaScript and other technologies we can make some near future predictions.
Evolution of the Language
As we know, ECMA manage the evolution of the language. In some cases, concepts and technologies have been adopted based on their popularity in widely used JavaScript frameworks. As an example, we can see that the addition of a whole host of array methods in ES6. This trend is likely to continue. For example, various front-end libraries such as React and Svelte are promoting reactive programming (as well as react.js itself) in JavaScript. Encompassing Reactive programming into JavaScript is one possible (probable?) move.
TypeScript is another interesting example. As previously mentioned, it is transpiled into JavaScript and is essentially a typed version of JavaScript. The popularity of TypeScript has grown massively in recent years. Back in 2016, that year’s Stack Overflow survey (the first to mention typescript) indicates that it was being used by less than 0.5% of developers. However, by the 2021 survey, TypeScript was 7th overall with just over 30% of programmers using it. However, by 2022 TypeScript was up to 5th overall with just under 35% of programmers reporting they use it. This is a massive growth and one which is continuing and cannot be ignored. Although it will take several years to catch up with JavaScript, if this grow continues it will get there.
In addition, in 2022, in the Stack Overflow most wanted list, although Rust ties with Python as the most wanted technology; TypeScript is now running them both a close second. With JavaScript down in 5th position.
In terms of JavaScript, it may mean that some form of typing is heading into the language.
Server-Side JavaScript
Although Netscape released a version of JavaScript for server-side use back at the end of 1995, it wasn’t until the advent of Node.js that JavaScript on the server was really taken seriously. This has been further established with the arrival of Deno. Of course Node is far more established than Deno and a comparison of the two systems in late 2022 showed that there is little in terms of performance between them. However Deno has only 1.69% of web developer usage compared to over 47% for Node.js (and 22.99% for Express which is really an extension to Node.js).
However, when compared to any other web framework in the Stack Overflow 2022 survey Node.js and Express far outweigh any other framework with a combined total of 70.11% compared to React.js 42.62% with and jQuery with 28.57% (the other top contenders for Web frameworks and technologies
honours). This shows just how widely JavaScript is used on the server side.
We also suspect that JavaScript will become more widely adopted with the Serverless services arena via the likes of AWSLambda and Azure functions. In both cases JavaScript may prove to be particularly suitable for this type of application.
Functional Programming
Functional Programming (or FP) has become increasingly popular over the last 10 years with functional languages such as Clojure and Haskell as well as hybrid languages such as Kotlin and Scala promoting the approach. Indeed, even established languages such as Java have (partially) adopted FP. JavaScript already has functions and to some extent support for FP, but it is likely that this will grow further. This is evidence to some extent by the number of online tutorials that can be found form the last 2 or 3 years on using Functional Programming concepts in JavaScript.
Longer Term
JavaScript’s’ ubiquitous nature and its adaptability are likely to continue and ensure its prosperity in the longer term. For example, interest in AR, VR and the Metaverse is growing and JavaScript is uniquely suited to take advantage of this.
Indeed if you search on YouTube for JavaScript and Metaverse you will find a whole host of tutorials on how to do this. Most are from 2022 such as https://www.youtube.com/watch?v=99KxEdLMT3g. They often (always?) use additional libraries such as Three.js but that’s the nature of JavaScript – libraries make it more functional for whatever type of system you are creating.
Of course, the language will probably need to evolve and adapt to the new requirements. However, it can do this.
Although the language specification is administered by ECMA, the world of JavaScript frameworks is free to explore whichever avenues it likes. This allows for great flexibility and experimentation. This is already illustrated by the lack of DOM API features in ECMAScript but its presence in all browser based versions of JavaScript!
In addition, ECMA looks at how the language is being used, what libraries are most popular / in demand and takes input from a wide range of interest parties when incorporating new features in the next release. They are therefore not constrained or hampered by any organisations vision (or indeed lack of vision). Thus, it may well be that JavaScript can evolve to provide native support for whatever technology or APIs may be used in a Metaverse future.
Potential Challenges facing JavaScript
Back in February 2022 we highlighted the challenges facing JavaScript and these have not really changed, if anything they have solidified.
Some of the challenges facing JavaScript and its potential longevity / success include:
Multi-Feature Language
One problem with absorbing many different ideas or concepts into JavaScript is that a language which was once simple and easy to learn may become bloated, convoluted, and difficult to use. This might result in a significant barrier to entry for new developers and lose the loyalty of its many existing fans. We can already see more and more of the more subtle concepts in Object Oriented Programming from languages such as Java and C# migrating into JavaScript (for example in ES13).
Technology Moves too Fast
Although ECMA release a new specification every year, the language developments since ES6 in 2015 have been relatively small. It is possible that new concepts / technologies may by pass JavaScript, leaving it in a JavaScript cul-de-sac. That is, it might become a legacy language, with a significant body of work behind it, but with few new or exciting projects being developed in it (think COBOL as an example here).
WebAssembly
WebAssembly (aka Wasm) is designed as a portable binary level, virtual machine which can be used within the browser. Any language can be compiled to the WebAssembly binary instruction set. This allows any language to be deployed on the web for client and server applications. Indeed, most of the popular programming languages already have some level of support for WebAssembly.
Currently the WebAssembly versus JavaScript debate is often centred on speed, as WebAssembly aims to provide near native performance compared to JavaScript’s interpreted approach. However, this misses the point, certainly regarding future systems (not least as JavaScript can be compiled to WebAssembly’s binary format). Rather it is that this therefore by passes JavaScript and the compile-to-JavaScript camp completely as it allows potentially any programming language to be used for web-based applications. Thus, JavaScript may not be needed at all in the future.
However, by 2023 it is 6 years since WebAssembly was first released and it is notable that since April 2022, WebAssembly 2.0 has been in draft status. It might well be that after a much hyped launch (and some security concerns see this site for a discussion of malicious code on WebAssembly sites) it is now too long ago for WebAssembly to really threaten JavaScript directly.
Frameworks and libraries to watch in 2023
There are several very widely used JavaScript frameworks that every JavaScript developer should be keeping their eye on, the obvious ones include React.js, Angular.js, and Vue.js (the big three). Of course, on the server side Node.js and Express are very, very widely used.
Of this group Svelte is particularly interesting and it may well be the framework to watch in 2023. It has a unique approach to application development that aims to reduce the time and effort spent by developers creating an application. Once created the application is then completely independent of Svelte.
Framework
Pros
Cons
Use
React.js
Facebook, Flexible, integrates with other frameworks
High learning curve, Single Page Applications (SPAs), View layer of an web app
Angular.js
Google, Toolset, ecosystem of add-ons, structured apps
Huge learning curve, still evolving, TypeScript preferred
SPAs, Web Apps, large applications
Vue.js
Small, quick to learn, very flexible, performance
Too flexible, focuses on building UI
SPAs, UI of a web app
Node.js
Server side JavaScript framework, easy to work with
Dependence on callbacks (callback hell), really needs Express on top
Server side services
Express
Provides features needed by node, easy development, easy to learn
Need to understand Node and middleware concepts, templates can be confusing
REST APIs
Ember
Provides useful framework, can be very productive, large user community
Not very flexible, can be slow, quiet old
Large web applications
Svelte
No need to write code, short learning curve, new approach to development
New approach to development, small community, limited feature set
Web apps
Preact
An alternative to React, simpler implementation, fast, easy to learn
Small user base
Web Apps
Summary
12 months on and we still believe that JavaScript is a language of the past, present and future. Of course, the JavaScript of 2033 or 2043 might well bear little or no resemblance to the language released as ES6 in June 2015! But like the axe that has been in the family for generations, with five new handles and three new heads it will be as important then as it is today.
Would you like to know more?
If you found this article interesting you might be interested in some of our JavaScript courses:
We use cookies on our website to provide you with the best user experience. If you're happy with this please continue to use the site as normal. For more information please see our Privacy Policy.