Is phobos too fluffy?

Seb seb at wilzba.ch
Thu Sep 17 17:49:39 UTC 2020


On Thursday, 17 September 2020 at 15:51:18 UTC, Andrei 
Alexandrescu wrote:
> As wc -l counts, phobos has some 330 KLOC:
>
> $ wc -l $(git ls-files '*.d') | tail -1
>   331378 total
>
> I noticed many contributors are fond of inserting empty lines 
> discretionarily, sometimes even in the middle of 2-5 line 
> functions, or right after opening an "if" statement. The total 
> number of empty lines:
>
> $ git grep '^$' $(git ls-files '*.d') | wc -l
>    38503
>
> So Phobos has 11.62% empty lines in it, on average one on every 
> 9 lines of code. I find that a bit excessive, particularly 
> given that our coding convention uses brace-on-its-own line, 
> which already adds a lot of vertical space. Here's the number 
> of lines consisting of only one brace:
>
> git grep '^ *[{}] *$' **/*.d | wc -l
>    53126
>
> That's 16% of the total. Combined with empty lines, we're 
> looking at a 27.65% fluff factor. Isn't that quite a bit, even 
> considering that documentation requires empty lines for 
> paragraphs etc?
>
> Today's monitors favor width over height and I didn't yet get 
> to the point of rotating my monitor for coding purposes. (It's 
> also curved, which would make it awkward.) Would it be 
> reasonable to curb a bit on the fluff factor? E.g. there should 
> never be two consecutive empty lines, and code blocks shorter 
> than x lines should have no newlines inside.

We shouldn't have these discussions.
We should just use a code formatting tool (see e.g. how 
successful black was in the Python world - 
https://github.com/psf/black) and be done with.

So IMHO the only productive discussion here is how we can get 
dfmt (https://github.com/dlang-community/dfmt)  (or a new tool) 
in a shape, s.t. it can be applied automatically.

Alternatively, for your specific request, there was [1], but I 
since gave up on enforcing such style issues manually. As I 
mentioned, a tool should handle this task for you.

[1] https://github.com/dlang-community/D-Scanner/pull/447


More information about the Digitalmars-d mailing list