OpenD, un fork du langage D qui est ouvert à vos contributions, puisque les dirigeants de D ont choisi de forcer un fork

Les dirigeants de D ont choisi de forcer un fork

"Nous en sommes au point où ils ont besoin d'un contrôle et d'un équilibre pour que tout se passe bien. J'espère qu'ils nous écouteront avant que quelqu'un ne décide qu'il est temps de forker.

rikki cattermole, 23 août 2018, D forum
Contribuer au travail de développement en amont de la direction de D a toujours été un processus très frustrant. Bien que l'affirmation souvent répétée selon laquelle D est un langage à code source fermé ne soit pas vraiment vraie (les parties du compilateur spécifiques à D ont été placées sous licence GPL dès 2002, ce qui a conduit à la publication d'un compilateur entièrement sous licence GPL [ce que nous connaissons maintenant sous le nom de gdc] en 2004), il est vrai que les méthodologies de développement de D ne sont pas particulièrement ouvertes et que la prise de décision a très peu de contributions significatives de la part de la communauté, et cela a été vrai tout au long de son histoire.


Vous ne pouvez pas faire de telles accusations sans preuves... Je suppose que vous en avez ?

"Les PR dépérissent à jamais... Il est plus facile de contribuer à Nim."

Timothee Cour, 26 mars 2018, https://github.com/timotheecour/D_vs_nim
Ne vous y trompez pas : D n'est ce qu'il est aujourd'hui que grâce aux contributions de la communauté. Les caractéristiques et concepts clés auxquels nous pensons et qui font de D, D sont issus de la contribution de la communauté. Le code D existant est principalement écrit par la communauté. Un travail important a été effectué. J'ai réussi à en faire une grande partie moi-même. En effet, la semaine dernière, un problème sur lequel j'avais insisté dernièrement a été fusionné (après un retard de 4 mois, mais mieux vaut tard que jamais), et j'ai fait fusionner plusieurs petites choses tout au long de l'année.

