Maybe it was just a very special try of being funny?
Whoever wrote it can clear this up easily by stating what his intention
was.
Personally, my experience was that sarcasm or irony often does not bode
well in written text. Additionally, often people assume that something
is insulting or otherwise harmful against them - written text is often
limited in expressing human *intentions*. Or, some people have a hard
time expressing their thoughts.
But anyway, let's jump to the proposal again (and we can see that this
generated quite a stir... huge huge huge here hehe.)
I dont want to write too much, so I try to be short and concise:
- Personally, i think it *would* be nice to omit "end" and have my code
still work. I do indent my code already with two spaces all the time for
every meaningful code block anyway. Those "end's" aren't really helpful
for my eyes.
- I do however not have a serious problem with that. It would be nice,
but it is nothing where I would say "ruby sucks" because I cant omit
ends. To me, it is not really important.
- As far as language design is concerned, I personally think it is not
elegant if a parser bothers too much about meaningful indent. Instead, I
think a parser should try to capture the INTENT of the programmer, and
it is stupid if a parser stops working because the INDENT was wrong. It
just strikes me as inelegant - and keep in mind that I said, I wouldn't
mind to omit end at all.
I found it silly to not be able to just paste code into the interactive
python shell, and have it work. It complained about whitespace crap, and
I found this insulting. I think the best way would be for a parser who
could allow for both, with "end" being the default, but a switch which
could allow for a shorter ruby-like syntax where one can omit "end".
- I think python has one solid argument going for it (and please also
keep in mind that I hate other python choices, especially the __foo__():
part. That includes the ':' in there as well) - whitespace and
homogeneous structure would be something _I_ would appreciate. I love
ruby's flexibility, but I would also love to have something
super-concise AND homogeneous. And more readable, IMHO, too.
- As written above, I have one problem with the python whitespace. And
this is the ':' part. I hate that.
'if foo:'
I do NOT want to get rid of "end" in ruby, if that means introducing
something like ':'. The ':' is not beautiful at all, and thus it would
not be a real improvement for me, if I have to clutter my code with ':'.
- I do not think that you applied the DRY statement correctly, because
DRY applies for code logic primarily, not for satisfying a parser. And
the "end" is there because of the parser.
Programmers shouldn't be using freakin' tabs anyway,
and if they are, they _definitely_ shouldn't be mixing them with spaces.
Personally I used to like tabs, and reasoned that people could set their
tabs width to whatever they like. But then I realized that i do comment
my own code a lot, and suddenly I was mixing tabs with spaces.
I stopped at that very day, and used 2 spaces (2, because I usually like
to have 80 chars per line, and not more. I am that old, really. I like
80 chars per line, even though i sometimes use more than that - i think
it is a good general rule of thumb to cut down below 80 chars / line,
and with 4 spaces i just hit that threshold sooner)
Anyway, I think this is all mostly just happy discussing here. Ruby is
the way it is, and to change something as fundamental as indent is way
too difficult and probably has no huge gain whatsoever. Didn't Guido
once say that, if he could switch one thing in python, he would no
longer use significant whitespace?