7 ms·
Having picked up python as my first programming language earlier this year I am always really surprised to hear how so many programmers hate the indentation. I
by grovulent 16y ago
Having picked up python as my first programming language earlier this year I am always really surprised to hear how so many programmers hate the indentation.
I don't ever have indentation errors - or if I do, they aren't ever of a sort that pyscripter can't spot them.
Must be a what-you're-used-to thing...
- FraaJad 16y ago"So the danger to paste stuff at the wrong indent level is far less than in Python. " I would argue that this is actually a feature of the language. This "danger" actually forces the programmer to read through the code he is pasting by indenting. Also, how many pairs of source code fragments share the same variable names? This argument is quite shallow.
- yesimahuman 16y agoThe biggest error I have with pasting is that the pasted code uses spaces where I use tabs. They look like the same indent level but they are not. A good old ggVG= solves that though in vim
- hasenj 16y agogg=G also works; one less character
- chunkbot 16y agoI use Emacs, and I can't remember the last time I manually indented a line of code. Most of my non-web programming is in Erlang, Lisp, and C. My editor does the indentation for me.
- Daishiman 16y ago:retab is your friend.
- jeberle 16y ago:set expandtab | retab
- stcredzero 16y agoThis "danger" actually forces the programmer to read through the code he is pasting by indenting. Read through, or partly rewrite? More of the latter than the former, IMO. If you're only reading then 4 spaces is often indistinguishable from a tab. Sounds like the "block indenting" style in Smalltalk. Kent Beck favored it because it made bad Smalltalk code look bad. (Hard to read.) I like the idea, but in reality, it's too idealistic and not nearly practical enough.
- joe_the_user 16y agoI built a fairly large app with Python years ago. I was neither ecstatic with then nor did I hate it. I didn't love or hate the whitespace thing then. I managed everything so it just worked. A couple of years ago, however, I tried to help a friend trace an error in code on an active server. It came down to rewriting the code so that it looked exactly the same as before but somehow had the right whitespace instead of the wrong whitespace. That experience left me with the strong belief that Python's whitespace approach is totally wrong and broken. Things that break in ways that are difficult to understand I can accept. Things that break in ways that are impossible to understand as such are unacceptable. Yes, the whitespace thing can always be fixed - except on the random server where it desperately needs fixing. Systems where symbols that are meaningful don't appear are broken - it's not that a given problem with said symbol will appear often. It's how extreme the problem is when it does appear.
- cdavid 16y agoI have programmed in python for almost 5 years, with medium-large (several 100kloc) projects, this has never ever been an issue. If you mix tabs/space, you can have issue, but that's nothing that any decent text editor cannot fix/highlight.
- grovulent 16y agoI've never experienced anything like this - nor do I really understand what you mean (and nor could I without actually seeing some code). Given this, it's impossible for me to understand your claim that the white space approach is 'totally wrong or broken'. The leap from vague example (with a sample size of one) to all encompassing abstraction is too great. Having said that, I'm keen to ensure that I don't pursue the wrong path. I picked python because many people I respected said it was a good 'jam for beginners'. But that can't be true if it's 'totally wrong and broken'. Care to pony up with a proper account of your position?
- aaronblohowiak 16y agoIt was probably a tabs vs spaces issue, leading to an oddity of a block of code at the wrong depth. The fix is to simply accept only tabs OR spaces as valid whitespace... then again, this is one of the things that annoys me about make, but I digress..
- silentbicycle 16y agoI don't think the indentation is a big deal. It's just a surface detail that people new to the language tend to bitch about, like all of those parens in Lisp, ; vs . in Erlang, indexing from 1 in Lua, + vs +. in OCaml, etc. Once you're using the language idiomatically, it isn't a big deal. Good semantics beat good syntax any day.
- elai 16y agoThe indentation issue is annoying when you use separate editors to edit the code and they have different indentation standards (2 space-tabs, 4-space tabs, tabstop tabs, etc). Also when you copy/paste code from another source (a website lets say) or download some other library, start editing it with your editor not realizing the tabs are different while your editing and then when trying to run it run into an indentation error. "Fix tabs" doesn't always work and it's not always evident how bad it is.