161 votes

C++ versus D

Est le langage D une alternative crédible à Java et C++? Que faut-il faire pour devenir une alternative crédible? Dois-je la peine de l'apprendre? Ne méritent évangélisation?

La principale raison pour laquelle je demande, c'est qu'avec la nouvelle norme c++ (c++0x), son clair pour moi que la langue est allé bien au-delà du point de non-retour à l'égard de quiconque jamais le comprendre. Je sais que c/c++ ne mourra jamais, mais à un certain point, nous devons aller de l'avant. Même COBOL a eu son jour et Java a, à plusieurs égards, annulée en c++. Alors, quelle est la prochaine? D remplir le projet de loi?

129voto

dmazzoni Points 6586

Ce qui détermine le succès et la popularité d'un langage de programmation pour le véritable développement de logiciels n'est que partiellement lié à la qualité de la langue elle-même. Comme une langue pure, D a sans doute de nombreux avantages par rapport à C++ et Java. À tout le moins, il est une alternative crédible en tant que langue pure, toutes autres choses étant égales par ailleurs.

Cependant, d'autres choses d'importance pour le développement de logiciels presque plus que la langue elle-même: la portabilité (en nombre de plates-formes t-il fonctionner sur), débogueur, IDE de soutien, de la bibliothèque standard de qualité, dynamique de la bibliothèque de support, fixations pour le commun des Api, de la documentation, de la communauté de développeurs, de l'élan, et d'un soutien commercial, pour n'en nommer que quelques-uns. Dans chacun de ceux-ci en ce qui concerne, D est désespérément derrière Java, C++ et C#. En fait, je dirais que c'est même derrière des soi-disant "script" langages comme Python, Perl, PHP, Ruby, et même JavaScript.

Pour être franc, tout simplement, vous ne pouvez pas construire une grande échelle, de la croix-plate-forme d'application à l'aide de D. Avec un immature de la bibliothèque standard, pas de soutien dans tout les Ide modernes (je tiens à dire que les deux Eclipse et Visual Studio 2005, 2008, 2010 et 11 de l'appuyer, par le biais de l'utilisation de VisualD -LMcSherry), dynamique limitée à/bibliothèque partagée à l'appui, et quelques liaisons à d'autres langues, D est tout simplement pas une option aujourd'hui.

Si vous aimez ce que vous voyez de D, par tous les moyens, de l'apprendre - cela ne devrait pas prendre longtemps si vous le connaissez déjà Java et C++. Je ne pense pas que l'évangélisation serait utile, à ce stade, si D est en passe de réussir, ce qu'il a vraiment besoin de plus de gens tranquillement de l'utiliser et de s'attaquer à ses défauts majeurs comme la bibliothèque standard IDE et de soutien.

Enfin, comme pour le C++, alors que la plupart conviennent que la langue est trop complexe, des milliers d'entreprises avec succès à l'aide de C++ dans le cadre d'un sain mélange de langues en permettant seulement un petit sous-ensemble bien défini de la langue. Il est toujours difficile de battre le C++ lorsque les deux premières performances et de faible utilisation de la mémoire sont requis.

106voto

xan Points 5035

Juste pour ajouter ma propre experiances dans le mélange:

Il ya environ un an, j'ai travaillé sur une petite échelle projet de jeu (3 codeurs) d'une durée de 3 mois, où nous avons utilisé la D comme notre langue maternelle. Nous l'avons choisi en partie comme une expérience, en partie parce qu'elle avait déjà liaisons pour SDL et quelques autres outils, nous avons été à l'aide, et surtout pour les avantages est apparu à plus de C++.

Nous avons adoré l'utiliser. Il a été rapide à apprendre et facile à écrire. Beaucoup de ses caractéristiques a été très précieux, et je m'ennuie d'eux ayant disparu en C++.

Toutefois, les points suivants ont fait de notre vie plus difficile:

  1. Il n'y avait pas une bonne IDE de l'époque qui était un problème majeur. Nous avons fini par faire nos propres par la personnalisation de Scite. Cela a fonctionné, mais n'était pas idéale.
  2. Il n'y a pas de débogueur à l'époque. Nous avons réussi à obtenir WINDBG pour travailler sur un hit-or-miss, mais elle n'était pas fiable. Débogage de code sans un débogueur rendu la vie infernale à la fois.
  3. Il y avait 2 bibliothèques standard au choix à l'époque (Tango et Phobos). Nous avons commencé avec un, sont passés à l'autre, et vraiment besoin d'un mélange de fonctionnalités à partir des deux (Tangobos!). Cela a causé des maux de tête et un peu de code ré-écrire.
  4. Les liaisons à d'autres outils qui ne sont pas disponibles. En fin de compte, nous avons dû passer en mode DirectX (pour des raisons que je ne rentrerai pas dans). Il n'y avait pas de liaisons pour DirectX disponible, nous avons donc dû écrire notre propre en C++, en construire un .dll et de se lier à qui. C'était assez méchant de travail et a pris un certain temps.

