| |
| Posted by forkit in reply to deadalnix | PermalinkReply |
|
forkit
Posted in reply to deadalnix
| On Thursday, 23 June 2022 at 10:18:29 UTC, deadalnix wrote:
>
> ..
> Then you see how providing more has a cost, at least and `implementation/design/educational` one. So there is a point at wish adding that expressivness is counter productive, it is at the point when the value of the extra things that you can express is lower than the cost incurred by implementing the change required for that extra expressivness to be possible.
>
> There are other costs:
> - Tooling will not support that feature initially. D tends to be cavalier with that, and as a result, has worse tooling than pretty much any other language out there.
> - There are now many ways to express the same thing (put things in different module and use `private` or put thing in the same module and use `private(this)`). This has an adverse effect on readability by providing ways to subvert the expectations of the reader.
>
> I'm also convinced that there are costs I cannot really pinpoint, but that are real. The existing landscape clearly demonstrate this. For instance, while Java provides class level visibility, it is actually commonplace to have one Java class per file in numerous projects. Amongst the top languages, more than half have little to no visibility constraints, and these who do like Java tend to have idioms to map visibility with files.
>
> There is something there that remains under explored.
There's always a cost in giving people choice.
In C++, C#, Java, Swift, .... I have this choice, and my choice is to use it, and my software engineering is better because i make that choice. If it was useless, i wouldn't use it.
In D, I don't have that choice.
Nor do the millions of C++, C#, Java and Swift programmers.
I mean this is something you need to take seriously.
This is not an argument over bracing preferences.
This is an argument for, a programming language to provide proper support for strongly typed abstract objects. That's all there is to this. All the other nonsense in these threads, is just distracting noise to confuse people, and to ensure they never get to make that choice, in D.
|