What are the worst parts of D?

H. S. Teoh via Digitalmars-d digitalmars-d at puremagic.com
Wed Sep 24 11:44:36 PDT 2014


On Tue, Sep 23, 2014 at 10:37:59PM -0700, Walter Bright via Digitalmars-d wrote:
> On 9/23/2014 10:10 PM, H. S. Teoh via Digitalmars-d wrote:
> >Yeah, I wish that at least *some* attention would be paid to refining
> >existing features so that problematic corner cases could be ironed
> >out.
> 
> It's kinda maddening to hear statements like that. Just in 2.066:
> 
> 103 compiler regressions fixed
> 235 compiler bugs fixed
> 39 language enhancements
> 12 phobos regressions fixed
> 110 phobos bugs fixed
> 41 phobos enhancements
> 9 druntime regressions fixed
> 17 druntime bugs fixed
> 9 druntime enhancements
> 
> https://dlang.org/changelog.html#list2066
> 
> 
> >Like identifier lookup rules for local imports.
> 
> Suddenly this issue goes to a mountain overnight. Is it really the
> most critical, important problem, overshadowing everything else?

No, I just named it as a representative case of many such wrinkles
within existing language features. The fact of the matter is, wherever
you turn, there's always something else that hasn't been fully ironed
out yet. Features that interact with each other in unexpected ways.
Corner cases that weren't considered / are hard to fix due to the nature
of the features involved. Fixes that require a decision -- which are
often neglected because there are too many other things being worked on.

Sometimes I wish there were less features in D, but far more refined.
I'd rather go without the myriad of awesome features in D if I can only
have a small set of features that have been fully worked out such that
there are no nasty corner cases, deep-seated compiler bugs, or
surprising gotchas that lurk around the corner as soon as you start
writing non-trivial code.


> >And what to do about dtors. And so many little niggling details that
> >seem minor, but added together, can form a pretty big mountain of
> >frustration sometimes.
> 
> So help out!

I am, as you yourself point out later. But it's frustrating when pull
requests sit in the queue for weeks (sometimes months, or, in the case
of dmd pulls, *years*) without any indication of whether it's on the
right track, and dismaying when your PR is just one of, oh, 100+ others
that also all need attention, many of which are just languishing there
for lack of attention even though there is nothing obviously blocking
them, except perhaps the reviewers' / committers' time / interest.

The situation with Phobos has improved dramatically, thanks to a
well-timed rant some months ago, which triggered a coordinated effort of
aggressive merging, pinging, reviewing, etc. -- we've managed to cut the
Phobos PR queue from around 90+ to around 29 as of last night (from 4+
pages on github to only barely 2 pages). For that, I applaud my fellow
Phobos reviewers, and I hope the trend will continue until the Phobos PR
queue is firmly back at 1 page (<=25 open PRs).

Unfortunately, the problem persists in druntime, dlang.org, and dmd. It
feels like there's a forest fire raging and only a handful of
firefighters, and now we want to add more fires (new development
directions) without adding more people. What about reviewing and merging
/ rejecting the 100+ PRs in the dmd queue, most of which contain fixes
and language improvements that people have been waiting for, for a long
time, before we think about new directions? Some PRs appear to fix bugs
opened *years* ago, and yet nothing is done about them. Some PRs are at
an impasse due to decisions that need to be made, yet nobody is making
said decisions or even discussing them, and the PRs just continue to rot
there. There are already a *ton* of new features / fixes / language
improvements that are waiting to be decided upon (and, given the size of
the dmd PR queue, I submit this is no exaggeration), and yet we are
indifferent and instead look away to new directions.

Many of us are indeed ready to help, but it would *really* be nice if
our help is received more readily, or, at the very least, *some*
indication is shown that more effort will be put into reviewing said
help before more energy is expended in new directions. The dramatic
shortening of the Phobos PR queue over the last 2-3 months proves that
this is not only possible, but also beneficial (more fixes are making it
into Phobos than ever before) and improves morale (people are more
likely to contribute if they don't have to wait 3 weeks before getting
any feedback for their contribution) -- if we would only put our efforts
into it. So here's to hoping that the other PR queues will shorten
quickly in the near future. ;-)

And mind you, the lengths of the PR queues are only the tip of the
iceberg of stuff we ought to finish doing before embarking on the next
new direction. There are a ton of old bugs that need attention, and a
ton of language features that need improvement / refinement. We could at
least pay those *some* heed even if we absolutely have to start
something new right now at this moment. It would be a great tragedy if D
goes down in history as the project that had so many great ideas, none
of them carried out to completion.


T

-- 
Debian GNU/Linux: Cray on your desktop.


More information about the Digitalmars-d mailing list