Humeur : « Trop de langages tuent la programmation »
Incroyable ! Selon Freebase, il s'est créé en moyenne sept nouveaux langages de programmation par an au cours de ces cinq dernières années, hors ceux expérimentés en laboratoire. A la fin des années 50, on en comptait moins de deux.
Aujourd'hui, nous sommes dans l'ère de la surabondance, des plus illustres, tels Cobol, C# ou Python, aux derniers-nés comme Go, Cyclone ou Scala. Avons-nous encore besoin de nouveaux langages de programmation ?
Beaucoup d'entre eux recouvrent en effet les mêmes problématiques que ceux dits établis. En d'autres termes, à quoi bon migrer vers des langages dynamiques comme Groovy quand nous avons déjà Perl, Python ou Ruby ? Quelle est la valeur ajoutée d'un Scala face à un Java ?
Bien sur, il n'existe pas un seul remède à toutes les maladies, il ne peut y avoir un seul langage de programmation. Nous avons d'abord eu le langage machine, de première génération, puis l'assembleur ; Cobol, Fortan ou Lisp ont suivi. A cette époque, il était déjà trop tard. Nous étions dans le trop-plein et l'hypothèse Sapir-Whorf, selon laquelle les langues donnent forme à la pensée, trouvait déjà écho dans le monde de l'informatique.
Pour pallier à ce phénomène – véritable « syndrome de la Tour de Babel » – les directeurs informatiques rivalisent d'astuce, en utilisant des générateurs de code. Pacbase, l'atelier pour Cobol, est l'un des plus courants. Mais IBM songe déjà la remplacer en 2015, lorsque sa garantie de support sera expirée. A la multiplication des langages va donc s'ajouter la multiplication des outils de maintenance. Et quid des compétences pour les cinquantes prochaines années, lorsque l'on constate qu'en 2009, nous sommes toujours en quête de développeurs Cobol ?
C'est un véritable capharnaüm que nous prépare le monde de la programmation. Avant qu'il ne soit trop tard, rêvons un peu. Bien sûr, on ne refait pas le monde, encore moins celui de l'informatique, mais il serait bon de faire ralentir la machine et préserver l'existant avant que tout cela ne nous dépasse. Qui sait, peut-être qu'un jour il n'existera qu'un seul et unique langage capable de nous réunir...
Maturité ?
de
pat_a_a
, posté le 03 février 2010 à 12h34
Manque de maturité du métier ou de l'auteur ?
ADA a été créé spécifiquement dans le but de n'avoir plus qu'un seul langage, avec l'insuccés éclatant que l'on connait, malgré toute l'énergie dépensée.
Quel langage garder :
- Modula-3, le plus cohérent, avec un fort typage, mais peu diffusé ?
- C, qui n'est qu'un assembleur portable, à la syntaxe faite pour être écrite et non relue ?
- les langages reprenant la syntaxe du C, comme Java, Javascript, C#, Objective-C ou autres, qui ne sont pas bien plus lisibles ?
Je crains que les besoins de programmation soient trop divers pour se contenter d'un seul langage.
Après l'utilisation en production de plus d'une dizaine de langages différents, mon préféré reste le Pascal (ou ADA) pour sa facilité d'abstraction et sa lisibilité.
ADA a été créé spécifiquement dans le but de n'avoir plus qu'un seul langage, avec l'insuccés éclatant que l'on connait, malgré toute l'énergie dépensée.
Quel langage garder :
- Modula-3, le plus cohérent, avec un fort typage, mais peu diffusé ?
- C, qui n'est qu'un assembleur portable, à la syntaxe faite pour être écrite et non relue ?
- les langages reprenant la syntaxe du C, comme Java, Javascript, C#, Objective-C ou autres, qui ne sont pas bien plus lisibles ?
Je crains que les besoins de programmation soient trop divers pour se contenter d'un seul langage.
Après l'utilisation en production de plus d'une dizaine de langages différents, mon préféré reste le Pascal (ou ADA) pour sa facilité d'abstraction et sa lisibilité.
Et oui!
de
l'auteur
, posté le 03 février 2010 à 16h33
Oui, c'est vrai, je ne suis qu'un jeune blanc-bec face à la maturité des langages et de certains programmeurs (comme vous j'imagine) :)
Il n'empêche que c'est avec les rêves que l'on avance. Et rêver est bien l'une des dernières choses qui ne soient pas encore interdite en ce bas-monde...
Merci pour votre contribution en tout cas. Il y a comme vous des partisans de la multiplicité des langages à la rédaction: http://pro.01net.com/editorial/510793/la-proliferation-des-langages-un-mal-ne(...)
Amicalement
Il n'empêche que c'est avec les rêves que l'on avance. Et rêver est bien l'une des dernières choses qui ne soient pas encore interdite en ce bas-monde...
Merci pour votre contribution en tout cas. Il y a comme vous des partisans de la multiplicité des langages à la rédaction: http://pro.01net.com/editorial/510793/la-proliferation-des-langages-un-mal-ne(...)
Amicalement
coquille
de
l'auteur
, posté le 03 février 2010 à 16h39
"qui ne SONT pas encore interdites", bien sûr :)
Précisions
de
pat_a_a
, posté le 04 février 2010 à 12h01
Ma contribution initiale n'a pas été assez claire.
Je voulais montrer que :
- Si un seul langage avait suffi, les informaticiens devraient tous utiliser ADA actuellement, ce qui n'est pas du tout le cas. Donc, un seul langage n'est pas adapté au besoin ;
- Si le "meilleur" langage devait émerger, ce ne serait pas le C ou ses descendants (C++, C#, Java, Javascript) car ils ne sont pas assez lisibles ;
- Le choix des langages par les développeurs ou les décideurs est souvent pragmatique : langage déjà connu, base installée, gratuité ou coût des outils, et ceci bien souvent à l'encontre de la qualité du résultat.
Ma préférence personnelle n'est pas à la multiplicité des langages, une petite dizaine me semble largement suffisant pour couvrir les différents domaines, mais je dois bien constater que les critères de pérennité et de maintenabilité passent souvent en dernier.
Dans les années 80, j'ai participé à un projet qui permettait de vérifier automatiquement les anomalies d'un programme écrit en Pascal (ou tout autre langage à la syntaxe régulière, donc pas le C).
J'en étais tellement enthousiaste que j'étais sûr que tous les informaticiens utiliseraient des langages permettant d'utiliser ces outils de vérification. Seuls quelques travaux académiques ont continué dans cette voie.
Les rêves son nécessaires, c'est même pour cela que tant de nouveaux langages apparaissent car presque chaque créateurs croit que son nouveau langage sera la panacée universelle !
Alors, il faut rêver, pour créer, mais il faut être aussi pragmatique. Comme Steve Jobs, par exemple...
Un dernier exemple pour la route :
Les formules d'un tableau Excel sont aussi un langage de programmation.
Une étude des années 1990 a montré que, sur un échantillon de plusieurs centaines de feuilles utilisées dans des banques et services de gestion, audités par des experts externes, plus de 90 % sont mathématiquement fausses, même si les résultats affichés sont exacts à plus de 95 % (les erreurs n'apparaissent que sur les valeurs limites, donc ne sont pas détectés ni corrigées).
Qui aurait le courage d'interdire ce langage (les formules Excel) qui permet tant d'erreur ? Ou les macros VB, qui ont les mêmes soucis ?
Cordialement
Je voulais montrer que :
- Si un seul langage avait suffi, les informaticiens devraient tous utiliser ADA actuellement, ce qui n'est pas du tout le cas. Donc, un seul langage n'est pas adapté au besoin ;
- Si le "meilleur" langage devait émerger, ce ne serait pas le C ou ses descendants (C++, C#, Java, Javascript) car ils ne sont pas assez lisibles ;
- Le choix des langages par les développeurs ou les décideurs est souvent pragmatique : langage déjà connu, base installée, gratuité ou coût des outils, et ceci bien souvent à l'encontre de la qualité du résultat.
Ma préférence personnelle n'est pas à la multiplicité des langages, une petite dizaine me semble largement suffisant pour couvrir les différents domaines, mais je dois bien constater que les critères de pérennité et de maintenabilité passent souvent en dernier.
Dans les années 80, j'ai participé à un projet qui permettait de vérifier automatiquement les anomalies d'un programme écrit en Pascal (ou tout autre langage à la syntaxe régulière, donc pas le C).
J'en étais tellement enthousiaste que j'étais sûr que tous les informaticiens utiliseraient des langages permettant d'utiliser ces outils de vérification. Seuls quelques travaux académiques ont continué dans cette voie.
Les rêves son nécessaires, c'est même pour cela que tant de nouveaux langages apparaissent car presque chaque créateurs croit que son nouveau langage sera la panacée universelle !
Alors, il faut rêver, pour créer, mais il faut être aussi pragmatique. Comme Steve Jobs, par exemple...
Un dernier exemple pour la route :
Les formules d'un tableau Excel sont aussi un langage de programmation.
Une étude des années 1990 a montré que, sur un échantillon de plusieurs centaines de feuilles utilisées dans des banques et services de gestion, audités par des experts externes, plus de 90 % sont mathématiquement fausses, même si les résultats affichés sont exacts à plus de 95 % (les erreurs n'apparaissent que sur les valeurs limites, donc ne sont pas détectés ni corrigées).
Qui aurait le courage d'interdire ce langage (les formules Excel) qui permet tant d'erreur ? Ou les macros VB, qui ont les mêmes soucis ?
Cordialement
I have a different dream
de
Zero zero
, posté le 04 février 2010 à 21h14
Ah ne plus avoir à choisir ! Tout serait plus simple. Impossible de se tromper. Il y aurait bien quelques esprits chagrins pour le regretter, mais heureusement quelques belles plumes sauraient les convaincre de rejoindre le troupeau.
Un même langage pour tout le monde. Sans aucun doute une belle avancée pour l'informatique et l'humanité. Comme si chaque langage ne véhiculait pas sa propre représentation du monde.
Un même langage pour tout le monde. Sans aucun doute une belle avancée pour l'informatique et l'humanité. Comme si chaque langage ne véhiculait pas sa propre représentation du monde.
faute de raisonnement
de
cathy666666666
, posté le 01 avril 2010 à 22h49
dire que "Si un seul langage avait suffi, les informaticiens devraient tous utiliser ADA actuellement, ce qui n'est pas du tout le cas. Donc, un seul langage n'est pas adapté au besoin "
est une faute de raisonnement (bien trop classique) : cela presuppose en effet que ada ait ete un langage "parfait" dans son domaine, tant dans son contenu que dans son developpement et sa diffusion. Or il ne l'est pas, loin s'en faut.
C'est l'erreur classique du "ce qui est devait etre", du "il doit forcement y avoir une raison de fond quelque part" etc...
Le fait est qu'on a besoin que d'un seul langage et non pas de cent mille,tout comme on n'a besoin que d'un seul format de prise electrique ou d'ecartement de rails de chemins de fer. Charge a ce langage d'etre assez souple et evolutif pour faire face a tous les problèmes (ce que n'avait pas ete ADA, qui lors de son début, par exemple, etait tellement rigide qu'il ne pouvait pas lire des fichiers textes avec des lettres accentuées !). Mais on n'a pas besoin d'avoir N syntaxes differentes de defintions de blocs, de definition de fonctions, d'opérateurs logiques etc... , pas besoin d'avoir N IDE differents, tous incomplets (tellement les efforts de developpement sont eparpilles)
On sait le prix enorme qu'il faut payer a cause de cette tour de babel, et une grande part des innovations en informatique (et du travail des informaticiens) concernent de pres ou de loin, la gestion des ces problèmes de compatilité
Aujourd'hui un UML unifié, mais qui continue a evoluer, a remplace la tripotée de langages de conception, et le monde informatique s'en n'est trouve que mieux. Il faut faire la meme chose avec les langages, mais avec une approche pragmatique au contraire du dogmatisme de ADA
Et il s'agit bien d'une question de maturité et non pas de technique : il faut que les informaticiens cessent un peu de revasser a une "creativite" mal comprise et mal placee. De plus, les differents domaines d'utilisation (ce qui est le pretexte habituel pour justifier la multiplicite) depend bien plus de l'implementation du langage que de sa syntaxe elle meme : tout comme dans l'exemple d'uml, on pourrait faire un langage unique contenant toutes les bonnes idées, qui ne sont pas si nombreuses en fait (robustesse, lisibilite, productivite, facilite d'apprentissage, souplesse, modele objet, contrats, aspects...), en se laissant la possibilite de faire evoluer la norme (tout comme il y a eu un uml 1 et un uml 2)
Il est temps qu'on normalise une fois pour toute, par exemple, la syntaxe des operations logiques d'un langage procedural : ca ne change absolument rien aux problemes a traiter par le langage, ca ne fait que faire ch... le monde a tout point de vue (apprentissage, gestion, etc...)
est une faute de raisonnement (bien trop classique) : cela presuppose en effet que ada ait ete un langage "parfait" dans son domaine, tant dans son contenu que dans son developpement et sa diffusion. Or il ne l'est pas, loin s'en faut.
C'est l'erreur classique du "ce qui est devait etre", du "il doit forcement y avoir une raison de fond quelque part" etc...
Le fait est qu'on a besoin que d'un seul langage et non pas de cent mille,tout comme on n'a besoin que d'un seul format de prise electrique ou d'ecartement de rails de chemins de fer. Charge a ce langage d'etre assez souple et evolutif pour faire face a tous les problèmes (ce que n'avait pas ete ADA, qui lors de son début, par exemple, etait tellement rigide qu'il ne pouvait pas lire des fichiers textes avec des lettres accentuées !). Mais on n'a pas besoin d'avoir N syntaxes differentes de defintions de blocs, de definition de fonctions, d'opérateurs logiques etc... , pas besoin d'avoir N IDE differents, tous incomplets (tellement les efforts de developpement sont eparpilles)
On sait le prix enorme qu'il faut payer a cause de cette tour de babel, et une grande part des innovations en informatique (et du travail des informaticiens) concernent de pres ou de loin, la gestion des ces problèmes de compatilité
Aujourd'hui un UML unifié, mais qui continue a evoluer, a remplace la tripotée de langages de conception, et le monde informatique s'en n'est trouve que mieux. Il faut faire la meme chose avec les langages, mais avec une approche pragmatique au contraire du dogmatisme de ADA
Et il s'agit bien d'une question de maturité et non pas de technique : il faut que les informaticiens cessent un peu de revasser a une "creativite" mal comprise et mal placee. De plus, les differents domaines d'utilisation (ce qui est le pretexte habituel pour justifier la multiplicite) depend bien plus de l'implementation du langage que de sa syntaxe elle meme : tout comme dans l'exemple d'uml, on pourrait faire un langage unique contenant toutes les bonnes idées, qui ne sont pas si nombreuses en fait (robustesse, lisibilite, productivite, facilite d'apprentissage, souplesse, modele objet, contrats, aspects...), en se laissant la possibilite de faire evoluer la norme (tout comme il y a eu un uml 1 et un uml 2)
Il est temps qu'on normalise une fois pour toute, par exemple, la syntaxe des operations logiques d'un langage procedural : ca ne change absolument rien aux problemes a traiter par le langage, ca ne fait que faire ch... le monde a tout point de vue (apprentissage, gestion, etc...)
suite
de
cathy666666666
, posté le 01 avril 2010 à 23h03
de fait, c'est bien une question d'immaturite de faire appel a une version tres mal comprise du darwinisme pour justifier la "diversité" des langages et des systemes, de parler de creativite (ah chouette, j'ai cree mon langage ! tadaaa !), de brandir le spectre du totalitarisme (ah, un seul langage pour tout le monde, et tout le monde en rang !)
et etc...
C'est bien d'une immaturité culturelle qu'il s'agit, d'un probleme d'identite de l'homo informaticus, et non pas un probleme technique.
Sans compter, bien sur, le syndrome de l'armee mexicaine : plus il y a de niches, plus il y a de places de gourous, de chef, de conducator, et de place pour les anathèmes, les guerres de religions, les debats a n'en plus finir, les niches pour editeurs d'outils, les rayonnages de livres dans les librairies specialisees, avec le prestige et l'ego qui va avec etc...
mais en attendant, quand l'informatique est un moyen et qu'on doit s'en servir pour accomplir une tache industrielle bien precise (au lieu d'etre un joujou), cette cacophonie est un veritable "pain in the ass" comme disent les americains, et un gaspillage considerable d'argent et d'energie
et etc...
C'est bien d'une immaturité culturelle qu'il s'agit, d'un probleme d'identite de l'homo informaticus, et non pas un probleme technique.
Sans compter, bien sur, le syndrome de l'armee mexicaine : plus il y a de niches, plus il y a de places de gourous, de chef, de conducator, et de place pour les anathèmes, les guerres de religions, les debats a n'en plus finir, les niches pour editeurs d'outils, les rayonnages de livres dans les librairies specialisees, avec le prestige et l'ego qui va avec etc...
mais en attendant, quand l'informatique est un moyen et qu'on doit s'en servir pour accomplir une tache industrielle bien precise (au lieu d'etre un joujou), cette cacophonie est un veritable "pain in the ass" comme disent les americains, et un gaspillage considerable d'argent et d'energie
à lire aussi
SUR LES MÊMES THÈMES 


nos newsletters
Lisez 01Business pour 6,54 € / n°
















alerter le modérateur