The JavaScript Standard Library
Written by Ian Elliot   
Wednesday, 13 March 2019

One of the problems with JavaScript is that there is no standard library as there is in other languages. This means that we have to download everything we need and not just the "extras". This is all about to change with a proposal to have browsers include JavaScript modules without downloading them.


It is difficult to know if this proposal, made by Ecma TC39, the committee that evolves JavaScript, is a good idea or not. The idea of a standard library for JavaScript is appealing, but the advantage of having built-in modules isn't quite so obvious. The proposal says:

"With the introduction of a standard library developers will get a well-defined API that does not have to be included with their pages or application. The functionality of the standard library will have gone through a standardization track and will have well-defined APIs and behavior."

The ideas is that built-in modules will be like regular modules, but always available. However, the advantage of this isn't as clear cut as it seems. It might be better to have modules that are downloaded and shared between all web pages or apps. In other words, instead of having them built in, browsers should implement a more intelligent cache to share common standard modules.

To smooth over any transition there are import maps, which tell the browser to ignore downloading a library if it is available as a built-in. This is almost the caching mechanism that is needed. If a browser doesn't support modules, and 80% do, then you need to fall back to loading code in the usual way.

There is, of course the big problem of deciding what goes into any standard library. The advantage of a standard library, ask any C or Python programmer, is that the objects in the library quickly become regarded as part of the language. This makes it easier for the community to work as a coherent whole. For example, currently if you ask how to do something you will get lots of answers telling you how to do it with jQuery or native JavaScript. The proposal doesn't seem to envisage including things that are specific to the environment that the code is running in:

"Such a library would only cover features which would be useful in JavaScript in general, not things which are tied to the web platform. (A good heuristic: if something would make sense on a web browser but not in node or on embedded devices or robots, it probably isn't in scope.)"

The proposal is at an early stage, but Google has already created the first built-in module for Chrome - KV Storage. This is a simple library that provides a key/value storage engine as an alternative to localStorage or indexedDB, both of which have problems. The whole thing is just an experiment at the moment, but Chrome has got built-in module support. If you want to try it out you need Chrome 74 and you need to turn on the experimental web platform features flag.

Although Google is taking the lead, it does seem to be a valid attempt at establishing a standard rather than a takeover or a feature that makes Chrome better than the competition. 





More Information

Standard Library Proposal

KV Storage: the Web's First Built-in Module

Related Articles

Survey Reveals JavaScript Trends

GitHub Removes jQuery. Why?

ECMAScript 2018 Is Feature Complete

ECMAScript 2016 Approved

JavaScript The Language With Two Names    

The JavaScript Encyclopedia Work In Progress 

JavaScript Added To Oxford English Dictionary 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.



GNU Octave Improves Graphics Backend

GNU Octave 8.1 has been released with improvements including changes to the graphics backend, better compatibility with Matlab and a number of new and improved functions.

AI At All Levels From Udacity

AI may be threatening to take away our jobs - but on the other hand it opens up plenty of opportunities for those with the right skills. A whole raft of Udacity Artificial Intelligence Nanodegree prog [ ... ]

More News





or email your comment to:

Last Updated ( Wednesday, 13 March 2019 )