D is dead

Steven Schveighoffer schveiguy at gmail.com
Thu Aug 23 12:55:19 UTC 2018


On 8/23/18 8:03 AM, Walter Bright wrote:
> On 8/23/2018 4:31 AM, Shachar Shemesh wrote:

>>> This is in the language spec:
>> How many people know that without resorting to the specs.
> 
> This is a little unfair. It's plainly stated in the documentation for 
> foreach. Heck, I wrote a C compiler and the library for it, and 
> yesterday I had to look up again how strncmp worked. I refer to the 
> documentation regularly. Back when I designed digital circuits, I had a 
> well-worn TTL data book on my desk, too. If it wasn't documented, or 
> documented confusingly, it would be a fair point.

On the point of opApply, the choice is quite obvious. Why would you put 
opApply in an aggregate if you didn't want to control foreach behavior? 
Once you think about it, there shouldn't really be any more discussion.

>>>> Does it matter if it allows copying or not?
>>> For the preference for opApply, no.
>> But it does for empty/front/popFront, which is exactly my point.
> 
> If front() returns by ref, then no copying happens. If front() returns 
> by value, then a copy is made. This should not be surprising behavior.

I think he means, if the range ITSELF doesn't allow copying, it won't 
work with foreach (because foreach makes a copy), but it will work with 
opApply.

>>> If you're referring to #14246, I posted a PR for it. I don't see how 
>>> that is pretending it isn't a problem. It is.
>> When I first reported this, about 3 and a half years ago, the forum 
>> explained to me that this is working as expected.
> 
> The forum can be anyone saying anything. A more reliable answer would be 
> the bugzilla entry being closed as "invalid", which did not happen.

There have been several people who I have spoken with in person, and 
also seen posted here, that say the forum is unfriendly or not open to 
criticism of D. I feel it's the opposite (in fact, most of the die-hard 
supporters are very critical of D), but everyone has their own experiences.

There are many people who post short curt answers, maybe even cynical. 
But this isn't necessarily the authoritative answer. Where I see this 
happening, I usually try to respond with a more correct answer (even 
though my voice isn't authoratative exactly), but the sad truth is that 
we can't spend all our day making sure we have a super-pleasant forum 
where every answer is valid and nobody is rude.

In reply to Shachar's general point:
This whole thread seems very gloomy and final, but I feel like the tone 
does not match in my mind how D is progressing. "Every single one of the 
people [at Weka] rushing to defend D at the time has since come around." 
Seems like you all have decided to either ditch D internally, maybe 
moving forward, or accepted that Weka will fail eventually due to the 
choice of D? It sure reads that way.

This is in SHARP contrast to the presentation that Liran gave at Dconf 
this year, touting D as a major reason Weka was able to develop what 
they did, and to some degree, your showcase of how Mecca works.

My experience with D is that it has gotten much better over the years. I 
suppose that having worked with the earlier versions, and seeing what 
has happened gives me a different perspective. I guess I just don't have 
that feeling that there are some unfixable problems that will "kill" the 
language. Everything in a programming language is fixable, it just 
matters how much pain you are willing to deal with to fix it. If we get 
to a point where there really is a sticking point, D3 can be born.

I do feel that we need, in general, more developers working on the 
compiler itself. So many of the problems need compiler changes, and the 
learning curve to me just seems so high to get into it.

-Steve


More information about the Digitalmars-d mailing list