Je travaille en bioinformatique dans D. Pour moi, l'élément clé de D est qu'il adopte une approche très équilibrée des compromis et reconnaît le principe des rendements décroissants.
Contrairement au C++, qui adhère rigoureusement au principe de l'absence de frais généraux, D autorise des fonctionnalités qui peuvent avoir un faible coût en termes de performances et d'espace si elles rendent le langage beaucoup plus utilisable. Il s'agit notamment de la collecte des déchets, d'un objet moniteur pour chaque classe, d'informations sur les types à l'exécution, etc.
Contrairement à Ruby, Python, PHP, etc., D essaie d'être presque aussi rapide que C, même s'il est moins dynamique et légèrement plus difficile à programmer que les langages de script.
Le résultat est un langage qui est optimal lorsque le temps de développement et le temps d'exécution ont une importance à peu près égale, ce qui, dans mon domaine, est la plupart du temps.
De même, D adopte une approche très équilibrée de la sécurité par rapport à la flexibilité. Il part du principe que les programmeurs savent fondamentalement ce qu'ils font, mais qu'ils font des erreurs.
Contrairement au C et au C++, il suppose que vous ne voulez pas utiliser des pointeurs, des casts non sécurisés, une gestion manuelle de la mémoire, etc., partout dans votre code, parce qu'ils sont sources d'erreurs, et suppose que vous ne voulez pas passer en revue des messages d'erreur de plusieurs pages lorsque vous vous plantez juste pour utiliser des tableaux redimensionnables.
Contrairement à Java et à d'autres langages de type "bondage-and-discipline", D suppose que parfois les pointeurs, les casts non sécurisés, la gestion manuelle de la mémoire, etc. sont un mal nécessaire, et suppose que vous êtes suffisamment intelligent pour gérer les vrais templates, la surcharge des opérateurs, etc. sans écrire de code obfusqué. Il suppose également que vous pouvez vous tromper et accéder à un tableau hors limites, mais que le programmeur est le mieux placé pour savoir quel compromis il faut faire entre sécurité et vitesse dans une situation donnée. Par conséquent, la vérification des limites des tableaux est simplement déterminée par une option du compilateur.
11 votes
Récemment annoncé dans le forums dlang Facebook utilise désormais D en production.
0 votes
Il n'y a rien de grand parce que D lui-même est assez pauvre pour construire de grandes applications complexes. Il a l'air génial en surface, mais une fois que vous essayez de faire quelque chose de commercial, toutes les fissures commencent à apparaître et il y a très peu de volonté de la part des fans de créer des logiciels correctement structurés pour le public commercial (je suis sûr que l'argent a beaucoup à voir avec cela, mais aussi le leadership et l'organisation). C'est une chose d'écrire un utilitaire en ligne de commande ou un algorithme en ligne de 5k, mais c'est totalement différent de créer une application commerciale très complexe qui implique de multiples domaines tels que l'interface utilisateur, l'audio, etc.
0 votes
Bien sûr, vous pouvez bricoler quelque chose, mais ce n'est pas commercial. Une entreprise ne va pas investir son temps et son argent dans quelque chose d'aussi peu fiable. Il n'y a pas de bon IDE et tous ceux que j'ai utilisés m'ont donné l'envie d'enfoncer quelque chose. Il est environ 10 fois plus lent de déboguer correctement des applications parce que les messages d'erreur sont terribles, le débogueur ne fonctionne pas ou fonctionne contre vous, les fonctionnalités modernes que nous attendons sont inexistantes ou pauvres, et la bibliothèque est fubar'ed parce qu'elle n'a aucune structure logique (les choses sont déplacées "arbitrairement", des schémas de nommage bizarres comme "chomp" et "detabber", etc ).
0 votes
Je suppose que c'est le yin/yang. Certaines choses dans D sont incroyables et rien ne s'en approche (encore)... mais d'un autre côté, les choses dans lesquelles il échoue sont aussi assez fortes. On ne découvre ces choses que lorsqu'on prend le temps d'écrire de vraies applications plutôt que de faire des choses triviales ou algorithmiques. Jusqu'à ce que l'organisation D se ressaisisse (combien de temps cela va-t-il leur prendre ? 10, 20 ans ?), les entreprises réelles ne vont pas investir dedans. Le temps c'est de l'argent et aucune entreprise ne veut passer 10 fois plus de temps à déboguer une application parce que l'IDE n'est pas à la hauteur.
0 votes
@Stretto que voulez-vous dire ? dlang.org/orgs-utilisation-d.html
0 votes
De plus, @Stretto, votre manque de connaissances ne signifie pas que la langue est mauvaise. Je n'ai jamais rencontré de problèmes pour mettre en place des environnements de travail en D et je l'utilise pour des travaux commerciaux.