Feedback on Átila's Vision for D

Nicholas Wilson iamthewilsonator at hotmail.com
Sat Oct 19 17:27:26 UTC 2019


On Saturday, 19 October 2019 at 13:45:37 UTC, Aliak wrote:
> On Saturday, 19 October 2019 at 12:23:36 UTC, Nicholas Wilson 
> wrote:
>> IME, no. If your module is big enough that you can't keep all 
>> of it in you head and you start calling implementation details 
>> of your classes _by accident_ then either:
>> a) name your implementation details so they stand out so you 
>> don't call by accident (e.g. a._something() )
>> b) split up your module into a package so that it fits in your 
>> head, this will (probably) cause you to not be able to call 
>> the implementation details at all, and will thus cause you to 
>> have to think about the organisation of you package (which is 
>> probably a good thing).
>
> Solution a is a convention.

Indeed.

> And solution b is fluffy.

How so? Also, you should probably be doing that anyway for 
different reasons.

> Neither are enforceable. But they are indeed things you can do 
> to try and mitigate things. And it becomes exponentially harder 
> to enforce conventional practices the bigger the code base. 
> Unfortunately that’s only something you get to realize after 
> enough experience in big code bases and in larger teams.

Maybe, but this is a O(individual file size) problem not a O(code 
base) problem,
which is why b is such an effective solution.

Since I don't expect to convince you of anything further, the 
only thing I can suggest is to write a lint rule using the 
compiler as a library (or hack the compiler yourself), since 
changing the behaviour would almost certainly be rejected on cost 
(i.e. breaking stuff) / benefit, and adding a second private 
would probably also be rejected as too narrow a feature for 
marginal, at best, utility.

I can't remember if you do compiler stuff, but I'd be happy to 
help once I have some time (or try slack for faster response from 
others).


More information about the Digitalmars-d mailing list