We are forking D

H. S. Teoh hsteoh at qfbox.info
Tue Jan 9 21:26:30 UTC 2024


On Tue, Jan 09, 2024 at 07:32:10PM +0000, GrimMaple via Digitalmars-d wrote:
> On Tuesday, 9 January 2024 at 15:01:28 UTC, H. S. Teoh wrote:
> > 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.
> 
> Though I don't have a long-standing track record of contributing to D,
> my futile attempts to even get anywhere were so painfull I just
> stopped bothering very quickly. It always sucks to get critisized, but
> it sucks extra when you're not even told what to do with this
> criticism.

Well, I *do* have a long track record of contributing to D. I've had not
a small number of PRs merged into Phobos and a few in DMD.  I was even
given commit access to Phobos (and still have it, though I haven't used
it in years) and for a time put a lot of effort into reviewing and
merging PRs.

It's not so much the criticism that's the problem -- in any technical
project criticism is good and necessary for high quality work, as long
as the criticism is justified.  It's not even the slow processing of
PRs: as an "insider", I see (or at least, used to see -- I haven't been
involved long enough that my information is probably outdated) the other
side of the situation.  As a volunteer offering my precious little free
time to help D, I simply don't have the time/energy to review big
complex PRs. Neither do I have the confidence to review PRs involving
areas that I'm not an expert in, such as numerical algorithms. As such,
I tend to avoid reviewing PRs that either (1) require too much
time/effort, and (2) outside my area of expertise.  I'm sure I'm not the
only one who feels this way among the Phobos committers.  So the total
effect of this is that large PRs get neglected in the queue, along with
PRs that contain controversial changes (as a volunteer, I obviously do
not want to waste time merging a PR only to have Walter or Andrei revert
it later) or technicalities requiring very specific expertise that only
one or two (or sometimes zero) people have.

All of this stems from a shortage of manpower, but that in itself is
solvable and isn't the core of the problem -- you just draw more willing
contributors and sooner or later one of them will have the needed skills
to do the job. Or you gain enough manpower to offload the routine
maintenance tasks.

The troubles begin when you're losing more contributors than you're
gaining them.  And losing them because of things like somebody in high
standing appearing out of nowhere and dropping on you like a ton of
bricks because you didn't meet requirements A, B, C, D, none of which
were communicated to you prior to your involvement.  Worse, when said
person fails to elucidate just what exactly A, B, C, D are beyond some
vague, non-actionable hand-waving.  And arbitrarily reverting work
you've poured hours into, even though prior to that they were
unresponsive when asked for feedback and did not make it clear exactly
what was expected of you.  And to add salt to the wound, when you've
poured even more countless hours into fixing up your PR to meet the
requested changes, only to have the reviewer go MIA (or only give one
word responses) for months on end, and then come back later to say no,
it's still not good enough, here are additional requirements E, F, G --
none of which were mentioned as issues before.  And to top it all off,
when the person rejecting the work does not fully understand what has
been done, and clearly has not bothered to try to understand it (because
if they did, they wouldn't say the things they did or continue to repeat
wrong claims which have already been debunked, often multiple times).

In a commercial enterprise where people are paid to do the work and have
to listen to you no matter what, such an approach may not have been as
disastrous. (Well OK, people will quit, but at least some would stay
just because of the money.)  But when you're dealing with volunteers
burning up their free time in hopes of contributing to what they feel is
a worthy cause, is it any surprise that people rapidly lose interest in
contributing further?

And when even longstanding contributors after years of involvement
decide to call it quits, and when this happens not once or twice, but in
a continual, recurring pattern throughout the history of D, then you
really gotta wonder just *what* is going on.


> Most of the time, D community seems to try and look like it cares
> about the end user, but in reality (this thread is a confirmation)
> it's just pointless bantering about something that the end user
> doesn't care about. More importantly, this pointless bantering is used
> as an escape goat to shut down changes that DLF doesn't want/like, yet
> DLF itself never bothers with breakage if it implements some kewl new
> feature that nobody asked for.
[...]

I wouldn't go that far to say that the DLF doesn't care about the end
user.  I'm sure they do, as most of them are users themselves.  The
problem is more with the perfectionist ideal of letting the perfect be
the enemy of the good.  Contributions that are not 100% perfect are
rejected, even when they're already good enough for the majority of use
cases. Rather than have a solution that's good enough for the time
being, we would rather not have any solution at all until the ideal
arrives. If it ever arrives at all.

It's that, plus the problems with communication. Or the lack thereof.

IOW, the core issue here isn't technical -- we have no problem with
technical issues, Walter is an expert on that -- it's social.


On Tue, Jan 09, 2024 at 08:02:40PM +0000, BlueBeach via Digitalmars-d wrote:
> On Tuesday, 9 January 2024 at 19:32:10 UTC, GrimMaple wrote:
> > On Tuesday, 9 January 2024 at 15:01:28 UTC, H. S. Teoh wrote:
> > > […] More importantly, this pointless bantering is used
> > as an escape goat to shut down changes that DLF doesn't want/like,
> > yet DLF itself never bothers with breakage if it implements some
> > kewl new feature that nobody asked for.
> 
> There is the vision document from Mike Parker
> (https://github.com/dlang/vision-document)
> 
> I think it’s noble attempt and could be starting point for
> improvements. But I’m interested in your opinion.
[...]

Over the years, there have been countless such "vision documents" and
other similar things.  The more time goes on, the more skeptical I have
become that they have any real impact on anything.  They sound just like
the typical corporate motivational "visions" that have lots of buzzwords
but scanty in actual, actionable details.  You know, the kind of pep
talk that your CEO would give at company-wide meetings where he would
proudly announce "for this upcoming year, our company slogan will be
$buzzword1, $buzzword2 and $buzzword3. We're doing awesome, and we're
going to be even more awesome by leveraging $buzzword1 to $buzzword2 the
$buzzword3 and achieve even higher levels of $buzzword4 which will blah
blah blah ... PROFIT!".  Everybody claps their hands as the soap opera
episode^W^W^Wcompany meeting comes to an end: the strawman has been
defeated and everything has reset to the status quo as at the beginning
of the show.  The next day will be business as usual.

I wish things were different, but our track record isn't looking very
promising right now.  I'd much rather look at actual work that's being
done, than such documents that we're not actually acting on.

//

Now, to be fair, LOTS of work has been done in D over the past years.
Don't get me wrong, it isn't as though D has come to a standstill.
There's still lots of good stuff in D, and they're still trickling in.
(I wish they were pouring in, but I'll settle with a trickle.)
Unfortunately, the fundamental issues like I described above remain
unsolved, and from all appearances, unlikely to be solved. We excel at
solving technical issues, social issues not so much.  I'm not holding my
breath.


T

-- 
Кто везде - тот нигде.


More information about the Digitalmars-d mailing list