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 ;-;