Thanks for the reply!
You're right that code rewritten like your example would lead to a
syntax error, but this unusual case is easily avoided.
My intention is to make the code more readable on the printed page,
simple word processor or anywhere other than a dedicated Ruby
development environment.
It's obviously a matter of taste, but I think the eye can use visual
clues to "parse" the code into it's nested parts. You can tell at a
glance which "class", "def", "if","elsif","else" , etc etc goes with
which "end", which block ( of contiguous code, not necessarily a "Ruby"
block )of code is nested in what other block, and where, that every
block is paired with one "end", and that there are no extra
"ends"s,"else"s etc etc. This leaves at least a little more brain power
to process the meaning of each easily picked out block, and how it
relates to its containing blocks.
Without these lines, the code on the page might be cleaner, but the code
in your brain is messier, because it's often ( actually almost always )
difficult to tell the above things.
As far as mixing tabs and spaces, this is of course already a problem.
But all that's needed is for the code writer to use the same combination
of spaces and tabs up and down between each "vertical line". To make
anything work, common sense must be used, and reasonable conventions
must be adopted.
The only case where existing code would be broken would be in the rare
case such as you gave above. It would be trivial to write a program
which would automatically alter any code slightly to append any line
beginning with a vertical line to the previous line, admittedly a pain,
but there are always pros and cons to every suggestion which need to be
weighed and it needs to be decided which outweighs which. I think the
insights into the code gained visually at a glance outweigh these
inconveniences.
That's my opinion anyway.
Thanks again for responding!
Jari Williamsson wrote:
···
Alan Eden wrote:
> > @names.each do |name|
> > > puts "Hello #{name}!"
> > end
Rewriting like this would then result in a syntax error, following your
suggestion:
@names.each do
>name> puts "Hello #{name}!"
end
And what if tabs and whitespaces are mixed in the code and different tab
settings are used on different machines? This produces hard-to-read code
even today, and your suggestion would make the code unreadable.
I copied this example from Ruby in twenty minutes, page 4. Look at the
original and look at the above. Isn't it much clearer?
No, I think it clutters the code, I want Ruby code to be clean.
Or is there a
good reason why this isn't done that I'm missing?
Apart from breaking existing code and editors, this doesn't add anything
to the Ruby language. It's in the same league as syntax highlighting. If
you need good formatting, use text a source code formatter or (more
fun!) build one yourself.
Best regards,
Jari Williamsson
--
Posted via http://www.ruby-forum.com/\.