On 2016-04-19 14:47, Marko Rauhamaa wrote: > We need a PEP to distinguish also between: > - typefaces (Times New Roman vs Garamond) > - weights (bold vs thin) > - serifs (with or without) > - sizes (8pt vs 11pt) > - colors (goldenrod vs maroon)
Like HTML & CSS, the goal should be to separate the code (HTML) from its presentation (how it appears in your editor). It's why I've taken to using formulaic indenting (one or two indents depending on whether the continued line starts an indented block) rather than trying to align with something in a prior line. It drives me nuts when I globally change the spelling of something (and thus the length of some variable name) and then feel obligated to re-indent my continuations to get them to line back up with some arbitrary paren. Compare def do_something(param1, param2, param3, ): implementation() with just using def do_something(param1, param2, param3, ): implementation() (or, if you want your params to line up def do_something( param1, param2, param3, ): implementation() which is usually how I end up splitting them) When "do_something" changes to "frobify", I don't feel the need to go play with indentation with my scheme. Likewise, I detest aligning comments and almost always prefer to put them in a neighboring line if there's continuation: foo = bar * 3 + 2 # we have 3 bars # plus one for margin on either side changing the length of the code portion (say, s/bar/inner_width/) will require re-indenting (and possibly re-flowing) the comments. It's even worse if the comment flows to an unrelated line foo = bar * 3 + 2 # we have 3 bars result = apply(bar) # plus one for margin on either side Now, if either line of *code* changes, it requires rejiggering the comment indentation. If the comment gets moved above, it's no longer an issue: # we have 3 bars plus one for margin on either side foo = bar * 3 + 2 result = apply(bar) I strongly advocate from keeping the content (the code and its AST) separate from its presentation. -tkc -- https://mail.python.org/mailman/listinfo/python-list