On the future of DIP1000

Bill Hicks via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sat Aug 27 08:19:40 PDT 2016


On Saturday, 27 August 2016 at 05:57:25 UTC, Walter Bright wrote:
>
> We've never mocked Rust's safety features, although I have 
> posted that they are too complex for D and desire a simpler 
> system.
>

"A disharmonic personality. Reading any amount of Rust code 
evokes the joke 'friends don't let friends skip leg day' and the 
comic imagery 
(https://www.google.com/search?q=friends+don%27t+let+friends+skip+leg+day&safe=off&tbm=isch&tbo=u&source=univ&sa=X&ved=0CB0QsARqFQoTCM_ViveKhMkCFUfZPgodVsgLsA&biw=1582&bih=1352) of men with hulky torsos resting on skinny legs".  --Andrei

If that's not mockery, then how would you describe it?

>
>> but now they're trying to be more like it.
>
> We've had proposals for more safety annotation in D for at 
> least 10 years (from Bartosz Milewski), but they've always been 
> more complex than I wanted. DIP1000 is a much simpler scheme.
>
>

And he continues:

"Unfortunately, that's seldom the problem domain, which means a 
large fraction of the thinking and coding are dedicated to 
essentially a clerical job (which GC languages actually automate 
out of sight). Safe, deterministic memory reclamation is a hard 
problem, but is not the only problem or even the most important 
problem in a program". --Andrei

It should be quiet obvious that a non-optional GC does not belong 
in a language that claims to be a system programming language.  
Not only that, but for all these years D has had a rather poor 
GC.  At last we've witnessed the removal of GC usage from Phobos, 
and, if my understanding is correct, y'all trying to change the 
role GC plays in the language.  So maybe the Rust folks know 
something Dr. Andrei doesn't?  And why criticize Rust just 
because they've taken a potentially better approach to memory 
management while 'D has had the downsides of GC but hasn't 
enjoyed its benefits'?  Besides, if you can't please the 
Linux-kernel-developer type, then you ain't got a system 
programming language.  And if we are honest, I don't think D fits 
anywhere.

>> I bet in a few years we'll see hygienic macro system in D.
>
> I seriously doubt it (they've been proposed many times). I 
> haven't studied Rust's macro system, but others I've seen 
> (expression templates, user defined syntax, CPP, macro 
> assemblers, etc.) are very powerful, but ultimately off-putting 
> because it makes code very hard to understand.
>
>  ...
>
> A macro system is like putting a 2000 HP motor in a car. It's 
> sure exciting, but ultimately you just don't want it in a daily 
> driver, or anyplace other than the track, because it'll kill 
> you.

I'm not a big fan of macros either, but should we ban chainsaws 
too because they have the potential to cause serious injuries?  
The problem with misuse of features like macros is lack of proper 
training and education, not so much the features themselves.  
Large percentage of professional developers don't even have a 
degree in CS/SE, and they lack proper training.  Most of them 
become developers because of the money, and many of them get 
hired for the wrong reasons (just look at the interview process), 
and these are the kinds of developers responsible for large 
percentage of the garbage code that's out there.  Corporations 
that hire them care mostly about producing the largest amount of 
code in the shortest amount of time to increase earnings and 
profits.  Many helper tools and dumbed-down languages have 
already been created particularly for these kinds of crowds.

Unfortunately, we see a similar pattern in other areas.  The 
dumbing down of society and the deteriorating education system is 
not an accident.  Just compare the writing skills of the average 
person from, say, the 1930s to what we have today, not to mention 
their level of intellect.  And today we have spell checkers and 
software to check grammar, how amusing.  Should we make changes 
to the English language to help these people make fewer mistakes?


More information about the Digitalmars-d-announce mailing list