I posted about this last time the python wars were on
there should be 2 concepts that are never co-mingled. there is 'define a block' for the computer and 'define a block' for humans.
python's mistake was that they combined them. what we SEE (and makes sense, based on our 2d vision/brain abilities) needs to be something to show us, quickly, what a block is. indenting works and that's fine.
what the computer PARSES does not need visual 2d help. the computer parser needs to be so robust that it is immune to our petty 'what we SEE' things. for this, we use brackets or begin/end blocks or what the hell bash uses (never liked it, but its also a block structure that is immune to spaces, more or less). and you can post code that is messed up by good old html and 'webmasters' and then extract it via a download, compile it and it will work.
with python and other misguided languages, a simple mistaken space format change - which often happens when posting code to forums - will totally blow your code reliability. it MAY or may NOT work. even if it works, is it actually correct? yeah, that can be pushed left. and that, too. it still 'works' but is it RIGHT?
sigh. this is fucked up, guys. it happens enough that we need to learn our lesson, say 'nice try' but it did NOT work out.
we need to keep the computer parser block stuff separated from our 'presentation layer' that we, humans, use to create and edit and read source code.
give me brace-based c code, totally mess up the spacing and I can run it thru a beautifier (for me, just plain emacs) and I'll SEE what you meant by your code. just cannot do that with the python style languages.
please, language creators of the next generation: learn from this. guido is a smart guy, but he's not perfect and he was 100% wrong when he decided to COMBINE those 2 concepts. good try, pat on the back and all that, but admit it didn't work out and lets move on, already!