Ce qui détermine le succès et la popularité d'un langage de programmation pour le développement de logiciels dans le monde réel n'est que partiellement lié à la qualité du langage lui-même. En tant que langage pur, D a sans doute de nombreux avantages par rapport à C ++ et Java. À tout le moins, c'est une alternative crédible en tant que langage pur, toutes choses égales par ailleurs.
Cependant, d'autres choses comptent pour le développement logiciel - presque plus que le langage lui-même: portabilité (sur combien de plates-formes s'exécute-t-il), prise en charge du débogueur, prise en charge de l'IDE, qualité de la bibliothèque standard, prise en charge de la bibliothèque dynamique, liaisons pour les API communes, documentation, le développeur soutien communautaire, dynamique et commercial, pour n'en nommer que quelques-uns. Dans chacun de ces aspects, D est désespérément derrière Java, C ++ et C #. En fait, je dirais que c'est même derrière les soi-disant langages de "scripting" comme Python, Perl, PHP, Ruby et même JavaScript à cet égard.
Pour être franc, vous ne pouvez tout simplement pas créer une application multiplateforme à grande échelle à l'aide de D.Avec une bibliothèque standard immature, aucune prise en charge dans les IDE modernes (il existe des plugins pour Visual Studio et Xamarin Studio / MonoDevelop), limité support de bibliothèque dynamique / partagée, et peu de liaisons avec d'autres langages, D n'est tout simplement pas une option aujourd'hui.
Si vous aimez ce que vous voyez de D, par tous les moyens, apprenez-le - cela ne devrait pas prendre longtemps si vous connaissez déjà Java et C ++. Je ne pense pas que l'évangélisation serait utile - à ce stade, si D veut réussir, ce dont il a vraiment besoin, c'est que plus de gens l'utilisent silencieusement et résolvent ses principales lacunes comme la bibliothèque standard et le support IDE.
Enfin, comme pour C ++, alors que la plupart conviennent que le langage est trop complexe, des milliers d'entreprises utilisent avec succès C ++ dans le cadre d'un mélange sain de langages en n'autorisant qu'un sous-ensemble plus petit et bien défini du langage. Il est toujours difficile de battre C ++ lorsque des performances brutes et une faible utilisation de la mémoire sont nécessaires.