The DIP Process
Joseph Rushton Wakeling
joseph.wakeling at webdrake.net
Tue Feb 26 22:56:40 UTC 2019
On Tuesday, 26 February 2019 at 17:46:32 UTC, Jonathan Marler
wrote:
> I think most points of the DIP process make sense, but it has
> one very large problem. Feedback from language maintainers
> (Walter and Andrei) is not done until the end of the process.
> You're asking someone to go through a process that can take a
> year before the people who have the power to accept or reject
> the proposal look at it or leave any feedback. This is
> extremely wasteful of the author's time, the reviewer's time
> and causes extreme pressure for everyone involved. A years
> worth of waiting, debate and revision that are now wasted and
> could have easily been avoided if language maintainers left
> their feedback early on. Walter and Andrei should be involved
> in the process throughout, not just render judgement at the end.
It's worth making a comparison to how new features are
incorporated into other languages, such as C++, or Rust, or
Fortran, or Haskell. In every case, it's hard -- years of work
trying out different designs, different implementation attempts,
balancing costs against benefits. D is if anything far more
flexible than many of its counterparts when it comes to accepting
new ideas.
Obviously it's not great if something goes through multiple
rounds of feedback and revision only to be rejected at the very
end, but sometimes it's only _because_ of those multiple rounds
of feedback and revision that a proposal is clear enough to take
that kind of decision on it. Early feedback doesn't help with
that.
On the other hand, one can flip the problem on its head: perhaps
the problem is less that Walter and Andrei can come in at the end
with a rejection, than that things they are going to reject get
put in front of them in the first place. That suggests that
either the review process may be ineffective at weeding out
problematic proposals, or that DIP authors may be too strongly
biased towards revising and resubmitting their proposals rather
than withdrawing them when problems are identified.
> In the years I've been here I have found that feedback from
> anyone other than Walter and Andrei has very little bearing on
> what Walter and Andrei will think. The entire community can
> think an idea is great, but then Walter or Andrei completely
> reject it. And the opposite is true as well, I've seen W&A
> champion an idea that the community generally rejects.
> Designing a process to ask many people to create and perfect a
> proposal for a year catered to 2 specific people without any
> feedback from them is mind-boggling to me.
I'm going to say something comically rude here, but with the
serious intent of provoking everyone to reflect a bit.
Which is: have you considered the possibility that Walter and
Andrei are the only people who really know what they're talking
about, and everyone else is a [expletive] idiot? :-)
Clearly whenever a tiny number of people wield absolute veto
power, there is a risk of a certain amount of arbitrariness or
preference-of-the-moment-based decision making (or, perhaps more
problematically, the perception of such, even when it isn't the
case). But there are very few people in the D community with a
breadth and depth of experience to match Walter and Andrei either
as individuals or together, so it's hardly surprising that they
might regularly perceive the advantages and disadvantages of a
course of action differently from the majority.
After all, where subtle technical decisions are concerned, it's
highly likely that a small number of domain experts are going to
be able to make a better decision than the majority of users.
I'd also question how one establishes that "the entire community
can think an idea is great". We make a big mistake if we assume
that the opinion of the self-selecting group of people who post
on forums, or are active on GitHub, is representative of the
wider D community of often silent users.
In fact, that's the kind of thing it's worth asking both Walter
and Andrei: what kinds of demonstrable consensus (and of whom?)
do you think might cause you to change your minds about something
you would otherwise have vetoed?
> Based on my observations, my guess is that the DIP process was
> designed to alleviate the amount of work needed from Walter and
> Andrei, but look what it's produced.
Returning to the point earlier -- perhaps what it has produced is
something that is inadequate at reducing the amount of work they
have to do.
It's surely nice if we can find ways to reduce the amount of time
and effort DIP authors need to put in before getting a clear
decision on their work. But part of the problem here is seeing
that time and effort as wasted if a DIP is rejected.
If instead we were to focus on seeing a DIP as a learning
experience through which everyone (authors, reviewers, and
language maintainers) get a better understanding of what things
are possible, what things are practical or useful, and why, then
a rejected DIP isn't an adversarial or problematic outcome, or a
waste of anyone's time: it's a collaborative effort that
established the lack of viability of a particular course of
action. Just as in science or medicine, clearly identifying
_negative_ results is not a bad thing -- it's a valuable (and too
often undervalued) contribution!
More information about the Digitalmars-d
mailing list