D Langage de programmation dans le monde réel? [fermé]


138

Est-ce que quelqu'un utilise D pour des applications du monde réel? Si oui, à quoi l'utilisez-vous? Je n'arrive pas à trouver quelque chose de gros sur le Web écrit en D.

Malgré le manque de grands utilisateurs connus, D me semble être un langage très prometteur, et selon TIOBE , il est assez populaire.


11
Récemment annoncé dans les forums dlang , Facebook utilise désormais D en production.
sghill du

Il n'y a rien de grand car D lui-même est assez pauvre pour créer de grandes applications complexes. Cela 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 les fan boys ne souhaitent pas vraiment créer un logiciel structuré approprié pour le public commercial (je suis sûr que l'argent a beaucoup à voir avec mais aussi le leadership et l’organisation). C'est une chose d'écrire un utilitaire de ligne de commande ou un algorithme de ligne 5k mais tout à fait différent de créer une application professionnelle très complexe qui implique plusieurs domaines tels que l'interface graphique, l'audio, etc.
Stretto

Bien sûr, vous pouvez pirater quelque chose ensemble, mais ce n'est pas commercial. Une entreprise n'investira pas son temps / son argent dans quelque chose d'aussi floconneux. Il n'y a pas d'IDE approprié et tous ceux que j'ai utilisés m'ont presque donné envie de critiquer quelque chose. Il est environ 10 fois plus lent de déboguer correctement les applications car les messages d'erreur sont terribles, le débogueur ne fonctionne pas ou ne fonctionne pas contre vous, les fonctionnalités modernes que nous attendons sont inexistantes ou médiocres, et la bibliothèque est fubar'ed parce qu'elle n'a pas de structure logique (les choses sont déplacées "arbitrairement", des schémas de nommage étranges comme "chomp" et "detabber", etc
Stretto

Je suppose que c'est le yin / yang. Certaines choses en D sont incroyables et rien ne se rapproche (encore) ... mais de l'autre côté, les choses auxquelles il échoue sont assez fortes aussi. On ne découvre ces choses que lorsqu'ils prennent le temps d'écrire de vraies applications plutôt que de faire des choses triviales ou algorithmiques. Tant que l'organisation D n'aura pas réussi à se mettre ensemble (combien de temps cela leur prendra-t-il? 10, 20 ans?), Les vraies entreprises ne vont pas y investir. Le temps, c'est de l'argent et aucune entreprise ne veut passer 10 fois plus de temps pour déboguer une application car l'EDI n'est pas à la hauteur.
Stretto

@Stretto que voulez-vous dire? dlang.org/orgs-using-d.html
Bauss

Réponses:


77

J'utilise D pour mes travaux de recherche dans le domaine de l'infographie. Moi et d'autres avons eu des articles publiés dans nos domaines basés sur des travaux réalisés avec D. Je pense que c'est définitivement prêt à être utilisé sur des projets de recherche de petite à moyenne taille où la performance compte. C'est un bon choix pour les travaux de recherche, car souvent vous partez de toute façon, vous n'avez donc pas beaucoup de code hérité à vous soucier de l'intégration.

Un autre domaine d'utilisation populaire semble être les services Web. J'espère que quelqu'un d'autre pourra commenter qui se trouve dans cet espace, mais là aussi je pense que l'idée est que la performance compte souvent vraiment, donc vous voulez un langage compilé vers le métal. Les services sont souvent des processus assez petits et autonomes, donc l'interopérabilité avec de grandes quantités de code C ++ hérité n'est pas vraiment nécessaire ou utile. Ainsi, D peut mettre le pied dans la porte.

Je pense que D continuera à gagner des adeptes de base de cette manière - sur des projets plus petits qui, pour une raison quelconque, peuvent se permettre d'abandonner l'héritage C ++ afin d'acquérir un langage de programmation beaucoup plus agréable à utiliser, et peut-être plus productif aussi.

Mais jusqu'à ce qu'il y ait un grand nombre d'utilisateurs de base, il n'y aura pas grand-chose en termes d'utilisateurs de grandes entreprises, je suppose.


10
Je développe des applications client / serveur purement en D avec quelques liaisons vers des bibliothèques C, mais uniquement pour la partie GUI du client pour l'un des services les plus populaires aux Pays-Bas. Je devais convaincre mon patron, mais il semble n'avoir aucun regret. ;-) - D brille particulièrement ici car la bibliothèque standard fournit une implémentation des sockets BSD, même sous Windows. Écriture unique, déployez partout, très agréable.
Jesse Brands

@JesseBrands Utilisez-vous le phobos ou le tango?
qed le

88

Je travaille en bioinformatique en D. Pour moi, l'essentiel à propos 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 zéro surcoût, D autorise des fonctionnalités qui peuvent avoir un faible coût en termes de performances / d'espace si elles rendent le langage beaucoup plus utilisable. Ceux-ci incluent le garbage collection, un objet de surveillance pour chaque classe, des informations sur le type d'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 optimal lorsque le temps de développement et le temps d'exécution comptent à peu près également, 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é. Cela suppose que les programmeurs savent ce qu'ils font, mais font des erreurs.

