On 9/20/06, Henrik Schmidt <nospam / a.b.c.d> wrote: > Hi there, > > I'm fairly new to Ruby, so bear with me. Anyway, on with the question. > > What is the benefit of being able to omit parentheses on a method call? > IMHO, parentheses improves readability; I can instantly discern, whether > something is a method call or a variable. It would seem to me, that > readability is, at least, part of the reason for the @-prefix on > instance variables, thus making it difficult for a human reader to > confuse them with local variables. Why not force a similar convention on > method calls, namely explicit parentheses? > > In addition, this feature allows you to do stuff like this: > > def foo > 42 > end > > foo # -> 42 > foo = 1 if false > foo # -> nil > > I generally like the language but dead code with side effects makes me > nervous. > > Could anyone explain to me, why it's a good idea to have the option of > omitting parentheses on a method call? It allows for nice DSL, c.f Rails': class Book < ActiveRecord::Base has_many :pages belongs_to :library end or, recall the attr_reader: class Whatever attr_reader :attr1 end With mandatory parentheses this would be: class Whatever attr_reader(:attr1) end