On 08/02/2021 00:39, Brendan Barnwell wrote:
On 2021-02-07 09:59, Christopher Barker wrote:
All that being said, it's not that big a deal, and I personally don't
try to limit to 80 chars per line anyway -- preferring 90 or 95 -- I
haven't used a VT100 in decades ....
To be honest I find it kind of ridiculous that people are still
worrying about line lengths in this day and age. It's especially
strange that people will talk about how a proposed feature interacts
with relatively sophisticated editor/IDE features like syntax
highlighting and autocompletion, yet still have no problem working
with editors that are woefully limited on a much more basic feature.
It's called line wrapping.
We as humans should not be concerned with how long LOGICAL lines
are until and unless it actually impinges on our ability to comprehend
them. The appearance of the VISUAL line should not enter into our
decision-making because that's a matter for the editor displaying the
code. There's no reason not have lines that are 200 or 300 or even
1000 characters long if you want to (for instance for a long string
literal); it's the editor's job to take a semantically-motivated set
of lines and indentations and display them attractively. Then if
different people have different preferences they can set their editors
to different line widths and see the code in their preferred format.
Editors that don't support such features need to be fixed and we
shouldn't continue to enable them by insisting that people distort the
semantic structure of their code to fit arbitrary guidelines like 80
or 95 characters. A person should insert a line break whenever they
think it's a good idea for semantic reasons (e.g., separating
statements) and not insert any when they don't think so, and leave the
rest up to the editor.
+1.
Keeping lines to 80 characters makes it easier to understand *individual
lines*.
But allowing fewer, longer lines makes it easier to perceive *the code
structure as a whole*.
I want to illustrate this with a bit of actual code from one of my
programs. It uses lines up to 102 characters including 12-space
indentation. Oh, and it breaks another Python shibboleth - not having
multiple statements on one line. Apologies, it looks horrible in an
e-mail with the spacing all mucked up, so I have put it in an attachment
(a plain ASCII file).
IMHO this is a piece of well-written, self-documenting code that I would
find much harder to grok or look things up in if were laid out
differently. YMMV . In fact if it were laid out differently, I would
want to document it, and the documentation would be a table that looks
very much like the code "as is".
Rob Cliffe
if ch=='B' :
self.ToggleBackgroundColour(event)
elif ch=='C' :
self.ChangeCommonChars (event); return
elif ch=='D' and len(Areas) > 1 : self.DeleteArea
(event); return
elif ch=='F' and __debug__ : self.Info
(event); return
elif ch=='I' :
self.ChangeImagesToScroll (event); return
elif ch=='J' and self.NUMBER_OF_IMAGES==1 :
self.ChangeJustification (event); return
elif ch=='L' :
self.ToggleShowLabels (event)
elif ch=='M' and MaxNumberOfImages > 1 :
self.ChangeNumberOfImages (event)
elif ch=='N' and CanZapImage : self.Rename
(event)
elif ch=='R' and not(area.Dynamic|area.IsTour): self.ToggleRandom
(event,1)
elif ch=='S' : self.ToggleSets
(event,1)
elif ch=='T' : self.ChangeTimer
(event); return
elif ch=='U' and not(area.Dynamic|area.Random): self.ToggleIsTour
(event,1)
elif ch=='V' and OnAnImage :
self.WindowsPhotoViewer (event); return
elif ch=='W' : self.ToggleWrap
(event,1)
elif ch=='Y' and not(area.Random|area.IsTour) : self.ToggleDynamic
(event,1)
elif ch=='Z' and CanZapImage : self.Zap
(event)
elif ch=='A' and not(area.Dynamic|area.IsTour): self.ToggleRandom
(event,1)
# Alt-R doesn't always work for some reason, so we give Alt-A
as an alternative
else:
event.Skip()
# Note:
# For keys that (normally) cause an immediate change with no user
interaction (e.g. ToggleXXX),
# we do not do a 'return' here, so that area.ResumeTimer() will
be called at the end of this function.
# For keys that cause user interaction (e.g. popping up a form),
# we 'return' here, so that the timer will not be restarted yet.
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/python-ideas@python.org/message/JSCI223RQWSOABLTQ7OKEBQMOHJGUXBO/
Code of Conduct: http://python.org/psf/codeofconduct/