On May 28, 9:59 ¨Βν¬ ΓαμεΓμαυσεΌφιλλ®®®ΐηναιμ®γονχςοτεΊ > If the end is misaligned, it will cause a warning on ruby 1.9. Does it? That's pretty cool. > I think > the language is already moving in the direction of encouraging you to > properly indent everything anyway. > We've had changes to ruby before which break old code before, and I > think it's ok for this to be one too. Well... keep in mind that this would break a _lot_ of code. One of the things I had my script do (the one which computed ~16% non-blank lines were nothing but 'end') was try to figure out how many instances there were of 'end' not being aligned with the block it began. The answer was: relatively few, in the single-digit percentages, but that still worked out to several hundred instances. > Always maintaining > backwards compatibility is one of the things that makes systems with a > long history kludgy, and I'm glad ruby doesn't have that hangup. I completely agree with you in principle, and I'm generally in favor of breaking with the past when such a break is warranted. But listening to the objections people have raised in this thread, for a lot of people it boils down to "I don't like it." Well, there's no accounting for taste, and while I happen to feel that many of these people would change their tune once they've had a little experience with syntactic indentation, I think the best way to assuage their doubts would be for any change to have absolutely no impact on existing code, with a clear distinction between old-style syntax and new-style indentation-aware syntax. Besides, I kind of like the look of the colon as a block-start delimiter. It emphasizes the separation between the loop or conditional or method call and the block it controls. > Let's look at an example: > > if foo: new-style indentation block > ¨Βθιμε βα£ομδστωμε εξδεβμογ> baz > ¨Βξδ > > Maybe you have something else in mind, idunno. To me, this just looks > totally weird, and I wouldn't expect it to work at all. Yep, looks totally weird to me too. Okay, so: no end-delimited blocks nested inside indentation-delimited blocks. Once you're inside a scope where the parser is paying attention to your indentation, it will continue paying attention to your indendation until you leave that scope.