トップ «前の日記(2013-02-20) 最新 次の日記(2013-03-07)» 編集

Route 477



2013-02-24

[ruby] UXを重視したプログラミング言語

Rubyが生まれたのは今から20年前のことだ。Rubyの肩書きは「オブジェクト指向スクリプト言語」であるが、実のところRubyにしかない特徴的な機能というものは特になく、いろんな言語から良いところを寄せ集めてきたというのはまつもとさんも各所で書かれている通りだ。

その代わり、Rubyはプログラムの書きやすさを常に念頭に置いてデザインされてきた。 それはプログラミング時の脳の負担を最小にする、と表現されることもあるし、楽しくプログラミングできる、のように表現されることもある。

人によっては、プログラミング言語にとって構文は本質的ではない、という向きもあるだろう。それに対して、 構文やメソッド名を工夫することはプログラミング言語の使用感に結構な影響を与えるし、「触りごこちの良さ」は重要なことである、というのがRubyの思想である。 最近、UI(User Interface)からUX(User Experience)へ…みたいな話をネットでよく見かけるが、RubyはUXを重視したプログラミング言語と言えるのではないかと思う。

そんな定性的なものをどうやってデザインすればいいの?と言われそうだが、2種類の記法のうちどちらを選択するかによって、プログラムを読み書きする際の感覚というか、脳の動きというか、そういうものが変わってくるのだなぁというのが最近RumCokeをいじっていて実感として分かってきた。

ということで、昨日まつもとさんにそのへんのことを尋ねてみた。で、ちょっと面白い話を聞けたんだけど、Rubyが生まれた頃はプログラミング言語というものは企業か研究室のいずれかで作られていたため、 既存のものに対して新しい機能がないプログラミング言語というものが生まれる余地はなかったというのだ。 確かに、企業がプログラミング言語を作る場合は何らかの解決したい新しい問題のための機能が盛り込まれるはずで、そうでないと予算が付かない。 一方で研究室で生まれるプログラミング言語は論文の種にならなければいけないから、新規性のない言語というのはあり得ない。

既存のものと機能は同じだが、それ以外の点を改良するというアプローチは、ライバルと違う道を行くための良い方法だったのかも知れない。

20周年2.0.0リリース、おめでとうございます。