On May 28, 2009, at 9:39 AM, Caleb C. wrote:
I feel that I did address this point adequately already, so it’s
annoying to see both you and Joshua B. bring it up again,
without even acknowledging that I had done so. Perhaps you don’t agree
with my points, but as you haven’t tried to rebut them, I think it
more likely that you did not read what I had to say at all.
I did not intend to offend by not explicitly calling you out. I did
read that you had worked around this issue by allowing "end"s to be
optional, and I had assumed that most others following this (now
admittedly very long) thread would have as well. Again, I did not
imply that tackling this issue was impossible (despite my poor choice
of example script name). Indeed, I think I even showed how it would
still be possible to do this even without “end”.
I fear I did not make my point clearly enough: I prefer do…end to
significant-whitespace. I think this is a commonly held preference,
but by no means globally held. However, mixing and matching seems, to
me, like a BAD idea. Why?
Well, if you’re not going to enforce proper indenting when using
do…end, what happens when someone takes working, but poorly
formated, code from a do…end block and copy-pastes it into a block
using indentation instead? You now have code that works in one place
but not in the other. That is, with optional do…end/significant-
whitespace, code that works in one part of a source file might NOT
work in a different part, and the reason for this will be non-obvious.
How about this compromise: Fork Ruby, enforce significant-whitespace,
and instead of writing a preprocessor that converts significant-
whitespace into do…end form, write it to go the other way 'round.
All (or most) of the gems/libraries out there would still be
available, but now you could have a countable number of “Swuby” users
to show the superiority of significant-whitespace.
- Josh