Beaucoup de programmeurs s’investissent dans un seul langage.
C’est quand même assez rare qu’un programmeur puisse se limiter à un unique langage. Et c’est encore plus vrai sur le long terme.
Si on commence à voir le cas aujourd’hui, c’est justement avec Javascript a cause des formation « créateur web ».
Ils en connaissent d’autres mais sont moins à l’aise. Là où il faut souvent deux langages, comme en mode Web, ils vont privilégier celui qu’ils connaissent le mieux, sans penser à l’homogénéité du système.
Mon propos est de comparer les langages de programmation sur un plan purement technique en dehors de tout critère subjectif de préférence.
Pour ceux qui veulent un langage de programmation qui ait les meilleures qualités pour s’adapter à tout, Javascript n’est manifestement pas un langage qui ait été conçu pour cela.
Depuis nodeJS, JavaScript est accessible sur serveur comme sur navigateur, on peut donc partager son code sur les 2 plateformes et se contenter d’un seul langage.
Ce qui revient à étendre l’usage d’un langage inefficient et limité au motif que certains programmeurs ne maîtrisent rien d’autre. Et j’aurais bien d’autres choses à dire sur cette transposition mais ce serait un long débat.
Bref, c’est un avis purement personnel, mais je trouve qu’il y a bien mieux à faire.
On peut créer des applications desktops avec exactement les mêmes outils, ce qui nous fait trois environnements.
Sauf qu’au jeu de la polyvalence, c’est à dire à vouloir un langage unique qui servirait à tout, Javascript est un très mauvais choix. D’autres langages ont un spectre d’usage beaucoup plus important que Javascript.
Et cela aussi bien si l’on considère les possibilités du langage (il manque clairement certaines possibilités) que des besoins d’un « runtime » efficient. Vu la complexité d’un interpréteur Javascript « optimisé », cela demande beaucoup de puissance et de mémoire.
Il s’agit d’un langage intéressant, car objet, qui plus est lié au système des prototypes, assez bluffant, quand on connait.
L’aspect bluffant d’un langage de programmation ne veut pas dire pour autant que c’est un bon langage pour écrire des applications, ni même un langage puissant en terme de possibilité.
C’est d’ailleurs un très vieux débat en informatique. Par exemple, des langages tels que LISP ou d’autres langages de type fonctionnel ont fait couler beaucoup d’encre et d’exclamations enthousiastes.
Mais malgré le fait que les enseignants ont toujours adoré ce type de langage « waouh », les programmeurs de métier ont toujours préféré d’autres langages beaucoup plus pragmatiques et plus efficients qui sont meilleur à résoudre les problèmes concrets qu’ils rencontrent tous les jours dans leur métier.
Bref, les meilleurs logiciels du monde sont écrits dans des langages qui ne sont pas « bluffants », mais juste pragmatique, efficaces et puissants dans le sens des vrais besoins.
Le seul souci, c’est la performance, donc pas de jeux exigeants, pas de nouveau système d’exploitation, mais il s’agit là d’une frange spécifique d’outils qui concernent une minorité de développeurs.
Je ne partage pas votre avis.
En tant que programmeur, je pense que toutes les applications ont besoin d’être efficiente. Quel que soit son usage, un programme qui rame n’est jamais bon.
Et l’exemple du langage qui suffit pour une petite application… n’attends que le temps qui passe et que l’application grandisse pour se trouver bloquée par les limites de son langage. J’ai pu constater cet écueil un nombre incalculable de fois.
Ajoutons qu’avec les nouvelles contraintes écologiques, l’informatique mobile et une loi de moore de plus en plus moribonde, chaque cycle CPU gagné aura son importance dans le futur.
Un langage de script, c’est fait pour rester un langage de script, c’est à dire un langage avec lequel pour diriger des processus en évitrant d’empiler les couches.
Le problème quand on veut écrire de vraies applications avec un langage de script, c’est qu’on va multiplier les bibliothèques et utiliser des framework… ce qui revient à multiplier les couches de code inefficient. Ce qu’il faut absolument éviter à tout prix avec un langage qui n’est pas rapide.
Qu’un programmeur C s’offusque de cela, je comprends, il est dans son univers. Il existe une multitude d’univers en termes de développement.
Sauf que ce n’est pas une question d’univers ni de langage, mais de comprendre les concepts de fonctionnement qui régissent tous les langages de programmation. Absolument tous, sans aucune exception.
Par exemple, le fait qu’un compilateur peut produire du code beaucoup plus efficient avec certains langages de programmation qu’avec d’autres.
Ou encore les problèmes de base de la gestion d’un gros projet avec le fait que moins le langage vous forcera à définir ce que vous écrivez, plus cela va compliquer la maintenance à long terme.