Rubyは俺にオブジェクト指向プログラミングの作法を教えてくれた

Matzにっき(2008-01-29)でかなりアツい議論がなされているが。

俺は大昔Perlオブジェクト指向で何度も挫折した末にRubyに出会ったのだが、そのときに「オブジェクト指向とは何か」という何年もわからなかったものがものの数日でわかってしまったことは俺にとって一生忘れられない記憶だろう。継承、ポリモーフィズムなどのオブジェクト指向の概念がRubyを使えば驚くほどすんなりと頭に入った。そしてすぐに実践できるようになった。
Rubyは俺にオブジェクト指向プログラミングの基本的な作法を教えてくれた。たとえば「Rubyインスタンス変数はデフォルトでprivate」は、「アクセサでインスタンス変数にアクセスするほうが柔軟性が高まる」という定石を言語レベルで教えてくれている。「変数はデフォルトでローカル」は、「グローバル変数は極力使うな」ということだ。「数値も文字列もみんなオブジェクト」はオブジェクト指向の真髄を教えてくれる。「ブロック」で高階関数の力を知ることになる。
そのおかげでプログラミングの考え方がより豊かになり、他言語でプログラミングするときもよりわかりやすいプログラムが書けるようになった。あれほど毛嫌いしていたLispを大好きにさせたのはRubyだ。Rubyは俺にとっては「プログラマ養成ギプス」なのだ。