2010年02月18日

便利屋ダメプログラマの「もういい、全部Javaで書く!」論

我が輩はプログラマである。専門分野はない。ただ言われたことを雑然とこなしているうちに、経験言語が十重二十重と増えていき、最近は日本中探しても経験者は1000人もいないんじゃないかと思われるようなマイナーな規格に関する仕事まで手を付けるようになってきた。

でも、Lispはやったことがない。

一度手を染めた言語はその後もなんとなしに気にかけるようになり(PHPは除く)、RSSリーダーやらSBMやらで収集した情報に言語関連の話が流れると、ふらりと閲覧してしまう。

特に興味がある言語に対しては、バージョンが上がるたびに新機能を調べたり実際に入れて試したりしてみてしまう。Java、Python、Ruby、C++などの情報は、つとに威力が高い。言語ではないが、最近はブラウザが提供する新機能あたりにも心が動かされている。

でも、Lispはやったことはない。

先日、HTTPリクエストを行うJava(Apache HTTPComponents使用)のコードを書いていて思った。私はこれに似た機能を、JavaのSDKでもPerlでもPythonでもRubyでもC++(WinHTTPとWININETの2つを使用)でもシェル(wgetしてテキスト処理みたいな)でも書いたことがある。

でも、Lispでは書いたことがない。

同じことをいったいいくつの言語でやれば気が済むのだろう。明らかに冗長だ。その上、Pythonを使った時は3.1でBeautifulSoupを使うにはどうしたらいいか1日格闘したり、Rubyを使った時は試してみようと思ったライブラリが1.9且つWindowsだとGemでうまく入らず数時間格闘したり、C++では複数のライブラリを比較検討したり。。。

なんと生産性の低いことをしているのだろう。この労力を1つの言語に傾けてソフトウェア開発に勤しんでいれば、例え学のない私でも人の役に立つフリーソフトの1本や2本、書けたんじゃないだろうか。人間、Cともう1つ適当な言語(PHPだってHSPだって構わない)の2つを知っていれば、たいていの処理は書けるはずだ。

才能のある人間なら、手を四方八方に伸ばしながら役に立つソフトウェアまで作ってしまうのかもしれないが、残念ながら私は手を伸ばすだけ伸ばして何も作れていない。

もう、こんな無駄とは決別しよう。これからは他の言語は捨てて、全部Javaで書こう。Javaなら処理速度もそこそこあるから「重いところはCで」と言うケースも少ない。バージョン間の互換がしっかりしているので、今の最新バージョンでライブラリを作れば10年近く現役として使える。

これからは心を入れ替え、手を広げ過ぎる悪癖を改め、1つの言語に注力して、たくさんの動くものを作ることを考えようじゃないか。









と決意した翌日。「ScalaはJVMで動くからセーフだよね」といって試している自分がいた・・・・・・。死んでしまえばいい、おまえなんて。