In Python blocks have to be indented just because the indentation level defines the logic. In C/C++/Java there are { and } while in Ruby there is begin and end. Of course indenting is helpful. Just like syntax coloring in editor.
In Ruby can do whatever you want with the indentation. That’s not a problem. Every good editor can fix the code layout due to some rules. Normally I use VIM for all those scripting languages, for programming in Ruby and Python too. In VIM after opening any file I can do the magic command:
<ESC>ggVG=
and the code is nicely intended. Of course that doesn’t work in Python as changing the spaces at the beginning of each line usually change the program logic.
Let’s take this simple code in Ruby (I know, indentation is quite bad):
class Example
def test?
puts "YEA"
end
end
x = Example.new
puts "Is this a test?"
x.test?
That works and running that just prints two lines on console:
$ ruby1.8 x.rb Is this a test? YEA
Ruby1.9 works too:
$ ruby1.9 x.rb Is this a test? YEA
For Ruby 1.9 there is magical parameter -w. Using that can be a little bit surprising:
$ ruby1.9 -w x.rb ruby1.9: warning: mismatched indentations: line 4:'def' and line 6:'end' ruby1.9: warning: mismatched indentations: line 3:'class' and line 7:'end' Is this a test? YEA
Using that special nice command in VIM changed the code to this:
class Example
def test?
puts "YEA"
end
end
x = Example.new
puts "Is this a test?"
x.test?
And now the output is without any errors:
$ ruby1.9 -w x.rb Is this a test? YEA
For me this is quite surprising, I cannot just wait to have another switch: –treat-all-warnings-as-error so you couldn’t compile the Ruby code if there is no correct indentation
Related posts:
- What I Don’t Like About Python Python – maybe you know – is a computer language...
- Naming Convention aka PHP vs Python Is Python really better than PHP? I doubt, and in...
- Why Ruby on Rails Migrations Don’t Work Ruby on Rails Migrations Migrations in Ruby on Rails provide...
- Ruby, Rails… AWESOME I really don’t get it, why almost each post or...
- Datamapper and Ruby On Rails Aaaaaargh. Some time ago I wrote about problems with merb....
- Virtualenv Tutorial What is Virtualenv Virtualenv is a great piece of software....













0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.