Un jour (quelque part autour de l'an 2010), j'ai ri d'un pote qui m'expliquait qu'ils apprenaient le Javascript à son cours d'informatique en école d'ingénieur.
A l'époque, Node n'existait pas (ou était aussi rare qu'un torrent de Howard le Canard avec plus de 2 seeds) donc ils apprenaient surtout à programmer une calculatrice foireuse avec des <TABLE> partout.
Je trouvais ça tellement stupide. C'est même pas un langage de programmation, y a pas de types, pas de compilation en exécutable, pas de multithreading (dans le sens multithreading comme en Java) et le côté "orienté objet" (à l'époque je pense que language orienté objet = LA SEULE ET UNIQUE ET MEILLEURE MANIERE DE CODER) à la sauce vraiment louche et encore plus capilotractée que "l'orienté objet" en PHP 4 (lol).
De plus, JS tourne dans un bac à sable fourni par le navigateur. Pas moyen d'écrire ou lire des fichiers (dieu merci, d'ailleurs). Comment tu crée ton appli de gestion de cave à vin ou ton BLOG (ben tiens) sans pouvoir écrire de fichiers (ou modifier une base de données, bien entendu)?
Alors oui, aujourd'hui il y a des services de base de données gratuits qui peuvent être directement consommés par JS, pour ce que ça vaut. Mais à l'époque, ça n'existait pas.
En fait c'est un peu ça le thème du jour, désormais on peut TOUT faire en JS. Y compris:
- Des applications natives, avec Electron ou, aujourd'hui plus obscur, nw.js ;
- Sachant que même Microsoft s'y met puisque Skype est désormais écrit avec Electron
- Des applications serveur, en tout genre, et qui sont étonnamment efficaces malgré leur simplicité (l'event loop JS est monothread mais fait appel à différent mécanismes asynchrones pour toutes les opérations blocantes) ;
- Mettre des types dans son JS, avec Typescript. Parce que pourquoi pas hein?
- Ecrire des scripts d'amin système, pour analyser des logs, surveiller un service, envoyer des notifications, ...
Malgré tout mon scepticisme encore bien intact autour des packages managers, des 1000 dépéndances et 10879 contributeurs nécessaires pour installer un driver de base de données et des 180 MB de node_modules qui vont avec, je dois avouer que je me retrouve à charger des fichiers ligne par ligne, tout coller fans un filter suivi d'un map suivi d'un reduce suivi d'un... Qu'est-ce qui m'arrive...
On peut dire que j'ai abandonné Perl pour JS dès que ça devient un petit peu complexe, et pour tout ce qui est applications graphiques, malgré le succès intersidéral de mon article sur JavaFX (je plaisante pas c'est plusieurs visites par jour) je passe sur Electron. Désolé... Je suis même en train d'écrire cet article dans une appli Electron (qui utilise React LOLZ):
Reste plus que des applis très haute performance (y compris jeux vidéo) ou quelque chose qui demande spécifiquement du multithreading pour que je considére une autre solution.
Si mon moi d'il y a 12-13 ans en train de coder un éditeur HTML en Visual Basic s'était vu, aujourd'hui, en train d'attendre devant npm install pour pouvoir écrire trois pages HTML statiques, il... Aurait été étonné. Je pense.
Ouais on va dire ça. Je ne sais pas trop ce que l'avenir nous réserve. J'espère juste que j'aurai pris le temps d'apprendre Rust et F# d'ici-là.
Commentaires
Il faut JavaScript activé pour écrire des commentaires ici
#1