« rubyで文字数を数えるには? | メイン | Doxygen for Windowsが日本語に対応していた »

Rubyの後方互換性の低さは、Rubyの良さである。

先日リリースされたRuby 1.8.7は、Ruby on Rails 2.0.2で問題が発生しました。
(Rails 2.0.2とRuby 1.8.7のString#chars)

さらに脆弱性の問題を修正したRubyで、またもRuby on Railsで問題が発生しています。
(Rubyの脆弱性について)

このような問題が発生することは残念なことだと思います。
ですが、後方互換性の低さはRubyの良さですから、開発チームはあまり気にしないでいいと思います。

後方互換性を重視している言語、たとえばJava言語を見ると、歴史的な理由から推奨されない機能がたくさん残されています。
推奨されない機能をいつまでも残し続けることによって、クラスライブラリは肥大化し、わかりにくくなります。
(非推奨 API のリスト (Java Platform SE 6))

また、Pythonも同様です。
urllibとurllib2という2つのライブラリを見て、設計が美しいと感じる人はいないでしょう。

Rubyは歴史的に、後方互換性によって設計が乱されることを嫌ってきたように思います。
結果として、歴史的な理由に束縛されることなく、優れたAPIを提供できました。

# Rubyコミュニティが見下しているPHPも後方互換性を重視しない言語ですね。

Rubyの最新版は、常にその時点における最良と考えられるものでした。
後方互換性を犠牲にすることによって、優れたプログラミング言語になったのだと思います。

Rubyを使う技術者はRubyの哲学・思想を理解し、適材適所で使えばいいのです。

追記
長期にわたり使い続けるアプリケーションを作成する場合、私はRubyを選択しません。
PythonやC++、Javaを選ぶでしょう。
Rubyを使うのは規模の小さい使い捨てのプログラムが中心です。

関連する記事 「Railsの思想」もどうぞ

トラックバック

このエントリーのトラックバックURL:
http://www.gesource.jp/mt/mt-tb.cgi/767

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年06月28日 12:13に投稿されたエントリーのページです。

ひとつ前の投稿は「rubyで文字数を数えるには?」です。

次の投稿は「Doxygen for Windowsが日本語に対応していた」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35