On Sunday, 12 June 2022 at 01:48:43 UTC, forkit wrote:
> (1) What I like most about D:
>
> (2) What I dislike most about D:
>
> Please keep it simple and short, ideally one item for each would ideal.
My humble, not particularly informed opinions:
I like D's overall feel and it's mixture of features, in short. D's mixins, ranges, CTFE, delegates, UFCS, scope guards, unit-tests, iteration style, templates, contracts, UDAs, it's module system, it's easy interfacing with C, Objective C and C++'s OOP and it's compilation speeds are honestly the best part of the programming language. And for a language with all these features, D feels tidy, it's not merely a "C++" with more features, it feels unique in it's own right. I also like it's efforts to become safer, like the inclusion of a borrow checking system (live functions), @mustUse and the "safe specification", i think they are going to improve D overall.
The thing that i dislike most about D, on the other hand, it's D's lack of vision for the future. D doesn't have a clear roadmap with clear proposals, and the DIP process seems to me too strict. I don't know what D is going to have or eliminate next. Also, D is somewhat underpowered when it comes to it's features. D does not have structural bindings for arrays and tuples (or at the very least, a way for AliasSeq to have type inference and a possibility to skip what values of the tuple you want, maybe with a underscore like in Go; through, i can understand that it doesn't really fit in with the language), coroutines (yield, async, await, etc.), static array inference, lazy variables like in Swift (through, D allows excellent workarounds for this), named unit-tests (like in Zig; maybe with the possibility to skip them internally, again, like in Zig), generic lambdas, an "inline" attribute for functions instead of the pragma-inline idiom, support for Unicode operators, anonymous structures, records (C#-style), mixin identifiers. I also don't understand certain idioms: why is a case range statement styled like "case 1: .. case 3" and not like "case 1..3:"? It's more readable?
Thank you all in advance.
|