RubyとPythonと

俺の信頼のおける同僚のうちの1人が、入社の際の導入教育の時に「プログラミング言語は、CとかJava系統の言語とPythonPerlみたいなスクリプト言語を1つずつ覚えておけば、それ以上は覚えるような必要がない」というようなことを言っていたのが今でもアタマの中に残ってる。
個人的には大学時代からJavaをやってきて、もうかれこれ10年以上になる。スクリプト言語としてはとりあえずJavaScriptRubyPythonと書くことは出来るけど(後者2つは業務での使用経験はなし)、Javaの熟練度と比べたら天と地との差がある。ので、どうしても自分の手になじむようなスクリプト言語を1つ真剣に身につけたいなぁと考えていた。
で、そうするとですよ、RubyPython、どっちを学ぼうかなぁと。JavascriptはWeb系をやる際は必須なので、それはそれでWeb専用として覚えておく必要があるけど、jQueryprototype.jsが使えればいいかー程度の認識なので、現時点から取り立てて腕を磨く気はあまりない。そうじゃなくてもっと汎用的な目的でRubyPythonを身につけたいなぁと。
色々とネットで調べても、「RubyPythonの優劣を決めること自体が意味が無いことだ」という結論で終わっていて、どちらを学んでもあまり変わりのない感じ。個人的に感じるそれぞれの利点としては

  • Ruby…日本発ってこともあって日本で有名。その結果、日本語の資料も多い。また、オブジェクト指向の徹底ぶりやスマートさ、プログラムしていての気持さはPythonよりも上と感じる。
  • Python…世界的にはRubyよりも圧倒的にシェアが上。その代わり日本ではなぜかあまり人気がない。英語の資料は多い。構文が単純なので理解がしやすく、初心者にも易しい。

って感じ。
んで、個人的に好きでしっくりくるのはRubyなんだけど、業務的に利用するのであればPythonかなぁと判断し(構文がシンプルで書き方が統一されるので、大規模開発時のメンテナンスが容易、世界的シェアが高い、英語や日本語の資料の量の差は個人的には関係ない…等の理由から)、とりあえずPythonをちょっと深めに勉強している。趣味でプログラムを書くことはまずないので、業務で使えることが第一優先事項(趣味でプログラムを書くのであれば、おそらくRubyを選択している)。
ま、あくまでも「とりあえず」なので、またRubyに戻る可能性も大いにありうる(もうすでに現時点でちょっとPythonがどーしても肌に合わない気がしてきてるんだけど)。そもそもどちらの言語に対してもそれほど知識があるわけじゃないので、学んでいる過程で上述した利点・欠点に関する認識が変わるかもしれないし。結果としてどっちも自在に扱えるようになっても問題ないわけだしね。