Javascript a le vent en poupe du côté des développeurs ? Quelle est selon vous LA raison qui justifie l'attractivité de ce language de programmation qui a presque 20 ans ?

développement javascript multicanal
3
3

4 réponses

il y a 9 ans par Julien_
LA raison principale, c'est la portabilité.

À peu près tous les appareils numériques comprennent le JavaScript, ce qui fait qu'on peut programmer :
- des sites web, qui fonctionneront dans tous les navigateurs modernes, sans ajouter d'extension (contrairement à Flash ou SilverLight)
- des applications natives, pour téléphone modernes, ou pour ordinateur quel que soit l'OS (Windows, Mac OS, Linux, Android, iOS,...)
- des serveurs web (le gros monstre qui gère les données d'un site internet)
- des applications pour navigateurs (comme les bloqueurs de pub, les outils de gestion de mot de passe,...)
- des drones, ou autres systèmes embarqués, ou des objets connectés...
- probablement la plupart des choses que l'on n'utilise pas encore aujourd'hui (frigos auto-approvisionnés, soucoupes volantes, cyborgs...)

Ça veut dire qu'un développeur qui connait le JavaScript, peut à peu près tout programmer.
Ça veut aussi dire qu'on pourra réutiliser pas mal de choses, si on veut adapter un projet sur une autre plateforme. Gros bémol ici, il y a beaucoup de paradigmes qui changent l'interface, rien que le bouton "Retour" sur Android qui n'est pas présent sur iPhone, ça demande des adaptations, alors transformer un site web en application Apple Watch, c'est pas non plus immédiat :)

Deuxième point, c'est assez orienté "asynchrone, temps réel, push, multithread, non-bloquant, socket, bla-bla-bla"...
En général un site web, quand tu accède à une page, ça va faire une demande au serveur, qui va utiliser "une machine" (un thread) exprès pour fabriquer ta page.
En JavaScript, tu peux ouvrir une connexion entre ton ordinateur et le serveur, et ton ordinateur peut "attendre" que le serveur décide de lui envoyer des infos.
C'est aussi une seule et même "machine" qui peut gérer toutes les connexions (ce qui peut poser d'autres problèmes par ailleurs).

Et enfin, c'est "pas trop mal" comme language, d'un point de vue structurel.
J'ai eu du mal à être convaincu, mais au final si on s'y met sérieusement, on arrive à faire des choses bien. Le vrai problème c'est que la plupart des développeurs ont une expérience très basique du JavaScript, qui suffit à faire 95% de ce qu'on leur demande, mais que si on n'approfondit pas, on se retrouve avec un "plat de spaghetti".
C'est aussi un langage qui évolue beaucoup, les outils naissent et meurent assez rapidement, et donc c'est difficile de faire des choix, puisqu'on ne sait pas vers qui on s'engage.

Pour ceux qui s'y connaissent et qui veulent approfondir : jstherightway.org/
8
il y a 9 ans par DavidCourtinot
Ce n'est pas un langage que j'aime et en toute honnêteté personne ne dira que c'est un bon langage en soi. Pourquoi s'est-il imposé ? Parce que ce ne sont pas toujours les meilleurs qui gagnent, il y a dans l'histoire pas mal de mauvais produits (notamment de mauvaises technologies) qui se sont imposés devant un produit meilleur. En tant que langage il n'a rien d'extraordinaire, il n'y a pas grand chose en termes de paradigmes de programmation (très peu de fonctionnel, modèle objet assez bancal...), relativement peu de fonctionnalités standards, des comportements étranges au niveau du typage par moment, des problèmes de sécurité nombreux, une mauvaise gestion des erreurs qui rend le débugage complexe (typiquement, un programme peut continuer à tourner alors que son état est totalement incohérent, alors qu'il devrait plutôt lancer une erreur).

Pourtant, vu qu'il était à un moment donné le seul langage permettant de modifier dynamiquement des pages HTML côté client, il est devenu un standard et les gens se sont mis à s'accomoder de ses défauts, et même à s'en abstraire en bâtissant de puissantes librairies. Des éditeurs comme Google ont créé des moteurs Javascript de plus en plus rapides (ce qui n'a rien à voir avec Javascript lui-même !), ou bâti des langages compilés censés améliorer le JS, et dont la forme compilée est en JS (comme le langage Dart de Google par exemple). Ce n'est pas parce JS est un bon langage qu'on fait de bonnes choses avec, c'est parce qu'il y a des centaines de millions de lignes de code de JS dans le monde qui servent à faire tout et n'importe quoi et qu'il n'y a qu'à se servir. Attention quand même, on ne peut pas TOUT faire avec Javascript. Quand on réalise des applications critiques et/ou à hautes performances, on ne choisit pas JS. La grande majorité des très gros sites utilisent Java (voire Scala avec Play) car malgré sa lourdeur il est plus scalable que les langages script.

Je ne pense pas que JS va survivre, à vrai dire. C'est très dur de le remplacer car il y a tellement de choses écrites en JS qu'il est incontournable tant pour maintenir des systèmes que pour en construire de nouveaux en réutilisant du code. Cela étant, il finira probablement par se faire lentement avaler par des technologies qui sauront se rendre compatibles avec le JS pour rendre la transition plus douce. Au final, plus rien ne limitera l'adoption de ces nouvelles technologies qui permettront de faire les mêmes choses de façon plus élégante et/ou performante.

Après, ce n'est que mon avis et je n'ai pas tant d'expérience sur JS que ça. De ce que j'en sais, on peut faire des trucs chouettes facilement pour peu de trouver les bonnes librairies, mais ça ne me fera jamais dire que c'est un bon langage, après avoir goûté à de vrais langages fournissant des abstractions de haut niveau et une syntaxe élégante (Scalaaaaa).
5
il y a 9 ans par gmaison
En complément de l'excellente réponse de @JulienStoeffler, j'ajouterai également qu'en terme d'enseignement et d'apprentissage, la courbe d'apprentissage est rapide, que cela utilise des fonctions assez évoluées d'un point de vue technique et donc pas de "prise de tête" sur certains aspects de programmation (gestion mémoire, etc.) et pas de prise de tête avec le multiplateforme (enfin pas TROP de prises de tête), c'est à dire que les développeurs ne doivent pas connaître complètement l'architecture technique des ordinateurs ou smartphones ou tablettes. Juste quelques particularités d'affichage ou d'ergonomie (cf. réponse de Julien).
4
il y a 9 ans par disk_91
portabilité et richesse coté front en plus d'un rapidité de developpement certaine et l'existance de beaucoup de librairies. Par contre pour les backend, je n'arrive pas encore à me convaincre que node soit LA solution et qu'il faille faire du 100% js.
3

Vous aimez Skiller?

Rejoignez la communauté.