this post was submitted on 01 Sep 2023
337 points (96.2% liked)

Programming

17503 readers
8 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 21 points 1 year ago (4 children)

Python is stupid. Using non printable characters as anything other than token separation is just asking for trouble.

[–] [email protected] 8 points 1 year ago (1 children)

The space is a printable character.

What trouble have you gotten into due to this?

[–] [email protected] 6 points 1 year ago (1 children)

Just copy some code over into a not properly configured vim.

People seem to forget that not everything is a fully configured development environment working locally on your laptop which attempts to fix the issues introduced by that design decision.

[–] [email protected] 0 points 1 year ago (1 children)

I use (Neo)Vim and never had a problem with indentation. When pasting code, I can easily indent it to any level I want with the > operator.

[–] [email protected] 4 points 1 year ago

Which actually breaks the code if you don't have sw configured to the same width as used by the code.

If anything that proves my point.

[–] [email protected] 4 points 1 year ago (2 children)

Add YAML to that for the same reason.

[–] [email protected] 1 points 1 year ago

Actually I did below! You are absolutely correct.

[–] [email protected] 3 points 1 year ago (1 children)

Just use a modern editor and you'll never have this problem

[–] [email protected] 17 points 1 year ago (3 children)

You can work around most issues in any language with the right tools. That's not the point.

If a design decision introduced a whole new class of errors it is probably just bad design.

[–] [email protected] 2 points 1 year ago

It's a choice, do you want to deal with brackets or indents? Pick one

[–] [email protected] 2 points 1 year ago (1 children)

It also greatly improved readability of the language. Since switching to the standard of using 4-space tabs, I've not had any problems except when dredging up someone's old Python 2 code.

[–] [email protected] 7 points 1 year ago (1 children)

You can create some really ugly code in spite of the forced indentation in python. Indentation does not really help here at all. In all languages you can correctly or incorrectly format things. A code formatter strictly applying a coding standard helps far more here than indents vs bracers. Take a look at black it takes the pep8 standards and adds more strict things on top making code look a lot more consistent and thus makes it easier to read.

And all formatters will indent code consistently, so having it as part of the language parser does not really help improve readability at all. And even without a formatter everyone I know will still correctly indent their code no matter the language used. But sometimes forcing new lines to have a meaning does make things worst - just look at pythons lambdas which have to be a single line.

[–] [email protected] 1 points 1 year ago (2 children)

Indentations does not really help readability that much in case of really, really, long code, and in some cases, a code can execute without with unexpected result because of one single indentation being off. Both of these why I like things like curly braces/brackets and terminators like endif/fi/done/end/etc. But, at the end of the day, if there's a readability problem, then that's a sign that the code needs to be reworked on.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago) (1 children)

Oh I think indentation helps a ton with readability. Even for bad, long or otherwise hard to read code - it would be way, way worst with no or wrong indentation. Correct indentation helps a lot. It is not the only thing that can be done to improve readability but it is the first and simplest fix you can apply to a code base. So a language enforcing it with syntax does not matter when even basic text editors can correctly and automatically indent your code.

Though one thing I do like about bracers is I can be lazy with formatting and let my formatter sort it out for me on save. With a white space sensitive language you need to get it correct from the start or else the program just does the wrong thing.

[–] [email protected] 1 points 1 year ago

I didn't say it doesn't help. But, it alone does not really help for bad and long code, but you are correct in that it would be worse with the wrong indentation. Like you pointed out, the program could do the wrong thing if there is a wrong indentation where indentation matters which is one of my issue with something like Python. And languages with explicit exit scope tend to not have that issue while adding to the benefit of making longer code readable. Where white-space sensitive languages really shine on in my opinion are small codes, and that's where I think of using Python.

[–] [email protected] 1 points 1 year ago (1 children)

Indentation can be wrong, but braces can't?

[–] [email protected] 1 points 1 year ago

Braces too can be wrong. But, one is less likely to get it wrong. Modern editors often allows one to highlight matching braces immediately after selection, and rainbow braces(if available) makes it clear on the nest level.

[–] [email protected] 3 points 1 year ago (2 children)

Is Haskell, YAML, or Sass also stupid? 🤔

[–] [email protected] 7 points 1 year ago

Absolutely yes. JSON and SCSS > YML and SASS

[–] [email protected] 4 points 1 year ago

YAML can die in a fire, thanks