| el muchacho |
bapho13 a écrit :
Il est pas en train de se mordre la queue, là ? Il a abandonné l'idée d'avoir seulement 10% de la complexité du C++ ?
|
Oui et non. Clairement, le langage est aussi complexe que le C++ au niveau conceptuel, même s'il est plus simple au niveau syntaxique. Mais en principe, il évite les chausse-trappes de ce dernier, en étant plus rigoureux et en se basant sur l'expérience acquise pour ce dernier, car Walter analyse à fonds tous les problèmes que l'on rencontre en C++. Les articles qu'il écrit sur la page principale du site sont d'ailleurs toujours lumineux et intéressants (lire l'article sur const, par ex). Maintenant, il est clair que D est un langage faussement aisé, et nul doute qu'il apportera ses propres chausse-trappes. Cela, seul l'avenir nous le dira. Le truc, c'est que ceux qui risquent de les rencontrer régulièrement sont les power users, ceux qui vont jouer avec les AST pour la métaprogrammation. Les programmeurs lambda, eux, ont à leur disposition un outil en principe bcp plus fiable et sympathique que le C++ (sans être au niveau de simplicité de Java). La seule chausse-trappe que je vois qui risque d'emmerder sérieusement la vie du programmeur lambda est justement la subtilité des const/invariants, sachant qu'en C++, il faut parfois se résoudre à utiliser const_cast. masklinn a écrit :
C'est pas parce que le langage a des fondations stables qu'il ne peut pas évoluer. Case in point, il existe des programmes/libs Python tournant sur n'importe quelle version de Python entre 1.5.2 et 2.5 (effbot m'avait dit ça d'ElementTree par exemple, si je m'en souviens bien. Et c'est pareil pour PIL), alors qu'on peut pas dire que le langage n'ait pas évolué entre 1.5 et 2.5 ;)
|
Oui mais ça veut dire qu'ils n'utilisent pas les nouvelles fonctionnalités pour préserver cette compatibilité. Là, avec la modifictaion de la sémantique de const, c'est différent. Ce n'est pas un simple ajout de fonctionnalité, c'est réellement une incompatibilité avec le code existant, même si les modifs sont probablement assez simples dans la majorité des cas. Et ça veut dire aussi qu'à l'avenir, Walter Bright peut aussi bien décider de faire à nouveau une modif cassant la compatibilité ascendante si besoin est. Un mal pour un bien sans doute, mais plutôt gênant pour les utilisateurs qui maintiennent des projets de grande taille.
|