
Envoyé par
_skip
N'étant pas actionnaire chez aucun éditeur de logiciel, ni émotionnellement impliqué, je suis content qu'on ait parfois des sujets comme celui-ci pour se tenir informé et se reposer la question.
Au moins cela fait débat, et je suis assez d'accord, il est bien de savoir observé autour de soi, Delphi est un outil, tant qu'il permet d'obtenir ce que l'on souhaite, c'est que c'est un outil utile, d'autres font la même chose, ç'est peut être juste une question de prise en main et d'habitude !

Envoyé par
zeprogrameur
...
Plus de 10 ans pour seulement l'unicode, les generics, les class helpers...
Quand on voit ce qu'est devenu le dotNet, sans parler du c++ 11...
Chaque langue a ses particularités !
Chacun évolue à un rythme différent, a une philosophie différente ... vouloir toujours tout comparé, c'est peu léger !
Si l'on veut comparer, voilà ce que cela donne :
C++11 intègre la Délégation du constructeur qui était souvent solutionné par un simple constructeur nommé
Cela existe depuis le début de Delphi (il y a une des améliorations à ce sujet en D4), on connait tous le CreateNew, sans le Dummy, on ne pourrait pas avoir accès à ce constructeur dans C++Builder
Donc là on pourrait dire que C++11 s'inspire de Delphi ... et Delphi s'inspire du C++ pour les templates, du C# pour les méthodes anonymes mais le C# n'est-il pas à amalgame de concept entre C++, Delphi et Java ?
On peut en faire un tas des comparaisons de ce genre !
Est-ce utile ? non !
Faut juste savoir s'adapter !
Preuve qu'il ne faut pas avoir un regard aussi rigide, ce n'est pas parce que Delphi ou C++ n'ont pas une fonctionnalité qu'il faut tout rejeter, c'est peut-être juste un choix et une logique même du langage
Exemple très précis qui m'a gêné à mes débuts en C++Builder 2007
Il manque "static this" inutile puisque en C++ virtual static n'existe pas !
Depuis C++Builder 2009, il existe __classmethod mais la méthode n'est plus vraiment static au sens C++,
J'ai pour ma part passé des méthodes d'instances virtuelles abstraites (virtual) en méthode de classe virtuelles abstraites (__classmethod virtual), car ces méthodes n'avaient aucune raison d'être liées à l'instance puisque définissant un comportement général d'une classe
En Delphi, je pouvais savoir, avec Self, la classe en cours dans une méthode de classe couplé à un constructeur virtuelle cela me simplifiait grandement mes codes de Factory !
En C++Builder, le this dans une __classmethod est une TMetaClass accessible mais on ne peut pas encore faire de new this()" comme on ferait Self.Create();
En C++Builder, je me suis fortement inspiré de Factory Pattern in C++ pour remplacer ce que considérais en Delphi comme une évidence, que le code me parait long pour combler l'absence d'une combinaison de mots clés !
Conclusion : Je m'y suis fait !
Voilà, il manque un truc en C++ que fait Delphi : eh bien, j'ai trouvé une solution alternative, je n'ai pas perdu mon temps à pester à l'encontre de C++, j'ai juste avancé !
Et encore, je fais du C++Builder, et tout en TObject, certains codes que j'ai écrit, ne fonctionnerait pas en C++11 strict puisque j'utilise des Méthodes Virtuelles appelés depuis un Constructeur
Si j'avais été en C++ strict, j'aurais du apprendre une autre manière de procéder, cela aurait changé surement aussi bien l'implémentation des mes classes que leurs utilisations !
Adaptabilité !
Partager