What are (were) the most difficult parts of D?

Arjan arjan at ask.me.to
Thu May 12 14:06:13 UTC 2022


On Thursday, 12 May 2022 at 11:05:08 UTC, Basile B. wrote:
> On Wednesday, 11 May 2022 at 05:41:35 UTC, Ali Çehreli wrote:
>> What are you stuck at? What was the most difficult features to 
>> understand? etc.
>>
>> To make it more meaningful, what is your experience with other 
>> languages?
>>
>> Ali
>
> Overhall I think that D was not hard to learn because well 
> designed (i.e intuitive).

  I concur..

> A few specific points however that I remember
>
> - Certain variant forms of the `is` Expression are not obvious 
> (not intuitive), I'm pretty sure I still cant use them without 
> a quick look to the specs.

Yes indeed, had to read through the then excellent 
pdf()https://github.com/PhilippeSigaud/D-templates-tutorial by 
Philippe Sigaud (of PEG) to grasp the whole idea first, and still 
have to look it up when the need to use it arises...

>
> - Operator overloading in certain cases was confusing, I 
> remember that for one particular form once I had to use your 
> book instead of the official specs (when opSlice and opIndex 
> are combined)

Indeed same experience. Also opCmp and opEquals caused some 
confusion.

D's [][] !== C's [][],

Range peculiarities w.r.t some algo's (algo want's fwdRange but 
got inputRange but did not have the constraint ea)

lazy vs eager algorithms (the need to call .array)
>
> The main difficulty I had is actually not specific to D. It was 
> to accept that a GC is OK.

Nice one.

I recon I have to think much harder sometimes to know where the 
data is and 'who' has access: stack heap tls mutexed or not 
whatever, but find myself almost never asking this question 
anymore in D, which I use(d) to do almost all the time in c++ 
land. The need for it is almost removed by D.




More information about the Digitalmars-d-learn mailing list