Perlは終焉した言語か

今日、仕事でWebシステムの案件が来た。

うちは普段、発電所で使うシステムの開発をやっていて、Webシステムからは蚊帳の外である。が、昨今はCやFortranでコツコツとプログラムを書いていくのも限界に達し、ようやく近代的な技術を使用する潮流が発生しつつある。つまり、Webからシステムの稼動状態を見たい、とかそんな機能だ。これが一昔前だったら、専用のクライアントソフトをUnixとかWindowsとかで作っていた。もっと昔は、「稼動状態ランプ」みたいなものを、制御盤の上にハードウェアとして設置していた。昨今はそんなに金をかけていられないので、簡素化しつつある。

で。言語はなんでもいいというので、最初はPython+Djangoにしようと思っていた。私が覚えたいがためだけに。しかし、思ったよりも単純な機能になりそうで、CGI + Pythonでいいっかな、と思い。いや、やっぱCGIって響きがダサいな。今だったらWSGIか?やったこと無いけど。そんで、JSON(P)データを吐くPythonプログラムを作って、それをjQueryで取ってくるようにすればいいのかな?実はWeb系システムを仕事でやるのは初なのでいまいちよくわからん。まあ、オフショアに出して作ってもらえば、向こうはプロなのでうまいことやってくれるだろう。そのコードを見て勉強すればいい。あわよくば現地に海外出張してうまい飯食ってくるのもいいね。と思った。

で、使う技術としては、Python、jQuery、SQLiteって感じすかねー、と上司にいった所、「jQueryって何・・・?Perlとかはどうなの?」って聞かれた。

Perlか・・・。そんな言語もあったな。

Perlは久しく聞いてない。/cgi-bin/index.cgiとかいうようなURLも最近は見なくなった。私もPerlを使っていた時期があったが、同じインタプリタ系の言語を使うなら、今だったらRubyとかPythonのほうがずっと素敵でライブラリも揃ってるし、わざわざPerlをまた使おうとは思っていない。たまに、ちょっとシェルスクリプトでは物足りない程度の高度な処理をしたいときにPerlで書くくらいだ。それも、1年に1回あるかどうか。

で、Perlどうなん?と思い、検索してみたら、面白いページが見つかった。

なぜ国内でPerlが急速に萎んだのか

上記で面白と思ったところを引用してみる。

Ajaxで再発見されたJavaScriptのブームもPerl終焉に若干ながら貢献している。ブラウザというPerlが全く手を出せないジャンルの王者JavaScriptの持つ華やかさに誰もが憧れ、そして手元のPerlの古くささに反吐が出始める。不器用で不細工なところも含めて愛していた女房とつつましく送っていた人生に、突然ぴちぴちのボイン女子大生が転がり込んで来たようなものである。

これは全くそのとおりだと思う。ただ、Javascriptもはじめからボインの女子大生だったわけではなくして、最初は地味だけどおっぱいはでかい残念な子、みたいな感じの評価だった。それが、髪切って(Ajax手法の確立)、ちゃんと化粧させて(jsライブラリの充実)、まともな服を着せたら(ブラウザのエンジンが高速化)、アラッ、いいですねー。ってヘイポーが手紙読みそうな感じになった。そんな感じ。

そう、JavaScriptは大きく誤解されていた言語だった。JavaScriptの使い道なんて、一昔前の「私のホームページへようこそ」みたいなサイトが乱立してた頃だと、右クリックすると「右クリック禁止です!ソースコードをパクらないでください」みたいな、非常にうざくて腹立たしいメッセージを表示させる程度のもんだったように思う。あとはアクセス解析でHTTPリクエストに含まれない情報をこっそり取得するとか。

それがGoogle MAPとAjaxの登場に始まり、JavaScriptが再評価された。JavaScriptの言語仕様自体も、マルチパラダイム言語が世に浸透した今だったらさほど違和感が無いばかりか、関数リテラルを効率的に使ったプログラミングが出来ると言ってもいいと思う。さらにライブラリが充実し、Prototype.jsやjQueryが使われ始め、クライアントサイドで出来ることがずっと広がった。

そういう流れをひと通り経験した人がPerlに戻ると、やっぱり古臭いと思うのは普通の気持ちだと思う。

遂にPerlにとどめを刺したのはPythonである。守備範囲は当然ながらPerlと駄々被りで読みやすく書きやすく世界的なシェアもうなぎ上り。完全にPerlが不必要な世の中になってしまった。

