We are forking D

H. S. Teoh hsteoh at qfbox.info
Tue Jan 9 15:01:28 UTC 2024


On Tue, Jan 09, 2024 at 02:02:36PM +0000, BlueBeach via Digitalmars-d wrote:
> On Tuesday, 9 January 2024 at 13:22:08 UTC, Timon Gehr wrote:
> 
> > ... See druntime.
> I'm not familiar with this case. It is part of the DMD repository. Can you
> link/give a little more background?

See: http://dpldocs.info/this-week-in-d/Blog.Posted_2024_01_01.html

About 2/10 of the way down the page, you have this:

	The code we know know as "druntime" originated as a fork because
	Walter failed to accept community contributions. In 2004, after
	attempting to work with upstream, these developers were left
	with no option but to fork the language to keep their
	contributions - which they must have felt were necessary to
	expand the use of D - from being totally lost. This fork was
	called "Ares" at first, and would later join forces with other
	community efforts to become "Tango". Tango called itself "The
	Developer's Library for D". I didn't understand why at the time,
	I just knew to use it, you had to install some things from an
	additional website and I didn't want to do that. But now,
	knowing what I know now about D, the name was obvious: Tango was
	where the developers actually were welcome to contribute. And
	contribute they did: the Tango ecosystem had many things the
	Phobos ecosystem lacked.

		"Walter blesses many ideas. What I'm wondering is how
		quickly he incorporates the results." jcc7, September
		10, 2004, dsource.org forums

	Only after four years of persisting in the fork and gaining
	significant popularity, including capturing D's early commercial
	users, did upstream finally relent and opened up to a
	reconciliation, leading to the "druntime" we enjoy today.


> > A bit of competition is usually a good thing. It's also not like the
> > two projects have no synergies,
>
> From what I understand one of the grievances of OP is the slow
> processing of PRs. If thats really the case, the effect of synergies
> by exchange is hindered.

It's not just the slow procesing of PRs. It's the arbitrary shutdown of
contributions after months, often years, of silence, with no prior
warning and no regard of the amount of work put into maintaining said
PRs over that length of time. And often while totally misunderstanding
what was actually done, as is being shown right at this moment with the
discussion on DIP 1036e.


[...]
> > Walter opened a new thread now.
>
> That is very good. I think this distinction of organisational and
> technical issues is important and frankly I don't quite understand the
> problem with it. It seems to me the immediate reaction from Dlangs
> leadership is to deny or downplay the organisational aspect by jumping
> immmediatly and with great vigor into technical sophistry whithout any
> real need. On the one side it is fascinating on the other hand it also
> quite sad.

This is by far not the first time.

Some years ago, I, a random nobody online, showed up and complained
about the lack of progress in the Phobos PR queue. (By then I had
contributed a handful of PRs.)  After making enough of a noise about it,
I was suddenly handed the "keys to the kingdom", to so speak, i.e.,
commit access to Phobos, along with another contributor.  That was good;
we got to work and after several months, or perhaps even a year of work
we managed to unclog most of Phobos' PR queue.  A happy ending... or was
it?

Well, after some time had passed, Andrei suddenly appeared out of
nowhere after having been mostly silent (or occasionally giving one
sentence or one-word responses) and came down upon us like a ton of
bricks, saying that Phobos is a mess and indirectly implying that our
efforts to get the ball rolling in the Phobos PR queue was the cause.
He went on about Good Work vs. Great Work and a bunch of philosophical
gripes -- none of which we were informed of prior to this. Neither was
any concrete explanation given as to what exactly was required beyond
the vague terms "Great Work" vs. "Good Work" and some handwaving
explanation.

In the aftermath, the other contributor quit contributing.  I continued,
but scaled back my contributions to a mere trickle. Not because I was
mad or anything, mind you, I just decided that since whatever I did
wasn't good enough, and since I didn't "get it" about Good Work vs.
Great Work, I'd just leave it to somebody else who "got it" to step up
and fill the role.

Well guess what?  Nobody stepped up.  Phobos returned to stagnation, and
the PR queue grew back to its old unmanageble proportions clogged up
with PRs that never went anywhere unless you were willing to wait months
or even years. And even after that it was anybody's guess as to whether
it would move forward at all. Most just stagnated until the original
author(s) abandoned it or quit in frustration.  Eventually the DLF was
forced to spend money to hire somebody to look after the queue, because
nobody was willing to do it unless they were paid to do so.

And it wasn't as if there was a lack of willing contributors. Many
willing contributors came, was active for a period of time, then left,
usually over some disagreement or frustration at the way things were
managed.

If it was merely a handful of contributors, then one could reasonably
attribute it to personal disagreements, or that that person simply
didn't "fit" in how things worked here. But it isn't just a handful.
It's a whole long series of active contributors, some of whom made
enormous contributions (Kenji Hara, for example, contributed about 1/2
of all the code currently in dmd), but eventually left due to some
dispute.  After more than 10 years of this very same pattern repeated
over and over -- someone comes on board, actively contributes, sometimes
makes major contributions, then leaves in a huff or withdraws from
active contribution -- one cannot help asking the question, why?  What
are we doing wrong that's driving willing contributors away?  What
should we do to change this?

This issue has been brought up time and again throughout the history of
D, and I have yet to see any action on the part of the leadership that
actually made a difference.  It's not that the leadership didn't try;
they certainly did.  But it's been more than 10 years, and whatever they
have tried has not qualitatively changed the outcome. This past year
there was a lot of noise about changing the process for the better,
etc., but what was the outcome?  Adam, one of the major contributors to
D, decides to fork the project.  What gives?  It's time to ask some
serious questions.  Why is it that other programming languages are
gaining contributors while we're bleeding them?  Why are long-time D
fans feeling so much frustration after years of being loyal to D?
Something is not adding up, and whatever we've attempted in the past
more than 10 years haven't solved this problem.

Perhaps it's time for a drastic, fundamental change in the way this
project is run.


T

-- 
In order to understand recursion you must first understand recursion.


More information about the Digitalmars-d mailing list