The DIP Process

Walter Bright newshound2 at digitalmars.com
Thu Feb 28 06:03:00 UTC 2019


I propose that rejecting a DIP is NOT wasted effort.

Most language ideas come up again and again. If an idea is rejected early in the 
process, it will come up again and people will have to rediscover the thought 
process for why it was rejected. The worst case will be not rediscovering the 
why, then implement it, and find out the hard way.

For example, we were pretty far along in the automatic ref counting thing until 
Timon found a fundamental flaw in it that everyone missed. It sunk the whole 
thing, we couldn't find a way to make it memory safe.

ARC keeps coming up again and again. But we don't have a DIP to point to to show 
the fatal flaw, and we just have to remember to point it out again.

A rejected DIP comes with a rationale, so anyone trying to resurrect the idea 
will have a starting point for both the new proposal and will be prepared to 
surmount the objections, which will save a lot of grief. If they've got nothing 
new to add, they'll save a lot of time repeating the failure.

Rejected DIPs also form a basis and a standard for future DIPs. Andrei and I 
have both noticed that C++ proposals have gotten steadily better over the years.
DIPs - rejected and accepted - form the corpus of knowledge that make up what 
and why D is what it is.

For another example, analyzing failed military campaigns is just as useful as 
studying successful ones.

---

Tl,Dr: Rejecting a completed DIP wastes time in the short term, but saves time 
in the long term.


More information about the Digitalmars-d mailing list