年金ロボットをめざして

FX(外国為替証拠金取引)自動運用ロボットの開発ブログのはずだった

Python / Ruby 問題

実のところ、ぼくには Python / Ruby 問題というものは存在しない。しかし、世の中を眺めてみると、Python vs Ruby あるいは Ruby vs Python について感情的にどちらかに肩入れした発言が結構あるもので、これには宗教対立の類似性を感じてしまう。

Python  と Ruby どちらを選び使うべきか。それが問題になるのは、どちらでもよいということでもあるだろう。どちらかに目的による必然性があるのなら、そもそも問題にはならないだろう。

職業プログラマにとっては、使用言語はクライアントに依存するであろうし、そうでないとしても個人的な趣味で選べるものでもないだろう。だとしたらなんなのだ。Python vs Ruby は、ただの興味本位、おもしろ半分の話題なのか。

Ruby は、Ruby on Rails が成功したことにより、そのニーズが大きいようだ。また、国産プログラミング言語と言うことで、地域興しの言語として採用されたりもしている。そういう状況に乗っかる立場なら、当然 Ruby で決まりであり、それ以外についてとやかく言うこともないだろう。

プログラミング言語を自分だけの判断で選べる立場であるなら、それは好みで選べばよいだけ話しなのだ。排他的なことを主張する必要は何もないだろう。もし、目的に対する機能の差によって Ruby を選ぶのなら、その必然性があるのであって、vs などどうでもよいはずだ。

ぼくは、PythonRuby のどちらも大変優れた言語だと思っている。目的による選択の必然性がないのなら、どちらを選んでもよいレベルだと思う。ちなみにぼくが常に PythonRuby の順に書くのは、歴史的順序に合わせているに過ぎない。

とは言っても、趣味のプログラマなど、どちらを選んでもよい人にとっては PythonRuby のどちらを選ぶべきなのだろうという疑問はあることだろう。

ぼくの場合は、どちらもある程度は学んでいたので、その知識に基づいて選んだ、と言いたいところだが、そうじゃない、そんな理由ではないのだ。実に感覚的に選んだだけなのだ。理由はあとからいくらでも語ることができるかもしれないが、ぼくにはあまり意味がないように思える。それに、選んだプログラミング言語をよく言い、ぼくの選にもれた言語をこき下ろすような趣味はない。

そんなことはないだろう。機能は違うのだし、論理的な選択理由が明確にあるはずだ。って? そんなのないよ。PythonRuby のどちらを選んでもぼくの目的には適合するんだ。多くの人にとってもそうであるはずだ。もし、そうでないとしたら、やはり目的による必然性があるのであって、このような議論は無意味だろう。

さて、結局ぼくは Python を選んだのだ。それは  Ruby よりもぼくの価値観に適合したからで、両者の機能や性能によって選んだのではない。おそらくぼくにとっては、Ruby より Python が適当なのであろう。でも絶対的な話しじゃない。

ただ、おもしろいと思うのは、人によってどちらを選ぶかは現実的な必然性がないとしても、別の個人的な必然性があるのだと思う。しかし、明確にそこに達するためには時間がかかるかもしれない。だからこそ、その不安を払拭するために選ばなかった他者を批判したくなるのかもしれない。

ぼくはおもしろがって、Python を選ぶ人を「Pyrhon 人間」、Ruby を選ぶ人を「Ruby 人間」と呼んでみたい。ぼくは Python 人間だ。Ruby 人間を批判する気持ちなどもちろんない。

ぼくは今後、Python 3 を使おうとしている。Python 3 は、ぼくの言語的美意識にすべてが適合するわけではないが、Ruby に向かうという気はしなかった。むしろ Lua との選択に迷ったくらいだった。

もし、Ruby を目的による現実的必然性や外部的必然性で選んだのでないとすれば、もし、Ruby の機能に注目して選んだのだとしても、やはり Ruby 人間と言えるだろう。意味がわからん、何の話しをしているんだ?うん、PythonRuby か、どちらを選ぶかは人間性にも関係があるように感じるんだよね。もちろん、どっちがよくてどっちが悪いってことじゃない。

プログラミング言語という道具を選んでいるだけなのだから、それによって、○○人間なんて呼ぶのはナンセンスだと思うかもしれない。2つの言語に目的による機能によほどの差があって客観的にどちらかを選んだとすれば、○○人間と呼ぶのはおかしなことだが、趣味的に選んだとすれば、PythonRuby の選択には選ぶ人間の感性の違いがありそうだということなのだ。

残念ながら、どちらがどうだとか言うつもりはない。

ただ、Python のほうがぼくの人間性に合っていると言う気がしているのだ。それが言えるためには多くの時間がかかったし、ぼくにある種の成熟も必要だった。それに、Python 3 を待つ必要もあったと思う。もし、3年後に誰かがぼくに、なぜ Python なの? と訊けば、ぼくは「Python に慣れてるから」とだけ言うだろう。もし更に、最初のときに Python を選んだのはなぜ? と訊かれれば「なんとなく選んじゃった」と応えるだろう。

最後に、もし例えば、C言語が使えて、つぎにモダンなスクリプト言語を学びたいと思っている人がいたら、その選択肢には PythonRuby をお勧めしたい。(Lua は人を選びすぎると思う。仕事で避けられないのなら話は別だ) 個人的には Python がお勧めだが、そんなこととは関係なく、その人が選ぶべきなのがどちらかは決まっているような気がする。

もし、これから初めて、趣味でプログラミング言語を学んでみたいと思っているのなら、99 BASIC を使ってみてもらいたい。