「どれでも一緒なんかじゃねぇ!」

参照リンクのわたなべさんのblogより。

言語の学び方続報

有名なハッカーはたいてい得意な言語を持っていて、「どれでも一緒」と言える状態ではないように見えるから。

有名なハッカーにはなれてないけど、「どれでも一緒」だなんて思ってない。

ある意味、プログラム言語なんてどれも大差ないと言える。それはチューリングマシン的に大差ないとかそーゆーことじゃなくて、プログラム言語は

世の中の諸々をコンピュータに教えてやる手段

という目的は同じだからだ。で、それは人間の思考の結果だから、書く人が同じなら言語が違ってもそうかけ離れたものにならない。同じ思考パターンの結果だからだ。でも、やっぱりいくつかの言語を知っている方が、プログラマとして幅は広くなるし、実際に結構便利である。もちろん金にもしやすい。

今時はたいていの言語は汎用言語化しているから、「○○言語でないと出来ない」類のものはほとんどない。そうなると、新しく言語を学ぶモチベーションはあまり高くならないし、その必要もあまりない。せいぜい顧客や環境の縛りで決められてしまうのに追従しなきゃいけないくらい。そういったのに対応するために流行りの言語をいくつか知っておけばそれでおk… というのは、まぁある意味当っているかも知れないし、「どの言語も大差ない」というのも、まぁ嘘じゃないかも知れない。「言語なんてどれでも使えてこそプロだし、どれでも一緒」というのもまぁ嘘じゃないように思う。

じゃあなんでいくつも言語を学ぶかと言えば(私もMatzほどじゃないが言語ヲタなところがある)、これもやっぱり

フィーリング

の問題だ。「この問題はこの言語で書くのが美しい」みたいな、そんな感覚。今や業務では言語の選択が自由な私からすると、むしろこういった「違いを楽しむ」ために学んでいると言ってもいい。

日本語は「米」に関する語彙が豊富だ。英語は「肉」に関す語彙が豊富だ。これはその言語の主な使い手達が何に興味を持っていたかの違い、つまり文化の違いだ。だから、米について文章を書く時には日本語がいいし、肉について書くには英語の方がいい。

これは言うまでもなくプログラム言語の違いでもそうなわけだ。得手不得手、向き不向きだけじゃなく、いろいろな面が違う。その違いが有用であると共に楽しいわけだ。

私はそういった違いは苦にならないしむしろ好きだから、いろんな言語が汎用言語化するのはあまり嬉しくない。それよりは相互運用性を高くして、くっつけやすい方が嬉しい。それがゆえに、最近流行りの「単一言語向けフレームワーク」というのはあまり好きでない。やっぱり「書きたい言語」つまり目の前の問題に向いている言語というのは、その時々で違うわけだから。

というわけで、俺フレームワークは言語汎用に設計されてるわけですよ。

コメントを残す

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