La Version 1 de D est mature et stable, et il y a certainement des gens qui l'utilisent pour de vrai travail. Phobos est la seule bibliothèque standard que D a jamais eu, ou susceptible pourra jamais avoir, mais de D1 Phobos est pas que les diverses bibliothèques de tiers ont été créés pour combler les lacunes. Le Tango est la plus importante et la plus largement utilisée de la troisième partie de la bibliothèque (donc pourquoi il atteint souvent appelé une deuxième bibliothèque standard, même si elle ne l'est pas, et Walter Bright seront prompts à souligner qu'il n'est pas). Cependant, de Tango et de Phobos en D1 ne mélangez pas très bien (IIRC parce que le Tango qui remplace la norme des choses comme le garbage collector), donc il ya une bonne chance que quelqu'un de la programmation en D1 va utiliser Tango sans Phobos. Aussi, D1 est pris en charge par plusieurs compilateurs en plus de l'compilateur de Numérique, Mars - y compris les PMA et les gdc.
La Version 2 de D est simplement en train d'atteindre la maturité et de la stabilité. Ils ont arrêté de faire de grands changements de la langue, de sorte que vous n'avez plus à vous soucier de tout briser sur vous avec un compilateur de mise à jour comme ce fut le cas dans le passé alors qu'ils étaient encore clouage de la langue vers le bas. En fait, il est maintenant assez mature qui Andrei Alexandrescu publié Le D Langage de Programmation comme définitif de ressources sur la langue qui doit rester valables sauf erreurs dans le texte (et c'est l'un des meilleur langage de programmation des livres que j'ai lu trop). Cependant, il ya encore beaucoup de correction de bugs en cours, donc c'est tout à fait possible d'exécuter dans un bug qui vous cause un peu juste de l'irritation pour votre application particulière. C'est certainement assez mature et assez stable pour faire du vrai travail avec elle, mais sachez qu'il est tout à fait possible d'exécuter dans les bugs.
Le Tango n'a pas encore été porté à la D2, il n'est donc pas vraiment une option lors de la programmation en D2. Cependant, Phobos est à venir le long de tout à fait bien maintenant. Il se fait beaucoup de grands ajouts (en fait, il a conteneurs maintenant! - le manque de conteneurs dans Phobos être une grande raison de l'utilisation de Tango en D1 plutôt que de Phobos), et a quelques très puissante en elle - std.l'algorithme est particulièrement agréable. La voie d'poignées lambda fonctions, des fonctions imbriquées, et des pointeurs de fonction rend le passage de fonctions à des algorithmes d'années-lumière plus facile qu'il ne l'est dans la norme actuelle de C++. Aussi, il a été résolu dans D2, de sorte que le garbage collector et quelques autres trucs que le Tango était une duplication est maintenant séparée de Phobos. Donc, une fois que le Tango a été porté à D2, vous serez en mesure de mélanger Phobos et Tango code - même si, comme cela a été souligné dans une précédente réponse, Phobos et Tango utiliser plutôt les différentes philosophies de conception (Tango être très Java-like et Phobos fortement à l'aide de modèles et méta-programmation avec le duck-typing plutôt que des interfaces), donc je ne sais pas comment ils vont mix de ce point de vue.
Actuellement, je crois que la dmd est le seul compilateur qui est up-to-date en ce qui concerne les spécifications pour la D2, mais je crois qu'il ya du travail fait sur les gdc et les PMA D compilateurs (actif que le travail est, je ne sais pas). Aussi, Walter Bright est actuellement en train de travailler sur la version 64 bits du port de la dmd, nous allons donc être prise en 64 bits natif de compilation un de ces jours dans relativement peu de temps.
Dans l'ensemble, je dirais que D2 est prêt pour l'utilisation, mais vous ne devez être conscient qu'il reste encore beaucoup de travail à faire pour elle en ce qui concerne les corrections de bogues et comme. Donc, D2 est définitivement prêt pour hobby et potentiellement graves pour l'utiliser au travail, mais si vous avez vraiment besoin de la stabilité (comme, si vous êtes de Boeing et d'une erreur, cela signifie la mort), alors D1 serait probablement encore être un meilleur choix. Bien sûr, la chose importante à retenir à propos de D2, c'est qu'il a beaucoup de fonctionnalités que D1 n'ont pas, de sorte que si vous avez vraiment besoin de solide comme le roc de stabilité, puis D2 est probablement la voie à suivre. Heureusement, il continue de mûrir et de se stabiliser, de sorte que le temps est certainement bientôt, il n'y aura aucun doute que l'utilisation d'D2 serait mieux.
Peu importe, tant que D1 et D2 sont de bons remplaçants pour le C et le C++ dans le cas général. Ils peuvent faire ce que le C et le C++ n', et (surtout dans le cas de D2) peut sans doute faire mieux. Le principal lieu D pourrait tomber en arrière dans la façon dont il est optimisé. Il y a beaucoup de code qui sera tout aussi rapidement dans D comme C ou C++, mais il reste encore beaucoup de travail à faire sur D, donc il y a beaucoup de place pour l'optimiser un peu plus, et il sera parfois à la traîne C et C++ pour plus d'efficacité. Donc, en général, D est efficace, mais si vous avez vraiment besoin d'autant d'efficacité que vous pouvez obtenir, il pourrait ne pas encore être assez bon pour ce que vous avez besoin (même si c'est d'y arriver). Aussi, il ya beaucoup de la maturité de C et de C++ bibliothèques, tandis que D n'est pas n'importe où près le même niveau de code flottant là-bas pour travailler avec. Tout C code peut être utilisé avec D comme C les fonctions peuvent être appelées à partir de D, et certains le code C++ pourrait être (si il y a assez peu de restrictions lors du mélange de code C++ avec D), donc ce n'est pas être un obstacle, mais c'est quelque chose d'être conscient de. Le principal lieu où il en manque serait bibliothèques GUI. Il y en a pour D1, et il y a du travail effectué sur le GUI bibliothèques pour la D2, mais je ne crois pas qu'aucun d'entre eux sont particulièrement mature à ce point.
Donc, comme pour tout, la langue dans laquelle vous devez utiliser dépend de ce que vous faites. D va faire la plupart des choses et de les faire bien. Mais il ne fait pas tout, et il est encore en phase de maturation. Personnellement, à ce stade, j'utilise D, sauf si j'ai besoin d'utiliser autre chose pour un projet particulier, ce qui n'est pas souvent, à moins que le projet était déjà écrit dans autre chose, et il n'est pas logique de port dès maintenant. Donc, j'avais à vous suggère fortement d'utiliser D, mais vous aurez à le regarder et de l'utiliser pour voir si c'est vraiment à faire ce que vous voulez à ce point.