Is D really that bad?

SealabJaster sealabjaster at gmail.com
Tue Nov 1 13:51:14 UTC 2022


On Friday, 28 October 2022 at 09:51:04 UTC, Imperatorn wrote:
> Is D really that bad?

It's far from bad but far from perfect :)

My own personal annoyances with D are:

* Subpar support for @nogc code. I don't quite know why but I've 
really taken a liking to writing in @nogc, and I'm very very 
slowly writing my own library to handle some things, but it's 
kinda sad we don't even have @nogc containers in Phobos.

I'm not a GC hater btw, and I like how simple it can be to reason 
about D's GC.

* Poor ecosystem. I know we can tap into the vast landscape of C, 
but I'd rather a nice native D API instead (or D wrapper). 
Strangely, I don't really feel any real motivation now to share 
my code, especially on dub, so I mostly just write things for 
myself to use.

I want to improve things myself, and I've had some fun ideas in 
mind, but time; effort, and increasing disinterest in the 
language outside my own little bubble, is kinda stopping that.

* The 'fashion' of stuffing things into library solutions instead 
of adding it into the language. I _love_ what we can achieve in D 
via its native prowess for metaprogramming, but it kinda falls 
flat on its face at times.

For example, with pattern matching for SumType, having an error 
in your match handlers can be very... interesting to debug; 
likely has much more impact on compile times than a native 
language solution, and I've been meaning to measure what the name 
mangling for symbols that end up in the resulting binary is like 
for more extensive usage of sum types.

One of the things I love about C# is all the syntax sugar - it 
makes code feel more expressive to me.

* The impossible situation we're cornered into when it comes to 
discussing adding things directly into the language: Should it be 
@gc? @nogc? both? exceptions? support the newer safety fetures? 
how can we shoe horn it into a library instead? etc. etc.

String interpolation is my favourite example of this.

* A general lack of vision. Honestly I don't really know what D 
wants to be or achieve, and I find it hard for my personal usages 
at the moment due to things like a lack of a solid AWS SDK. It's 
a language for everyone and everything yet also no one and 
nothing at the same time.

* Tooling not being terribly great compared to other languages.

Still though, there's no other language I love using more than 
this one, even if I personally can't see much of a future for it 
anymore :)

idk, it's weird because in some ways I've kinda given up hope 
with D, but I still want to use it because nothing else I've 
tried really compares in terms of expressiveness and 
metaprogramming. I have to use Go a lot for work, and even with 
generics I'm just begging for even simple templating that D has 
instead of generics ;-;


More information about the Digitalmars-d mailing list