Is phobos too fluffy?
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.com
Thu Sep 17 18:40:34 UTC 2020
On 9/17/20 1:49 PM, Seb wrote:
> 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
Great point. We have uncrustify working passably well at Symmetry,
making them available for phobos is a matter of putting in the time.
More information about the Digitalmars-d
mailing list