予約語考: 或るRuby厨の意見

Pythonは予約語が少ないらしい

Rubyは実はメソッド名には予約語を使えるので、APIを設計するという意味では予約されててもあまり困らない。

class C
  def end
    :end
  end
end

c = C.new
p c.end        #=> :end

p RUBY_VERSION #=> 1.8.4

ただし、文脈によってはうまくparseしてくれないので、Module#define_methodで代用するテクニックが必要だったり。メソッドを使う側はいいとして、書く側は面倒かも。それから、呼ぶときもレシーバを明示的に書かないとparse errorになる場合もあるけど。

でも、本当に身内で使うようなメソッド、privateなメソッドは、予約語を避けて命名してもあまり困らないしなー。そして、publicなメソッドはどのみちレシーバを指定するわけだし。

それにしてもさすがにメソッドをifとかelseとか命名する邪悪なコードを書くのはDHHだけで十分だ。

それよりJavaはgotoをどうするつもりだ。