Je m'attendais à ce genre de réponse (mais en bien plus méchante alors ça va je suis content)
Oui, c'est un troll, un vrai, un méchant, avec des poils. Mais je pense qu'il a pour avantage de donner petit coup de pied dans la cafetière.
Les langages informatiques, il y en a plein mais on appercoit dans l'évolution de l'utilisation des langages une inertie énorme.
(1 - je résume et 2 - je ne prétends pas être objectif ni même exaustif)
Quand un nouveau paradigme, une nouvelle idée, un concept original de programmation se développe, on a deux types de langages qui émergent :
- le langage qui ajoute grossièrement des fonctionnalités à un langage célèbre (et qui coupe les bouts qui dépassent) : fortran -> algol -> c -> c++ -> java
- le langage qui essaye de tout miser sur les nouveaux concepts et qui les exploite pleinnement : SmallTalk, OCaml, Haskell, Ruby, GOTO++
Ce 2eme type de langage engendre souvent des choses mortes nés, parfois un peu trop dur ou sinon trop simpliste pour être utilisé en production. Mais on a aussi de vrais bon gros langages qui emmergent avec une vrai utilité et une facilité de modéliser le reel (toujours plus déconcertante).
Or c'est toujours un langage du premier type qui est choisi par l'industrie, pour une raison bien simple : c'est comme quelque chose que l'on connait avec des trucs puissants en plus donc on change pas les habitudes.
Prenon un exemple concret C++ (83) et Eiffel (86). Le premier est du C++ avec une couche honteuse d'objet avec tout un tas de concepts dénaturés pour des raisons de performances (ce qui est un argument valable comme un autre, c'est bien gentil d'avoir un bon langage mais si c'est pour faire une sieste pendant une addition je vois pas l'interet)
Eiffel quand à lui est un très bon langage objet avec un vrai objet dedans (et de nos jours avec un excellent compilateur libre, SmartEiffel avec le label GNU madame)
Eiffel a des défauts aussi (presque aussi contraignant que Ada et syntaxe originale parfois déroutante)
Pour répondre brièvement :
- L'héritage simple : la composition ne fait pas tout dans la vie car cela oblige bien trop à devoir coder un proxy pour chaque routine (ca nuit à la réutilisabilité). C'est vrai qu'on peut se passer de l'heritace multiple (comme on peut se passer de tout du moment qu'on est turring complete comme disent les jeunes) mais il ya bien des fois ou c'est utile
- syntaxe méchament lourde et vieille : ben oui le ';' ou les () pour les routines sans arguments sont trainés depuis bien longtemps.
Pour finir le troll. Pour moi le C est un bon langage. le C++ non le Perl était bon au début, maintenant cela devient un vrai monstre.
Mon choix de langages à utiliser qui sont biens : C, Ruby et Eiffel
Ta réponse, j'en ai déjà eu plein et souvent plus des véloces. Mais ce genre de réaction est plus du a une mauvaise connaissance des possibilités des langages de programmation, non pas dans ce qu'ils peuvent faire (car jusqu'a preuve du contraire ils peuvent faire la même chose) mais dans l'efficacité pour le faire faire (simplicité de code, de lecture, d'évolution, etc.)
Parfois, quand je vois les gens essayer de me convaincre que C++ ou Java c'est super et qu'on a jamais fait mieux je retrouve le même conportement des gens qui pense que c'est normal qu'un OS puisse planter tous les jours, qu'un bon reset le fera mieux marcher et qu'une réinstallation complète tous les 2 mois est la bienvenue. Ces gens ne savent tout simplement pas que de meilleures choses existe et ce n'est pas parce qu'un truc est utilisé par 80% des gens qu'il est forcément mieux.
Bien sur, il reste les problèmes de compatibilité avec l'existant, des choses que l'on ne peut faire simplement avec windows parceque le logiciel existe ou le materiel supporté. De la même façon les bibliotheques impressionnantes et les framework de java sont difficilement contournables pour certaines applis mais ce n'est pas une raison !
Bref, le combat des meilleurs langages est souvent bien plus dur que celui des meilleurs OS je pense.
[^] # Re: L'avenir ...
Posté par MrTout . En réponse à la dépêche Java Virtual Machine 1.4.2 beta. Évalué à 10.