Dans l'ensemble, nous avons aimé écrire, D. Il fait effectivement l'écriture de code facile et a été rapide à apprendre. Les problèmes que j'ai mentionnés écho à la réponse qui a été accepté pour cette question - c'est le "plus" de bits à traiter dans D, la base est solide.

59voto

philsquared Points 13547

Je suis d'accord que le C++ est en train de devenir une impasse de la langue et il me peine de dire qui, après l'avoir utilisé pour les 17 dernières années.

Je pense que D est le digne successeur de C++. À partir d'un point de vue de la langue, il ne "toutes les bonnes choses" (même si je ne suis pas d'accord avec chaque minute de la décision). Je pense qu'avec le C et le C++ sur le déclin, il n'y a pas d'autres systèmes de niveau de langue qui peut vraiment faire ce qu'ils font, tout en tenant lui-même dans le monde des langues modernes - à l'exception D! Pas seulement D remplir ce rôle, il excelle dans ce domaine! Un coup d'oeil à la D1.x devrait être suffisant pour vous convaincre de cela - mais quand vous regardez D2.0 il souffle. Il est de mon avis qu'il n'existe aucune autre langue autour d'aujourd'hui, qui fonctionne aussi bien que D2.0 dans la réduction de l'impératif et fonctionnel paradigmes de programmation - qui va seulement pour obtenir plus importants dans les années à venir.

L'absence de l'acceptation du public - ou même de la visibilité, ainsi que la grande échelle, matures, les bibliothèques sont un obstacle bien sûr. Cependant, je ne pense pas que vous pouvez écrire à cause de cela. Je suis convaincu que le D va grandir pour devenir l'une des langues les plus importantes dans les prochaines années - et ceux qui sont à prendre au sérieux maintenant vont être bien placé pour prendre la tête le moment venu.

Je pense que la différence va venir sur due, en grande partie, à Andrei Alexandrescu, de l'implication. Ce n'est pas pour discréditer Walter Bright quelque sorte, qui a fait un grand travail en apporter D pour le monde. Mais Alexandrescu est un élément important, et convaincante, figure certainement le C++ de la communauté - et il est où le potentiel D transfuges vont venir. Et il a également apporté une importante contribution importante et de D2.0 dans son soutien à la programmation fonctionnelle.

Il peut encore s'avérer que D est vouée à être le Betamax de systèmes de niveau de langues - mais mon argent est sur elle en tournant autour de dans les deux prochaines années.

20voto

DarenW Points 7817

J'aime le fait que D est l'œuvre d'un génie, un esprit - Walter Bright, dont Zortech compilateur a été fantastique en son jour.

En revanche C++ est trop de la conception par le comité, même si Bjarne est une influence. Trop de fonctions complémentaires et bizarre nouvelle syntaxe. Cette différence reflète dans la facilité de l'apprentissage et de la facilité d'utilisation au quotidien, moins de bugs.

La plus cohérente langues conduire à une meilleure productivité et un programmeur à la joie, mais c'est subjectif et discutable! (je suppose que je devrais voter ma propre réponse à la baisse)

15voto

Spodi Points 1019

D est un bon langage et décemment populaire, mais comme toutes les langues, c'est juste un autre outil. L'outil à utiliser dépend du type de personne que vous êtes, comment vous pensez, l'environnement dans lequel vous travaillez, ce que les restrictions de l'appliquer langues le le programme, et plus important encore, le programme lui-même. Si vous avez le temps, je recommanderais certainement d'apprentissage D. Pire des cas, vous n'aurez plus jamais l'utiliser. Plus probablement, vous apprendrez quels sont les aspects que vous aimez le plus, et dans quelles conditions elle brille le plus, et de profiter de cela pour le moment de nouveaux programmes.

Je recommande de regarder le D tableau de comparaison pour voir ce que les caractéristiques sont pour la langue et voir si cela semble bon pour vous.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X