> [...] I question the balance of effort and benefit. > Since most code around does not use the new syntax, you will have to > support the old syntax as well. As long as it is not mandatory only > people benefit that use it. OTOH, there is additional effort for > backporting new code to projects that only use an old Ruby > interpreter. The backporting effort for 99% of the cases: code.gsub /end~(class| module|def|begin|if|unless|while|until|for|do|case)/, 'end' > Given that we do not have this feature today and most > people seem to be able to write code that gets the nesting right I > wonder what the real benefit of this is given that there will be > development effort for the interpreter, test cases, documentation etc. Of course, you are able to write code with the right nesting, else it wouldn't run ;). That doesn't mean, that it is easy to write or read. > Uglyness was really just a side aspect although I agree I should have > made this more clear. Somehow I must have assumed that the other > points are obvious. :-) Is it really that ugly? I want to emphasize that the additions would be optional. I really think of using it only, when there are three ore more consecutive ends. But then, it is really helpful (please also see the example at bottom). > [...] Even such a > small change can cause significant other work to be done. That is true :/ > If you want help figuring out how to do this, I'll be glad to give you > advice, tho you'll have to write it. Doing something like this the > right way is going to be quite difficult unless you know where to > start, and even after that will be fairly tricky. Unless you're an > expert on parsing ruby, you need the assistance of someone (like me) > who is. Thank you for this nice offer. I would gladly take it :) [but as I said, I have much to to do, so it would be possible at the earliest in about a month]. But we still have different opinions about whether the syntax would involve punctuation. I think with it, the code is better readable in cases like this: def test while 1 puts (1..9).each_slice(3).map do |slice| sum = slice.inject do |acc, ele| acc + ele end if sum > 6 42 else 99 end~if end~do.join ',' end~while end