Contrairement à C et C ++, il suppose que vous ne voulez pas utiliser de pointeurs, de casts non sécurisés, de gestion manuelle de la mémoire, etc. partout dans votre code, car ils sont sujets aux erreurs et suppose que vous ne voulez pas passer au crible plusieurs -des messages d'erreur de modèle de page lorsque vous vous trompez juste pour utiliser des tableaux redimensionnables.

Contrairement à Java et à d'autres langages de bondage et de discipline, D suppose que parfois les pointeurs, les casts dangereux, la gestion manuelle de la mémoire, etc. sont un mal nécessaire, et suppose que vous êtes assez intelligent pour gérer de vrais modèles, la surcharge d'opérateurs, etc. sans écrire. code obscurci. Cela suppose également que vous pouvez bousiller et accéder à un tableau hors des limites, mais que le programmeur sait le mieux quel compromis devrait être fait entre sécurité et vitesse dans une situation donnée. Par conséquent, si les tableaux sont des limites vérifiées est simplement déterminé par un commutateur de compilateur.


2
Qu'est-ce qu'un objet moniteur? Je n'arrive pas à trouver des résultats pour cela.
Samaursa

2
J'aime beaucoup le langage D par rapport au C ++. Des temps de compilation plus rapides, la possibilité d'utiliser moins de code, pas de fichiers d'en-tête, etc. Le problème, cependant, est que personne ne fait un travail sérieux sur l'interface graphique. Bien sûr, je peux utiliser GtkD, mais essayez de dessiner une série de graphiques sophistiqués. Je vois un travail prometteur dans l'intégration avec Chromium pour une interface graphique, mais ce projet est en grande partie non documenté et a besoin de plus de joueurs dans cet espace. J'espère que cela changera, mais c'est ce que je vois ici en septembre 2015.
Volomike

Le moniteur d'objets est bullsh **. Il verrouille toute la méthode, c'est vraiment vraiment du gaspillage ...
dev1223

@Volomike J'ai aussi regardé D récemment et de la même manière, il a été difficile de créer des outils d'interface graphique avec. Je n'ai actuellement aucune solution de facto pour créer des outils GUI élégants avec D et c'est quelque chose que je pourrais commencer à m'attaquer bientôt.
dimiguel

32

Je connais une petite entreprise qui a lancé un produit de serveur de messagerie sur le marché. Ils avaient au moins 2 personnes travaillant à plein temps sur le projet.

De plus, un acteur majeur de l'informatique compte plusieurs employés utilisant D dans des projets internes plus importants.

De plus, je connais une entreprise à la recherche de financement en capital-risque, plusieurs employés (au moins 4) dans de petites entreprises utilisant D à temps partiel ou à plein temps, et au moins un couple (dont moi) recherchant activement des opportunités sur le marché du conseil.

J'en ai probablement oublié quelques-uns que j'aurais dû connaître, et probablement certains dont je n'ai pas entendu parler, mais cela existe toujours, car ce qui précède est plus ou moins ceux que je connais moi-même via la communauté.

Un petit pourcentage de mes revenus actuels provient de D.


Pouvez-vous nommer les organisations? Ce serait également bien d'en savoir plus sur ces projets.
nbro

28

J'utilise D pour le développement Web et cela s'est avéré beaucoup plus productif par rapport au C / C ++. Il existe bien sûr de nombreux frameworks basés sur ruby ​​/ php / python. Mais lorsque vous voulez développer quelque chose d'unique qui doit également être aussi rapide que C et presque aussi facile à programmer que dans de nombreux langages de script, alors D est un bon choix.


3
Puis-je demander? Quel framework ou bibliothèque utilisez-vous?
Zelenova

26

J'utilise D pour un environnement de test hardware in the loop (HIL). Ceci est pour les tests logiciels dans le domaine automobile. D peut être utilisé ici, car en tant que langage de programmation système, il est possible d'être utilisé dans des programmes en temps réel (gestionnaires IRQ dans une extension temps réel linux RTAI-LXRT).

Avec le portage actuel de SWT / JFace, je prévois de faire plus et de travailler en D, ce que j'aurais déjà fait en Java.



19

J'utilise D dans mes recherches sur la traduction du code temporel de compilation. Le modèle avancé combiné avec des tuples et des mixins rend la traduction de code beaucoup plus facile et permet d'effectuer la traduction de code pendant la compilation sans avoir besoin d'un outil séparé.

Il existe quelques exemples de physiciens utilisant D pour améliorer leurs programmes avec une méta-programmation en D.

vidéo - Conférence, impossible de trouver le site source d'utilisation des physiciens.


