This is a syntax change rather than a feature change and if it results in some ambiguity then I'd appreciate it if someone could explain why, but with if/for/while(etc) blocks I don't understand why they don't ditch the trailing ":" character and instead use whitespace, e.g.
The : doesn't seem to add anything for the compiler, and in the rare case that you want to do it on the same line then you could use ";" which is more consistant anyway (you can already put multiple lines of Python on a single line with ";"). E.g.
if True; pass
So is there anything wrong about this approach? I'm not so much interested in whether it's impractical to change legacy code (I agree but that could be said of many syntactic changes) and I was more wondering whether there are reasons why Python shouldn't have had that syntax since day one.