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の思想」もどうぞ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください