You are viewing a single thread.
View all comments
39 points
*

Yeah but due to the extra indentation in the second image, the python part doesn’t work.

permalink
report
reply
6 points

Sorry, are we talking about spaces or tabs? I want to comment on same indentation to not break the thread

permalink
report
parent
reply
23 points
*
Deleted by creator
permalink
report
parent
reply
3 points

I once wrote a bot in python tdownloaded a ical file, looked for chances and informed me if found. The space indentation made it hell to follow the code in my opinion.

permalink
report
parent
reply
4 points
*

Just curious, what about spaces made it hard? What language would have been easier? In curly brace languages, 99% of the time, a curly brace is followed by a line break and an indent. Python is similar except it’s typically a colon, line break, then indent.

What I have learned is: If the code is indented too deeply, it’s a code problem, not the language.

Torvalds infamously wrote:

“… if you need more than 3 levels of indentation, you’re screwed anyway, and should fix your program.”

permalink
report
parent
reply
1 point

I don’t get it because my phyton code is indented exactly the same as all my other code. Each block of code one tab in/out, how else would you do it?

permalink
report
parent
reply
6 points

its just not as clear especially when u are indenting stuff inside stuff with a bunch of conditions everywhere its hard to read just from indentation, and with the () or {} u can just click on it and most text editors will show u from where to where its going.

permalink
report
parent
reply
10 points

especially when u are indenting stuff inside stuff with a bunch of conditions everywhere

That’s an anti pattern in basically every language though. The fix is to simplify those conditionals, not use a curly-bracketed language.

permalink
report
parent
reply
10 points

I mainly found it annoying while writing code, because the lack of braces makes it difficult to tell when a scope ends. Plenty times, I’ve wanted to add something to the end of a for-loop, but had too little indentation.
Usually this means I get a runtime error, because it can’t access some variable from the loop-scope. But worst case, it only executes once after the loop and I don’t notice the problem.

Another big thing I miss when not having explicit braces, is opening up new/anonymous scopes to isolate variables, which helps prevent mistakes down the line + reduces code complexity.

For example, this is a thing I do quite regularly:

let client = {
    let client = new Client()

    let timeout = config.load("client.timeout")
    client.set_timeout(timeout)

    client //implicit return value of this scope when evaluated as an expression
}

client.request_something()

It allows me to visually group the initialization code for the client and I don’t need to have the timeout variable in scope afterwards. Depending on the language, you can also have the client variable mutable inside the scope and then immutable outside.

Yes, this could be pulled out as a function to achieve something similar, but in my experience people (including me) will often just not do that, because it’s only the timeout variable or whatever.

permalink
report
parent
reply
1 point

wanted to add something to the end of a for-loop, but had too little indentation

To address this, I prefer reducing length & depth of nested code, so the for/while is rarely ever not visible along with everything inside it. Others have success with editors that draw indentation lines.

opening up new/anonymous scopes

I occasionally use Python nested functions for this purpose

permalink
report
parent
reply
3 points
*
Deleted by creator
permalink
report
parent
reply
2 points

I have never had any problems with it either but don’t get me started on YAML.

permalink
report
parent
reply
3 points

Try finding a bug related to indentation in a 15 year old python codebase by the worst programmers on the planet. You won’t think that there’s no issues with it after that point. In any other language you literally just reformat and you’ll see the bug. That’s not the case in Python.

permalink
report
parent
reply
3 points

I’ve been coding around 25 years and got my start in perl. I absolutely hated python when I first used it. I use it all the time now. I still prefer my curly braces but I don’t have any trouble with python or mind the whitespace anymore. I just run it through ruff every save. I do the same with go everything goes through gofumpt. I really think a lot of it is a generational thing. Older people are just used to curly brackets.

I do get peoples complaints about the packaging. Unless you’re a dev already it’s a bit extra to deal with shuffling virtual environments because the system python environments almost never work out of the box, at least in the last few distros I’ve used. Once I adjusted though it’s no problem. I run half my dev stuff in toolboxes with their own environment anyway.

permalink
report
parent
reply

Programmer Humor

!programmerhumor@lemmy.ml

Create post

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

  • Posts must be relevant to programming, programmers, or computer science.
  • No NSFW content.
  • Jokes must be in good taste. No hate speech, bigotry, etc.

Community stats

  • 5.4K

    Monthly active users

  • 886

    Posts

  • 9K

    Comments

Community moderators