Not really sure whether S-expressions or Python indentation-based scoping get more hate...

anti-idpol action@programming.dev to Programmer Humor@programming.dev – 259 points –

...from people who seem to refuse to install paredit or coloring plugins for either? ps lisp syntax ftw, it's a feature!

76

You are viewing a single comment

Who hates s-expressions? They're elegant as fuck...

Python, on the other hand, deserves all the hate it gets for making whitespace syntactically significant - I even prefer Go's hamfisted go fmt approach to a forced syntax to python's bullshit.

I dgaf about indices starting at 0 or 1, I can deal with case-insensitivity, but syntactically significant whitespace drives me up the wall.

What's so hard to understand about it? It's how you should format your code anyway. Only it's enforced.

It’s quite often I have to second guess whether the code is correctly intended or not. Is this line supposed to be part of this if block or should I remove that extra indentation? It’s not always entirely obvious. Extra troublesome during refactors.

In other languages it’s always obvious when a line is incorrectly indented.

sometimes, a script needs to be edited in a plain text editor, without having access to an lsp or any other dev tools.

Yeah, it is a completely nonsensical thing to complain about. I hate to go around matching curly brackets like some braindead nematode. If you use more than two levels you should rewrite the code in most cases... just use advanced indexing and vectorization (by pythonic ;p). Or you can loop around like a freaking peasent in your inefficient garbage code that nobody can read because it is cluttered with comments explaining basic stuff. There is a reason Python is popular... and it is not because no one can read it. Same goes for dynamic typing - it is a blessing for most tasks. I do not want to explain to the machine what every temporary variables means...

No it’s how Python wants you to format. Many times I want to separate two logical sections in one function and can’t coz Python go crazy

Can you give a concrete example? Because I don't understand what you mean.

Just put them in separate functions. If you have too many levels of indent, your code is convoluted. Sticking to the line length limit sometimes forces you to write more lines than you'd like to. But it makes everything so much more readable that it's 100% worth the trade off

What if the logic is more readable in one function?

I use whitespace to make my code more legible, python forces more whitespace consistency but it comes at the cost of limiting the legibility.

Are you saying that you want to separate your two logical sections by having different levels of indentation and that’s what makes Python go crazy?

You take that back, python is my homie!

In all seriousness, I freely admit that I'm biased towards python because it was my first language and remains my favorite. I use an IDE for anything but the simplest scripts, so I've very rarely had any issues with spacing.

I agree but still you can oftentimes expect that the average person's initial reaction to be somehow reluctant... until they understand it. it's like those foods and drinks that you might need to try a couple times before you start enjoying them.

Oh, definitely, they can look bizarre and confusing before you understand them.

In 20 years of using Python, I never had one issue with the indentation. Use spaces all the time, use PyCharm, and that’s it.

Whitespace is statistically insignificant in Python.