2005年までのPerlはまさに我が世の春を謳歌していたが今や目も当てられない惨状でプログラミング言語のシーラーカンス・COBOLとすら比較され出す始末。昔Perlの人として売り出していたハッカーも、いつのまにかPythonの人になっているケースも海外では多い。10年でここまで時代は変わる。

Python(Ruby)の発展がめざましいことも注目すべきだろう。Pythonは簡潔なコードが書けることに加えてライブラリの発展がめざましい。unittest が標準フレームワークに組み込まれているし、GTKでGUIを作ることだって出来る。Inkscape、Blender、LibreOfficeなどのアプリからPythonを標準的に使えるようになった。機械学習などの専門的なライブラリも充実している。数値計算も高速にできる。GNUPlotもPythonから呼べる。IronPythonでC#からも使える。なにかやりたい事があれば、きっとPythonがどうにかしてくれる。そんな気さえしてくる。でも、Perlにそういうドキドキ感は無い。

2012年 ビッグデータ/Hadoopブーム Perlなんぞ全くお呼びでない世界の話。段々とwebテクノロジーの世界に高度な数学的知識を持ったアカデミック層が跋扈しはじめ、専門学校でプログラミング言語を学んだだけの人間がハッカーなどと名乗ると恥ずかしい時代になってきてきた。

今のメインテクノロジーも明日は我が身だ。小手先の技術に乗っかってモダンだのハッカーだの聞こえのいい言葉を汚い口でまき散らして消えて行ったPerlエンジニア達の死を無駄にしてはいけない。変化の速い時代に生きる我々に必要なのは本質を学ぶ事だ。コードの書き方とかどうでもいいんだ。もっと10年20年たっても色あせない情報工学を身につけなければならない。

これは、「なぜPerlが衰退したか」という話からはちょっとずれてしまっているが、おおむね、そのとおりだと思う。計算科学や数学的な知識を持っていないとシステムが組めない、という時代にいずれなるだろう。今は始まりである。

「専門学校でプログラミング言語を学んだだけの人間がハッカーなどと名乗ると恥ずかしい時代になってきてきた」というのは中々厳しい言葉であるが、私も同様の意見を長らく持っている。何事も、大切なのは、基礎である。基礎は10年たっても20年たっても色褪せないからである。プログラムの基礎とはなにか。数学である。計算機科学である。情報工学である。

専門学校出はプログラム打つな、ということを言いたいのではなくして、、プロとして金を貰っているのであれば、相応の基礎を作って仕事に臨む姿勢があって然るべきではないか、ということを言いたいのだ。ケーキ屋はケーキの勉強するだろ。ラーメン屋はラーメンを試行錯誤して作るだろ。プログラマだって勉強と成長が必要だ。そして、重要なのは、勉強と成長というのは「コードの書き方」だけが変わるような言語をいくつも覚える、ということではない。

この記事の真意は、以上のようなところにあるのであって、Perlがどうこうとか、ただ、注目の集めるのが目的で書いているにすぎないと思う。実際、「コードの書き方とかどうでもいいんだ」と書いているし。そのとおりだと思います。コードの書き方は方法であって目的じゃないし。もちろん、BrainFuckみたいな言語を引き合いに出されたら、おいちょっと待て、ってなるけど。

で、上記記事に対して反論している人も居て、これもまた面白い。

「なぜ国内でPerlが急速に萎んだのか」という記事を読んで

この人は記事中でいかにPerlが素晴らしいかを叫んでおり、本当にPerlが好きなんだろうなあ。という印象。好きだろうなあ、と思うだけで、じゃあPerl使おう!という気持ちにはならなかったけど。でも一つだけ気になったのは、

ブラウザで使えるのがJavaScriptだけなので、辛抱してみんな使っているんです。

と書いていますが、そんなことないと思います。JavaScriptはボインの女子大生と言って差し支えない。関数型言語の良いところをいい感じに応用できるとても良い言語だと思います。iOSとかAndroid向けのアプリをJavaScriptで作れるようなソリューションがたくさんあったり、WindowsストアアプリがJavaScriptで開発できたりするのは、JavaScriptがそれなりに使いやすいからではないでしょうか。

jQueryとかNode.jsの助けを借りればまさに鬼に金棒、ボインの女子大生にコスプレって感じです。今はクライアントサイドどころかサーバサイドでもjQueryを使おうという潮流すらあります。それはやはり、それだけ使いやすいということに他なりません。夢も股間も膨らみますな。

まあ、それが言いたかっただけです。

で、冒頭に戻って。

「jQuery・・・?Perlとかはどうなの?」と聞かれた私。「Perlは古いんですよ。使いたくないです」と率直に答えました。今のところはその発言に間違いはなかったと思っています。

以上です。