Salut,
A mon avis, ton ébauche d’article manque un point essentiel : la plupart du temps, le choix du langage est plus ou moins arbitraire, et n’a rien à voir avec les qualités intrinsèques du langage. Souvent, ce choix t’es imposé à cause de l’historique (base de code existante écrite en Z), des compétences (l’équipe en place connaît bien le langage X), des outils disponibles (telle bibliothèque essentielle a été écrite pour le langage Y), etc.
Un exemple : au travail, on fait du code embarqué sur un micro-contrôleur. Dans l’absolu, on pourrait le programmer en n’importe quoi tant qu’un compilateur est capable de faire de l’assembleur pour le CPU. En vérité, le compilateur fourni ne sait faire que C et C++. Du coup une grande partie est programmée en C. Il y a aussi une partie en C++, mais en fait personne n’écrit une ligne à la main, c’est généré automatiquement à partir de modèles Simulink (programmation graphique en gros), et on a pas vraiment le choix du langage. Une bonne partie des outils qui tournent autour de Simulink sont fait en langage Matlab (même éditeur). Évidemment, le processus de compilation est automatisé. On a donc écrit des fichiers Matlab qui appellent make et écrit des Makefile qui décrivent le job et on a aussi écrit des scripts batch (historiquement) qui font une partie du travail. Ah, j’oubliais, on doit convertir des exécutables pour obtenir le format qui correspond aux standards du client et on a dû écrire un script Python pour ça, à cause de certaines bibliothèques écrites pour Python. On aurait adoré utiliser un langage "safe" parce que c’est pour l’automobile, mais on peut pas vraiment à cause de Simulink du coup on a un outil d’analyse statique du code C et C++. Il n’est pas question de se passer de Simulink, parce qu’il est incontournable pour les simulations du code embarqué, qu’il n’a virtuellement pas de concurrents et qu’il y a une expertise et une maîtrise forte de cet outil au sein de l’entreprise.
En bref, mon message est le suivant : un langage, c’est des fonctionnalités et qualités intrinsèques (propriétés, concepts, concision, contrôle mémoire, etc) et un environnement (bibliothèques, compilateurs, outils de développement). On finit rapidement par ne plus avoir le choix finalement.
Du genre: jeux vidéo 3D, donc Unreal, donc C++ presque à coup sûr. Ou encore application Android, donc Java principalement. Ou encore Application iOS donc Swift dernièrement. Ou encore front-end Web, donc Javascript. Ou encore mainframe dans la banque donc Cobol. Ou encore outil d’analyse des ventes via Excel donc VBA.
Bon, grillé mais tant pis.