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

cc cc at nevernet.com
Mon May 16 04:00:12 UTC 2022


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

Immutability.  Ended up having to do so many hundreds of casts to 
and from immutable(whatever) the amount of mental strain greatly 
exceeded whatever benefits the entire concept is supposed to 
offer.  Safety?  Performance, in a future compiler version?  I 
don't know where it's at right now.  But you'd think I could do 
something like load some data from disk, craft a few objects, 
mark them as immutable, and shove them in an array or associative 
array without it being a nightmare, but it isn't.  Or, having an 
otherwise mutable class with a member that references an 
immutable class, but can change which immutable instance it's 
referencing, without having to cast away the immutability of the 
thing I'm trying to protect in the first place.  So I just 
stopped doing it, and simply rely on the "just don't make 
mistakes" practice to avoid writing to things that shouldn't be 
written to now.

C#'s concept of marking a class member as "readonly" feels a lot 
more like what I was hoping to get.  It doesn't complain at me 
when I return something that's readonly and the receiving 
destination isn't expecting it to be readonly, and also I have 
more free reign over what I can do to it during the constructor 
phase before it becomes hands-off.  Things look a lot cleaner 
without another set of parentheses around every variable too.

On another topic, the lack of a good "delete" keyword doing what 
one would expect, when there's a perfectly good "new" without its 
matching existential companion.  This, and the ways around it, 
have already been discussed to death though, but banging my head 
over trying to force deterministic memory management into the 
GC-controlled D universe did take its toll on a good year or two 
of productivity.


More information about the Digitalmars-d-learn mailing list