Un de mes projets catégoriquement similaire, également dans D dsource.org/projects/scrapple/browser/trunk/dparser/dparse.d
BCS

17

Toute notre infrastructure réseau (à fort trafic) est basée uniquement sur le D1 et le tango. Nous sommes une jeune entreprise en démarrage à Berlin: sociomantic.com


14

Ma tâche de travail actuelle est un système pour traduire C # en D. Cela fait partie d'un projet à but lucratif pour développer un système logiciel.




7

Beaucoup de jeux publiés par ABA Games sont écrits en D 1.x, même si j'imagine que les ports de la console ont dû être réécrits en C ++.

J'ai écrit pas mal de prototypes de jeux en D, mais je ne suis pas sûr que cela soit qualifié de «monde réel» puisque je les ai écrits pour mon propre bénéfice et que je n'en ai jamais sorti.


Pourriez-vous être plus précis concernant les jeux créés avec D?
nbro

7

J'ai écrit (et je suis toujours en train de maintenir et de développer) un logiciel pour la conversion des protocoles de testeurs de diverses stations de test de matériel en un format de sortie normalisé pour la traçabilité et des trucs comme ça.

Le tout sur 5k lignes de code, écrit avec D 1.x et la bibliothèque Phobos.

D est si facile à apprendre, et ne tenant pas compte de certains pièges (dans la bibliothèque Phobos), c'est un vrai plaisir de programmer.


6

J'ai utilisé D pour mon projet de recherche sur le développement d'un algorithme d'optimisation globale. Je l'ai appliqué au problème de la formation des réseaux de neurones. C'est à vous de décider si vous voulez appeler ce "monde réel".


Le code source ou des informations sont-ils disponibles sur ce que vous avez fait?
nbro


6

J'utilise D2, le deuxième standard de la version. J'ai écrit des applications en temps réel (moteur 3D, par exemple).

La langue devient de plus en plus puissante chaque jour. D est très pragmatique et toutes les fonctionnalités intégrées, en particulier le paradigme de la métaprogrammation, le rendent bien au-dessus du C ++, à mon avis. La syntaxe est plus claire, vous pouvez utiliser la force de la programmation fonctionnelle grâce à des fonctions telles que filtrer ou réduire , et l'une des fonctionnalités les plus importantes: vous pouvez utiliser toutes les bibliothèques C.

Certainement ma langue préférée, et je suis presque sûr que ce sera une langue répandue.


Est-il possible de voir le code source de quelque chose que vous avez créé avec D?
nbro

Cela fait un moment depuis ce commentaire! Je suis principalement en train de coder dans Rust et Haskell maintenant, mais j'ai quelques projets. J'ai des trucs sur mon github, mais je ne pense pas que cela vaille la peine de les creuser. Ce commentaire a 4 ans! Je devrais jeter un oeil à l'état actuel de tout ça…
phaazon

4

Je suppose que nous pouvons lire quelque chose sur le manque de réponses immédiates à cette question et c'est que peu / aucun des répondeurs actifs stackoverflow n'utilisent D.J'ai également été un peu surpris du niveau de son classement dans la liste TIOBE que vous lié à.

Cela dit, Walter Bright travaille sur le langage depuis un certain nombre d'années maintenant et je pense qu'il a un certain nombre de `` followers '' qui se souviennent du bon travail qu'il a fait avec le compilateur Zortech C ++ dans les années 90. Je note également que le langage semble désormais pencher vers la direction fonctionnelle.


3
En fait, il est actuellement impossible de rechercher D sur ce site Web. La recherche de "d" ou "d programmation" dit "pas de résultats", et la recherche sur les balises pour la liste "d" une page pleine de balises qui contiennent "d" mais pas "d" par lui-même. Cela pourrait donc avoir quelque chose à voir avec cela aussi.
Baxissimo le

20
recherchez [d] dans la zone de recherche pour obtenir une recherche basée sur des balises.
Gregg Lind


0

Je commence un projet pour réécrire certains de nos outils internes de Perl vers D. J'ai choisi D parce que je suis assez enthousiasmé par les philosophies de conception du langage. Je programme depuis longtemps et j'ai utilisé beaucoup de langages, des assembleurs aux langages de haut niveau (principalement C) en passant par les langages de script (principalement Perl), et D est le premier langage que j'ai appris avec enthousiasme depuis de nombreuses années. .

J'ai décidé de passer à un langage compilé pour une raison principale: la sécurité. Fonctionnellement, Perl fonctionne assez bien pour l'ensemble d'outils sur lequel je travaille, mais ce n'est pas sûr - toute personne capable d'exécuter un script peut également lire, copier et créer sa propre version modifiée de l'outil. (Et ils le font.) Je sais qu'il existe des méthodes détournées pour contourner ce problème (en quelque sorte), mais pour être honnête, je n'ai pas assez d'heures dans la journée pour gérer tout cela et continuer à faire mon travail principal.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.