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

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.

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?

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...