News for hackers. Stuff that matters.
Re:Avoid Else, Return Early (2013) by kabdib on Monday March 26, 2018 @09:52AM (#16678846)
That's fine -- the Python folks have their own share of religious wars (starting with: tabs, or spaces?) :-)
Re:Avoid Else, Return Early (2013) by tom_mellior on Monday March 26, 2018 @10:25AM (#16679116)
Do they? All the Python folks I've ever seen express an opinion on style have said "follow PEP 8".

Unsurprisingly, PEP 8 does have a rule for tabs vs. spaces: https://www.python.org/dev/peps/pep-0008/#tabs-or-spaces (spaces, of course)

Re:Avoid Else, Return Early (2013) by sireat on Monday March 26, 2018 @02:17PM (#16681125)
I love Python but as a long time C programmer I can't understand the preference for spaces in PEP 8.

Tabs are semantic and only take one key press for movement back and forth and to delete.

If you see 1 tab you know it meant one indentation level. With spaces you have to think.

Plus with spaces you are stuck with 2/4/8 spacing(unless you reformat), with tabs you can configure your editor to your preferences.

Re:Avoid Else, Return Early (2013) by slaman on Monday March 26, 2018 @04:01PM (#16681996)
> with tabs you can configure your editor to your preferences.

Configure 1 tab to be 4 spaces.

Sometimes it's easier to go with the flow. I like tabs for the reasons you mentioned, but fixed-width spaces are a bit better for some reasons too. IDE's can do the heavy lifting of re-formatting indentation levels and converting tabs to spaces for me, and it means if I cat a file on a remote server regardless of the bash tab width settings or if I'm in your code or the stdlib it will all make sense.

Re:Avoid Else, Return Early (2013) by tom_mellior on Tuesday March 27, 2018 @04:44AM (#16686502)
> with tabs you can configure your editor to your preferences

Except that you can't because people using tabs will invariably start mixing tabs and spaces because they can't separate indentation from layout. So the code will be messed up unless you configure your editor to someone else's preferences. Also, I'm sure there is some obscure git setting to de-uglify tab users' diffs, but I'd rather not find out.

Re:Avoid Else, Return Early (2013) by e12e on Monday March 26, 2018 @05:14PM (#16682661)
Tabs are semantic. But, when you start down that route, why not dictate record-separotor as replacement for closing brace/block etc?
Re:Avoid Else, Return Early (2013) by pleasecalllater on Monday March 26, 2018 @02:25PM (#16681199)
The PEP8 myth is quite funny. Almost all people I've met who were repeating "follow the pep8" like a mantra, have never read it. The main idea behind pep8 is: be consistent... however even the python library is not consistent. And it looks like no one cares. There was a great moment to make it nice and consistent - creating the python3, where many incompatible changes were introduced. Instead, the mess is like it was, and people repeat the mantra "follow pep8".

Before you say that I'm crazy... please, go and read pep8.

Re:Avoid Else, Return Early (2013) by tom_mellior on Tuesday March 27, 2018 @04:45AM (#16686503)
> please, go and read pep8

OK. What am I looking for?

Re:Avoid Else, Return Early (2013) by jwilk on Monday March 26, 2018 @11:07AM (#16679444)
As a data point, I don't follow (all of) PEP-8.

But tabs vs. spaces is indeed a bad analogy, because of course it's 4 spaces. ;-P

pycodestyle, the Python style checker, has a few checks disabled by default (because there's no consensus they're good ideas), and even some mutually exclusive ones:

https://pycodestyle.readthedocs.io/en/latest/intro.html#erro...

Re:Avoid Else, Return Early (2013) by gambiting on Monday March 26, 2018 @10:06AM (#16678963)
As a C++ programmer I can assure you, I know plenty of individuals with very strong opinions on tabs vs spaces debate.
Re:Avoid Else, Return Early (2013) by drawkbox on Monday March 26, 2018 @10:48AM (#16679276)
And spaces sub factions/opinions on 2 vs 4 spaces.

The correct answer is whatever the project is already using, unless it is new and then you luckily get to choose.

Re:Avoid Else, Return Early (2013) by bunderbunder on Monday March 26, 2018 @10:39AM (#16679205)
These religious wars can largely be swept away with one simple, practical question: What is going to result in less noise in pull requests and the commit history, given that nowadays everyone uses a different editor with different configuration defaults, and is going to result in less time in pull requests squabbling over these kinds of formatting issues, given that nowadays everyone uses a different editor with different configuration defaults?

Tabs vs. Spaces has a fairly good answer that flows out of this way of looking at things. There is a counter-argument to that answer, but it is invalidated if you move toward conventions for argument lists and chained method calls that are also designed to limit noise in the source control system.

IMO, the argument about bracing also has a practical, non-religious answer once you start looking at your coding conventions this way.

Re:Avoid Else, Return Early (2013) by TomMarius on Monday March 26, 2018 @10:06AM (#16678959)
Tabs, everyone can configure them however they want. :-)
Re:Avoid Else, Return Early (2013) by RobertRoberts on Monday March 26, 2018 @10:53AM (#16679321)
I hate being able to configure stuff, I want other people to boss me around from anywhere in the world! Their opinion matters on my computer!
[dead]
Re:Avoid Else, Return Early (2013) by YSFEJ4SWJUVU6 on Monday March 26, 2018 @12:08PM (#16679903)
Why would you ever half-indent a block? For alignment you should of course use spaces (for whole alignment, not just the end, to be very clear).
Re:Avoid Else, Return Early (2013) by kevin_thibedeau on Monday March 26, 2018 @02:14PM (#16681095)
The war is over. Py3 doesn't allow mixed spaces and tabs in the same file. You choose your side and never get to skirmish with the other one.
Re:Avoid Else, Return Early (2013) by jjgreen on Monday March 26, 2018 @11:21AM (#16679544)
Both!