Comme on le sait, il manque à JavaScript une grande bibliothèque standard. Mais ce défaut pourrait bien disparaître. En effet, une initiative de tierce partie en dehors du processus de normalisation du langage devrait déboucher sur la livraison d’une bibliothèque standard beaucoup plus fonctionnelle et plus large. Cette bibliothèque servira également le runtime JavaScript Node.js côté serveur.

Baptisé Stdlib, le projet open source se concentre sur les applications de calcul numérique et scientifique. Il montre aussi qu’une voie de développement de JavaScript en dehors de son contexte web d’origine est possible. Stdlib comportera une série de bibliothèques pour les mathématiques, les statistiques, le traitement des données, les flux, et, selon ses créateurs, elle pourra servir à de nombreux usages, comme on peut en attendre d'une bibliothèque standard.

En soi, Stdlib va à l’encontre des intentions du créateur de JavaScript, Brendan Eich, qui a toujours voulu limiter la taille de la bibliothèque standard du langage, préférant la faire évoluer progressivement. En ce sens, Stdlib vient renforcer la position de tiers qui veulent étendre la fonction JavaScript au-delà de ce que permet le standard officiel ECMAScript. (Brendan Eich n'est pas impliqué dans le projet, a précisé Philipp Burkhardt, un important contributeur du projet). Même si le travail autour de la bibliothèque a commencé en 2016, les révélations sur son fonctionnement sont très récentes.

Plus de 2000 fonctions pour Stdlib

Parmi les capacités prévues de la bibliothèque JavaScript, il y a notamment une API de traçage pour la visualisation des données et l'analyse exploratoire, ainsi que des utilitaires généralistes pour la transformation des données, la programmation fonctionnelle et le flux de contrôle asynchrone. En fait, le nombre de fonctions de Stdlib dépasse les 2000. En voici quelques-unes :

- des fonctions mathématiques spéciales, dont des fonctions exponentielles, logarithmiques, trigonométriques, de valeur absolue, d’arrondi, et des fonctions spéciales.

- des fonctions de distribution des probabilités, avec la possibilité d’évaluer des fonctions de densité de probabilité, des quantiles et des fonctions de distribution cumulative.

- des utilitaires généralistes pour la transformation des données, la programmation fonctionnelle et le flux de contrôle asynchrone.

- des add-ons natifs pour l'interfaçage avec BLAS (sous-programmes d'algèbre linéaire de base), et des fallbacks en JavaScript pur.

- des utilitaires d'assertion, pour la validation des données et la détection des fonctionnalités.

- des exemples d'ensembles de données pour les tests et le développement.

- un environnement REPL, avec aide et exemples intégrés, et un benchmark supportant le TAP (Test Anything Protocol).

Le code source bêta de Stdlib est disponible sur GitHub. La version bêta actuelle est estampillée 0.34.