Merci pour ce témoignage intéressant.
Pour résumer encore plus il y aurait trois périodes dans l'histoire de Smalltalk :
- la période pré-C++ où la POO était encore une idée de laboratoire, et pendant laquelle Smalltalk était un langage de légende, pour son interface et son modèle objet, mais inacessible pour des questions de coût du matériel
- la période C++, où la POO a explosé mais pas au profit de Smalltalk, à cause de ses performances et de son modèle objet (qui cherche à intégrer l'existant plutôt que s'intégrer dans l'existant comme C/C++)
- la période Java, où le WWW a boosté le besoin de machine virtuelle, toujours pas au profit de Smalltalk. à ce moment Smalltalk avait fait d'énormes progrès en matière de performance et le matériel était devenu suffisamment bon marché. mais le support du moteur c'était les standards du WWW, sur la base anachronique d'une multitude de petits fichiers de configuration, alors que Smalltalk apporte son propre modèle de persistance
La morale de cette histoire c'est que les projets innovants, qui cherchent à résoudre tous les problèmes existants en intégrant tout pour maximiser la cohérence et le bénéfice d'un petit nombre d'idées fortes, ces projets sont des vitrines technologiques qui créent leur marché de niche plutôt que d'accompagner la croissance générale.
La même histoire se répète, par exemple le modèle économique de
Bertrand Meyer ne reposait pas sur le développement de son compilateur
Eiffel mais sur l'émergence et l'explosion d'un marché des composants logiciels qui devait le rendre "more than wealthy". La révolution n'a pas eu lieu parce qu'
Eiffel imposait son modèle mémoire sans être porté (comme Java) par un nouveau marché qui remettait tout-à-plat.
L'histoire de C/C++ montre que la complexité d'un langage est en quelque sorte la mesure du succès, qu'il n'y en a jamais trop, qu'on peut en rajouter encore pour satisfaire aux dernières tendances, même lorsqu'on croyait qu'on était déjà allé beaucoup trop loin. Et que ça n'entame pas la popularité d'un langage sur son domaine de prédilection, ça l'empêche juste de conquérir de nouveaux horizons. Alors, comme Java est plus sur la défensive que sur l'offensive, une bonne stratégie (à défaut d'une bonne conception) c'est de croître en complexité pour contrer les langages dynamiques, même au détriment de la lisibilité.
Partager