Wow... Sorry about all my typos from autocorrect. I should not write a longish reply on my tablet, or should proofread and correct.
On Tue, Feb 19, 2019, 9:30 AM David Mertz <me...@gnosis.cx wrote: > On Tue, Feb 19, 2019, 9:07 AM simon.bordeyne <simon.borde...@gmail.com > wrote: > >> I find that 100 to 120 characters is ideal as far as line length goes. >> > > I very much hope no one else where had to read it review your code. > > In my opinion, splitting lines is much worse in terms of cognitive burden >> than just a longer line. On top of that, it's not uncommon to reach 6, even >> 7 indentation levels. >> > > In 20+ years of programming in Python (writing some will known books about > it too), I have never once indented a block 7 levels. Very, very rarely 6. > If you do that, your code has serious problems beyond line length. > > As far as monitor size goes, I agree that on a laptop is not ideal for >> 100+ characters per line if you want two pieces of code side by side. >> > > In a readable size and font, I get two vertical panes of 71 characters on > my 15" Retina display. I can read a smaller font character by character, > but not easily scan a line. > > Here I'm just taking about visual accuity, not the cognitive issue. My > vision in particular remains 20/20 for near vision (but sadly decayed with > age for distance). It used to be more like 20/15, but I never used lines > longer than 80 characters in any programming language (yes, individual > lines, but not as a rule). I did used to use a somewhat smaller font size > though. > > I guarantee that your code quidditch would improve if you use both shorter > lines and a larger font. The latter only affects your interaction with your > screens, the former is essential to everyone who needs to look at your code. > > And, fyi, I work on a 23" monitor at home and on a 15.6" monitor on the >> go. Both are perfectly fine with 100 characters a line. >> >> A good middle ground would be to enforce customization of that rule in >> the most used python linters. A simple setting to set the number of >> characters before a linting warning occurs would be acceptable. >> > > Every linter I know about is customizable this way. > > >> >> >> Envoyé depuis mon smartphone Samsung Galaxy. >> >> -------- Message d'origine -------- >> De : David Mertz <me...@gnosis.cx> >> Date : 19/02/2019 07:28 (GMT+01:00) >> À : Anders Hovmöller <bo...@killingar.net> >> Cc : Simon <simon.borde...@gmail.com>, python-ideas < >> python-ideas@python.org> >> Objet : Re: [Python-ideas] PEP 8 update on line length >> >> 60, or 68, or 80 characters, is not per se a cognitive limit. Yes, sure >> whitespace counts much less towards that burden than do regular characters. >> And to a significant degrees, punctuation vs. letters vs. numbers matter. >> And sure familiar words such as keywords scan a bit easier than unfamiliar >> names of variables. And so on. >> >> But 80 characters in general is already too wide most of the time. 65 is >> a better goal as a rule of thumb, with 80 already being for exceptionally >> long lines. Python keywords are already short, there's not much improvement >> to be had there. Saving two characters for acryptic WHL isn't better than >> the word 'while', for example. >> >> Pretty much the only time my code how's more than 80 characters is when >> it includes string literally that occupy a large chunk of the width. But if >> that 50 character string is the last argument of a function call, the >> reader can mostly stop scanning at it's beginning, so it's not terrible. >> When I have many keyword arguments, I break them into multiple physical >> lines using parents too continue the logical line. Or if I have complex >> compound conditions, I give the subclauses short but descriptive names >> before the if/elif. >> >> On Tue, Feb 19, 2019, 1:11 AM Anders Hovmöller <bo...@killingar.net >> wrote: >> >>> >>> >>> > On 19 Feb 2019, at 05:48, David Mertz <me...@gnosis.cx> wrote: >>> > >>> > You either have much better eyes to read tiny fonts than I do, or >>> maybe a much larger monitor (it's hard for me to fit a 30"" monitor in my >>> laptop bag). >>> > >>> > But that's not even the real issue. If the characters were in giant >>> letters on billboards, I still would never want more than 80 of them on a >>> line (well, rarely, I violate PEP 8 sometimes). Centuries if not millennia >>> of experience with writing show that cognitive burden goes up >>> exponentially, not linearly, as lines get to be more than about 60 >>> characters. >>> >>> If that is the issue then we should be talking about non-space >>> characters, not a 68 column limit right? No way does 40 spaces due to >>> indent count towards the cognitive burden :) >>> >>> Also, if the cognitive burden is the issue then we should talk about >>> short forms for keyword arguments again. The way the 68 column limit works >>> in practice is that people avoid keyword arguments because of line length, >>> plus the issues already mentioned. >>> >>> / Anders >> >>
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/