| |
|
forkit
Posted in reply to Ola Fosheim Grøstad
| On Sunday, 14 November 2021 at 21:58:21 UTC, Ola Fosheim Grøstad wrote:
> On Sunday, 14 November 2021 at 21:42:44 UTC, Dr Machine Code wrote:
>> what example of that D's complexity?
>
> In general? The forums are full of those.
>
> I don't want to start a flamewar by listing, but despite people claiming meta-programming is easy in D, it isn't difficult to point out that there are half-baked mechanisms, feature overlap that isn't needed, limited deduction abilities that can make expressing things more awkward etc.
>
> Too much complexity on function signatures for sure, how many casual D programmers remember what inout does?
>
> The ACID test of language complexity is to look at typical code bases and ask yourself if it would be a good idea to tell newbies to learn the language from studying those.
>
> I think both C+, Rust and D has a usability problem there.
I'd also argue, that complexity is the natural outcome of any programming language that is suitable for solving problems across different domains.
Complexity is the natural outcome, because developing 'general purpose' problem solving strategies that cut across different domains, is very difficult.
With such a language, you must begin on the basis: 'expect the unexpected'.
When introducing such a language to novices, you need to do it in a very structured and focused manner, and with a good understanding of cognitive science as it relates to learning.
The inverse is also true. A programming language designed for solving problems within a specific domain, will be less complex that one designed to solve problems across different domains.
Complexity is not the problem per se. Our approach to that complexity is usually the problem.
|