時計を壊せ

駆け出してからそこそこ経ったWebプログラマーの雑記

Japan Perl Associaton代表理事に就任します

SEE ALSO:

blog.perlassociation.org

なぜ平成も終わるこのご時世に?と思う方もいらっしゃると思います。 思いの丈を書いてみます。

昨今のWeb開発のトレンドとしては、動的型付け言語から静的型付け言語へシフトが進んでいます。 また、PaaS/SaaS/FaaSの普及により言語選択よりも技術選択とそのアーキテクチャがより重要になってきており、 *1いちプログラミング言語の重要性というものは、(特に動的型付け言語においては)昔ほど重要ではなくなっているのが実情かと思います。

その中でもPerlは、人気度でいえば比較的低い言語といえるでしょう。 LLと呼ばれる言語の中で最低の人気と言っても間違いではないかもしれません。 ひどいときには、1987年に作られたPerlと1959年に作られたCOBOLが並べて語られることすらあります。*2

それでも、ぼくはPerlが好きです。

Perlを支えてきたPerlコミュニティが好きです。

Perlコミュニティが作り上げてきたCPAN Moduleが好きです。

Perlはたぶん知らない人が思ってるよりは、実際はもっと使いやすく、また面白い言語です。 一方で他のプログラミング言語とは考え方が、一見似ているようでまるで違う部分もあります。 たとえば、文脈的多態言語 (contextually polymorphic language) としての特徴は他のプログラミング言語によく慣れた人には奇妙な設計に見えるでしょう。 しかし、この特徴があるお蔭で、一定以上Perlに慣れれば直感的にPerlのコードを書き下すことができます。(詳しくはここでは割愛します)

もちろん、ただ書き下しただけの読みにくいコードがどういう問題を引き起こすかという話はありますが、それは実際には書き下しただけのコードをリファクタリングせずに運用してしまう開発体制の問題であり、Perlに限った話ではなくどの言語でも起こり得るものです。 一方で、そういった問題に苦しめられた結果、Perlを嫌いになってしまったという話も悲しいことによく見ます。

ただ、そういった噂が尾びれをつけて、Perlでコードを書くと汚くなる、Perlでは綺麗なコードは書けない、などとあらぬ誤解が多く広まってしまっている悲しい実情もあります。 綺麗なコードが書けるかどうかは、単にその言語の熟練度とその書き方の問題です。「罠」と言われるものの大半は、言語仕様やその考え方に対しての無知から来ている誤解です。 Perlは正しく理解すれば、とても強力なスクリプト言語になります。

そして、多くのCPANモジュールはPerlでより大規模なサービスを作れるようにしてくれました。 結果として、いまも多くのWebサービスがPerlで支えられています。

しかし、現状は残念ながらその実力が過小評価されてしまっている場面がやはり多いと思います。 ぼくはそんな現状が悲しいのです。

ところで、実用上はどうでしょうか。

実際のところ、まだまだPerlのまま運用されている、そしてまだしばらくはPerlのまま運用しようとしている、そしてそれが収益の柱(の一部)になっているというサービスは無数にあります。 また、IaaS/オンプレミスでの運用もまだまだ少なくはなく、ログをしゅっと集計するスクリプトをさっと書きたいような場面もたくさんあります。

冒頭で述べたようなトレンドの変化に加え、各クラウドベンダーは残念ながらPerlをサポート外にしていることも多く、新規開発でPerlという事例はもうほとんどなくなっていくでしょう。 一方でPerlの利用場面が全くなくなるかというとそんなことはなく、その強力な正規表現エンジンはML学習用データのクリーニングに使えば複雑なケースでもシンプルに問題を解決できるでしょうし、 OSにプリインストールされて互換性の高いスクリプト言語として、ワンライナーや書捨てスクリプトの類ではまだまだ力を発揮することでしょう。もちろんCPANモジュールを使えばもっと高度なこともできます。 当然、延命させてきたPerlのサービスに突然ビジネスチャンスがやってきてすばやく改修を加えたい。となる場面もあるかもしれません。

かくして、まだまだPerlのエンジニアは必要とされており、その一方でPerlのエンジニアの採用に困っているという声もよく聞きます。 決してメジャーラインではありませんが「死んだ」と形容されることが似合うほど落ちてもいないのではないでしょうか。

そういうわけで、こういう僕のエゴで僕が id:nekokak に代わり代表理事を引き継ぐことにしました。

まだまだ自分は若輩者で、牧さんやねこかくさんほどの働きができるとは思えませんが、そういった気持ちを胸に少しでも現状をよくできたら、Perlコミュニティがもっと楽しい場になると良いなと思っています。 不束者ではございますが、みなさん改めてよろしくおねがいします。

*1:あくまでもWeb開発というコンテキストにおいては

*2:Perlはもちろん、COBOLも現代で未だに活躍しているプログラミング言語のひとつです