Mais en ne considérant que les succès, nous risquons de nous heurter au biais du survivant. Walter a raconté une fois (c'est une histoire bien connue, mais c'est la première fois que je l'ai entendue) l'histoire des avions de la Seconde Guerre mondiale qui reviennent avec des impacts de balles. À première vue, on pourrait se dire "c'est là que les avions ont été abattus, armons-les", mais c'est le contraire qui s'est produit. Ce sont les avions qui sont revenus, ce qui signifie que ceux qui ont été abattus ailleurs ont probablement été abattus. Ce sont donc les zones sans impacts de balles qui ont nécessité une attention particulière.

Il est important d'examiner toutes les données.

"L'histoire du développement D est pleine de cas où il a fallu énormément de temps pour adopter quelque chose qui aurait été considéré comme une pratique standard à l'époque (comme le contrôle de version, le suivi des problèmes ou la maintenance des versions) parce que quelqu'un devait le "vendre" à Walter de manière convaincante."

Dicebot, 4 septembre 2017, essai "On Leaving D"

"Ma position est que tant que les dirigeants actuels restent en charge et gardent la même attitude, aucune somme d'argent ou de temps de développeur ne réparera D."

Dicebot, 23 août 2018, fil de discussion du forum D commentant son essai "On Leaving D".
Bien que de nombreux correctifs aient été acceptés dans l'histoire de D, il y a aussi de nombreux correctifs qui ont été laissés à l'abandon. Le code que nous connaissons sous le nom de "druntime" est né d'un fork parce que Walter n'a pas accepté les contributions de la communauté. En 2004, après avoir tenté de travailler avec upstream, ces développeurs n'ont eu d'autre choix que de forker le langage pour éviter que leurs contributions - qu'ils devaient juger nécessaires pour étendre l'utilisation de D - ne soient totalement perdues. Ce fork s'est d'abord appelé "Ares", puis s'est associé à d'autres efforts de la communauté pour devenir "Tango".

Tango s'appelait lui-même "The Developer's Library for D" (la bibliothèque des développeurs pour D). Je ne comprenais pas pourquoi à l'époque, je savais juste que pour l'utiliser, il fallait installer certaines choses à partir d'un site web supplémentaire et je ne voulais pas le faire. Mais maintenant, sachant ce que je sais de D, le nom était évident : Tango était l'endroit où les développeurs étaient invités à contribuer. Et c'est ce qu'ils ont fait : l'écosystème Tango avait beaucoup de choses qui manquaient à l'écosystème Phobos.

"Walter bénit de nombreuses idées. Ce que je me demande, c'est à quelle vitesse il incorpore les résultats".

jcc7, 10 septembre 2004, forums dsource.org
Ce n'est qu'après quatre ans de persistance dans le fork et de gain de popularité significatif, y compris la capture des premiers utilisateurs commerciaux de D, qu'upstream a finalement cédé et s'est ouvert à une réconciliation, conduisant au "druntime" dont nous jouissons aujourd'hui.

Je pense que sans le fork Ares/Tango, D ne serait qu'une note de bas de page aujourd'hui ; une expérience menée par quelques personnes remarquables qui n'a finalement abouti à rien sur le marché. On nous dit souvent que cette situation a failli tuer D, mais la vérité est probablement l'inverse : ce fork a sauvé D à un moment critique de son développement.

Les années qui ont suivi, avec les développeurs clés de Tango ramenés au bercail pour rejoindre des gens comme Andrei Alexandrescu, et autres, ont inauguré un âge d'or pour D. Le développement était, pour une fois, raisonnablement ouvert et l'activité a connu un pic autour de 2013, avec de nombreux utilisateurs commerciaux lui donnant une chance (notez que presque tous les utilisateurs commerciaux de D ont dépendu directement du code du fork Ares, le même code qui aurait été jeté si la main de Walter n'avait pas été forcée).

Mais cela n'a pas duré. Les vieilles habitudes ont refusé de mourir et l'afflux de contributeurs de l'âge d'or n'est pas resté, beaucoup citant explicitement le processus brisé qui a conduit à ce que leur travail ne soit pas apprécié, ou ont simplement disparu au fur et à mesure que les circonstances de leur vie changeaient, une à la fois, avec peu de nouvelles personnes restant pour prendre leur place, jusqu'à ce qu'il n'en reste plus que très peu.

"Dès le printemps 2009, j'étais fatigué des circonstances de la communauté D, de sa gouvernance et ainsi de suite, et bien que j'aimais la langue (D v1), j'étais incertain de l'avenir. J'ai discuté en privé avec d'autres personnes, et il s'est avéré que j'étais loin d'être le seul. Kris était dans une situation similaire, mais il a également vu son travail s'effondrer. "

larsivi, 17 décembre 2012, Tango forums
L'activité de développement de Phobos a chuté de manière significative au milieu de l'année 2018, avec seulement deux petits pics depuis lors - l'ajout du formatage en virgule flottante compatible CTFE par berni44 et l'acceptation du module sumtype de Paul Backus en tant que std.sumtype.

La semaine dernière, j'ai été assez déçu que personne ne réponde à mon annonce d'un nouveau site web sur D (entre-temps, il y a trois réponses, une négative, deux positives, mais c'est un peu trop tard). J'attends aussi depuis presque trois mois une révision de mes PR concernant le remplacement de sprintf (faire un pouce en l'air n'est pas suffisant). Tout cela m'a rendu assez triste.

J'ai donc décidé de rester à l'écart pendant une semaine pour me calmer et avoir le temps de réfléchir à tout cela. Finalement, je suis arrivé à la conclusion que je n'avais pas ma place dans cette communauté. Je vais donc partir.

berni44, Feburary 6, 2020, D forum topic "3 mois d'attente..."
berni44 est revenu un an plus tard et a réussi à surmonter ce qui s'est avéré être le pic le plus récent dans le développement de Phobos... mais cela n'a pas duré. Quelques mois après ce pic de retour, il est reparti. Il y a encore quelques PR de berni44 ouverts, apparemment toujours en attente d'une décision ou d'une autre action de la part de la direction de D à ce jour.

Je doute que ce soit une coïncidence si l'activité de Phobos s'est arrêtée peu avant qu'Andrei Alexandrescu n'annonce publiquement qu'il quittait D. Même s'il était parfois frustrant de travailler avec lui, il avait une vision pour la bibliothèque et était prêt à travailler dans ce sens. Mais il n'y avait plus personne pour continuer le travail lorsqu'il s'est retiré.

Si l'on considère la dmd elle-même pendant son âge d'or, Walter lui-même n'a fait qu'environ 1/6 du travail. Plusieurs autres personnes étaient impliquées de manière significative. Aujourd'hui, il en fait environ 1/3 lui-même - ce n'est pas parce qu'il a pris de l'avance ; les contributions individuelles de Walter sont restées à peu près stables. Cette proportion a plutôt changé parce que d'autres personnes se sont retirées, encore une fois, beaucoup d'entre elles citant explicitement que leur raison est le modèle de gouvernance brisé de D.

"Je ne peux pas travailler sur D alors que mes PR sont ignorés pendant des mois, voire des années."

Jonathan Marler, 28 octobre 2018, fil de commentaires Github PR (sur l'interpolation de chaînes de caractères).
La frustration ressentie ne se limite pas aux contributeurs open source.

"Chacune des personnes qui se sont précipitées pour défendre D à l'époque s'est depuis ravisée. Il y a toujours un débat sur la question de savoir si, points contre points, le choix de D était une bonne idée, mais le consensus écrasant à l'intérieur de Weka aujourd'hui est que D a des défauts *fatals* et aucune voie pour les corriger.

Et par "fatal", j'entends littéralement des défauts qui sont susceptibles de tuer littéralement le langage".

...

"Nous connaissons ce problème depuis longtemps. Rien n'a bougé".

Shachar Shemesh, 23 août 2018, forums D
(Il est intéressant de noter que l'une des personnes défendant D dans ce fil de discussion, Joakim, a depuis quitté D - repoussée par les actions directes des dirigeants de D, et qu'un autre des défenseurs de D dans ce fil, Mike Franklin, se séparerait bientôt lui aussi de D en raison d'un manque d'attention à ses besoins, bien qu'il soit lui-même un contributeur considérable).

Bien sûr, ce n'est pas une nouvelle pour la plupart des gens qui ont côtoyé D pendant un certain temps, y compris ses dirigeants.

Aux alentours de Noël 2022, Mike Parker a annoncé une campagne dans laquelle il demandait aux gens de lui envoyer leur liste de "griefs et souhaits de D".

Beaucoup ont dit que c'était inutile, qu'ils ne s'attendaient pas à ce que cela débouche sur quelque chose, mais il y a quand même eu beaucoup de réponses.

"Pour moi, traiter avec les dirigeants de D a été une expérience exaspérante à maintes reprises. C'est la seule raison pour laquelle j'ai réduit mes contributions à près de zéro. Il y a beaucoup de choses à corriger à D, mais quand je dois me battre pour avoir le privilège de nettoyer derrière vous alors que vous refusez même de reconnaître vos propres bugs, ça n'en vaut tout simplement pas la peine.

...Je suis sûr que la mauvaise gestion des contributeurs a coûté beaucoup de talent à D."

ag0aep6g, December 24, 2022, D Forum "Envoyez-moi votre liste de griefs et de souhaits D"
Cela fait un an. Qu'est-ce qui en est ressorti ? Environ six mois après l'annonce de la campagne, le 18 mai 2023, Mike Parker a publié un document qui rassemblait les réponses des gens dans un document public. Il a indiqué que les prochaines étapes consisteraient à fixer des objectifs, à établir des priorités, à assigner des tâches et à les exécuter. À l'heure où j'écris ces lignes, le seul artefact public qui en est ressorti est la définition des objectifs suivants :

  • stabiliser le langage, le compilateur et la bibliothèque standard
  • améliorer l'écosystème (amélioration des outils, support des bibliothèques tierces, etc.)
  • renforcer la communauté (supprimer les éléments inutiles du site web, mettre à jour les documents et tutoriels obsolètes, refondre le site web, etc.)


Lors de la demande d'envoi de courriels, il a été précisé : "Mais n'écrivez pas en termes généraux, soyez précis. Soyez précis." Et les gens ont écrit beaucoup. Pourtant, lorsqu'ils ont répondu aux plaintes de chacun, les dirigeants de D n'ont eu que ces points en guise de réponse.

Les sceptiques avaient raison (une fois de plus). Il n'en sortirait rien.

Ce n'est pas la première fois que des objectifs similaires sont énumérés. Prenons par exemple les titres du document de vision 2016H1 :

  • Augmenter la participation
  • Outils
  • Améliorer la stabilité et la spécification du langage
  • Ajouts à la bibliothèque


Il est clair aujourd'hui qu'il ne suffit pas de fixer un objectif. Nous devons agir. Et nous avons besoin d'agir depuis longtemps.


Cela semble insurmontable... Je suis entre vos mains. Que faisons-nous maintenant ?

J'ai été mécontent d'essayer de contribuer à D pendant de très nombreuses années. Les petits succès sont agréables, mais ne compensent pas les grands échecs. Il y a sept ans, lorsque mes améliorations de ddoc se sont heurtées à un mur, j'ai fait un fork pour créer adrdox, le programme qui fait fonctionner ce site web aujourd'hui. En deux semaines de travail, j'ai accompli seul des choses qui avaient langui pendant des années en essayant de travailler avec upstream.

Et maintenant, je vais essayer de refaire la même chose, mais cette fois-ci avec le compilateur entier. Je m'éloigne dU D de Walter Bright et je passe à OpenD, un fork que j'ai commencé avec plusieurs autres anciens contributeurs mécontents.

Qu'est-ce que cela signifie pour...

  • ...l'hébergement de documents de dpldocs.info ?

    Ce site est actuellement à peine, mais toujours payé par patreon. Cela inclut le support du package dub, qui restera donc opérationnel tant que ses coûts seront couverts. Il ne recevra pas de mises à jour pour upstream D, il continuera probablement à bien fonctionner.

  • Ce blog ?

    Les parties dédiées au support de l'amont D seront interrompues. C'est pourquoi cet article ne contient plus de statistiques. Mais sinon, je continuerai probablement à écrire quand j'aurai quelque chose à dire et le temps de le faire. De toute façon, l'accent a été mis davantage sur mon code que sur D. C'est pourquoi il sera renommé "This Week in ARSD" à l'avenir, bien que je puisse le changer en "This Week in OpenD", les liens fonctionneront toujours.

  • Mes PR et rapports de bogues en amont ?

    Tous les efforts sont interrompus, avec effet immédiat. Si quelque chose me profite, je le fusionnerai dans OpenD sans même essayer de l'envoyer en amont.

  • Mon support utilisateur ?

    J'ai toujours passé de nombreuses heures par semaine à aider les utilisateurs de D, quel que soit leur niveau de compétence. Cela s'arrête aujourd'hui. Je me sens mal pour les utilisateurs qui seront bloqués par des informations erronées, mais je passe à autre chose.

    Si vous m'envoyez un courriel pour me poser des questions sur upstream D, il se peut que je vous parle, mais je ne vous promets rien. Je vous dirai probablement d'essayer OpenD à la place.

  • Mon plaidoyer pour les utilisateurs communs de D lors des réunions de la DLF ?

    Je n'assisterai plus à aucune réunion de la DLF à moins qu'ils n'acceptent des changements de gouvernance comme condition préalable. Alors, et seulement alors, nous pourrions avoir quelque chose de significatif à discuter. Je ne m'attends pas à ce que cela se produise.

  • Mes livestreams de DConf Online ?

    Je doute qu'ils m'invitent. Mais s'ils le font, je déclinerai l'invitation. Je vais suivre une voie différente maintenant.

  • Le code de ma bibliothèque ?

    Mes bibliothèques D se sont toujours engagées à assurer la compatibilité entre les versions internes et les mises à jour externes du compilateur. Cet engagement subsiste, mais uniquement pour les entités ayant souscrit un contrat de support payant.

    Pour tous les autres utilisateurs, toute compatibilité avec D en amont est immédiatement annulée. Cela peut fonctionner, cela peut ne pas fonctionner. Le code est fourni tel quel, sans garantie d'aucune sorte, explicite ou implicite, y compris, mais sans s'y limiter, les garanties implicites de qualité marchande et d'adéquation à un usage particulier. Vous assumez l'intégralité des risques liés à la qualité et aux performances du programme.

    Si vous souhaitez acheter un contrat de support, y compris le support potentiel d'un compilateur D en amont particulier, contactez-moi pour en discuter les termes.

    Sinon, rejoignez-moi dans le fork D, où le support de mes bibliothèques se poursuivra indéfiniment.

  • Mes applications D ?

    Je doute que beaucoup de gens les utilisent, mais si c'est le cas, c'est la même chose que pour le code de la bibliothèque : la compatibilité avec D en amont est fournie telle quelle, sans aucune promesse. J'ai généralement des garanties de compatibilité plus faibles sur les applications de toute façon, puisqu'elles ne sont conçues que pour fonctionner pour moi en premier lieu.


J'ai passé... beaucoup de temps sur D au cours des 16 dernières années. Ma carrière de programmeur informatique est presque entièrement due à D, et avant cela, à Digital Mars C++. Walter Bright et sa compagnie ont eu un effet énorme sur ma vie.

J'espérais vraiment que les choses se seraient passées différemment. Walter est un contributeur fantastique à un projet de langage de programmation, et je préfère travailler avec lui que sans lui. Mais maintenant, il est temps de se tourner vers l'avenir. Il y a beaucoup de travail à faire pour assurer le succès d'OpenD. Il est très probable que nous échouions. Mais au moins maintenant, nous n'aurons personne d'autre à blâmer que nous-mêmes.
Source : OpenD

Et vous ?

Pensez-vous qu'il est pertinent de partir sur ce Fork ou que c'est dommage de diviser les efforts sur le D ?
Le langage de programmation D a-t'il un avenir ou risque t'il de rejoindre le cimeterre de la masse infinie des nouveaux langages de programmation sans avenir ?
Quel est votre avis sur le sujet ?

Voir aussi :

La version 2.106.0 du langage de programmation D est livrée avec des changements notables dans la bibliothèque standard et le compilateur,mais ce rival du C/C++ n'a jamais réussi à s'imposer

Atila Neves, chef adjoint de l'équipe en charge du développement du langage D, se confie sur l'avenir du D et dévoile certains aspects des projets en cours