ネットワークオペレータとWeb開発者の断絶
JANOG21 @Kumamoto
1月24(木),25(金)は3回ぶりのJANOG Meetingに参加するべく熊本まで行ってきました。金曜日の夜に東京に戻ってきましたが、どうも向こうで風邪を貰ってきたらしく、ひどい下痢で土日は寝込んでいました。おかげで動画人イベントには参加できませんでした、くすん。
Perlは遅いに決まっている
JANOGという性質上、基本的にはネットワークオペレータの集まりなので、私のようなサーバ屋/Webアプリ屋はあまり参加していないのですが、そのことが端的に示された発表がありました。
JANOG21の最後のセッション
です。内容自体はとても面白く、放熱を考えないラック内の機器の設置やケーブリングはいかがなものか、サーバの温度監視をやるのは当然よね、という啓蒙的なものだったのですが、その発表の最後でMEXの高田さんが
Perlで書いたスクリプトは遅いに決まっている。Perlを使うなとは言わないがプロトタイプに留めるべきで、本番で使う段になったらCで書き直せ。
という意図のことをおっしゃりました。私はPerl屋ではありませんが、Perlより部分的には更にCPU効率の悪いPHPを本業としている点ではまさに批判の対象です。高田さんがデータセンター運営側という立場で、無駄に熱を放出するサーバをなんとかしたいというのは理解できますが、我々Web開発者とのあまりの認識の違いに少なからずショックを受けたのです。
Web開発言語の特性と規模
Perl,PHP,Ruby,Python,ASPその他もろもろのプログラム言語がなぜWeb開発で多く利用されているのか、なぜCPU効率に勝るCやC++ではないのかを考えれば、答えは明白です。開発や更新のサイクルが速く、短期間で多くのことを成し遂げなければならないWeb開発ではC/C++では開発効率が悪すぎます。もちろんどんな言語でもライブラリの揃い方によっては同程度の開発効率を叩き出せるでしょうが、Web開発に必要な多くのライブラリ・フレームワークを持っているスクリプト言語はそれだけで十分有利です。
私も以前はC/C++でネットワークプログラミングをやっていた身なので、両者の特性は理解しているつもりです。その自分の感覚では、昨今のWeb開発の現場では個人でできることの範囲が恐ろしいスピードで増大しているということを強く感じます。はっきり言って現在では、ある程度の規模以上のWebアプリケーションは、個人がCでゼロから書けるものではありません。言語、ライブラリ、フレームワーク等の様々な資産の上に乗っかることで、以前では考えられないような開発効率を実現しているのです。
余談ですが、未だに次々と新しい技術が登場してくるWeb開発業界のダイナミズムは、この個人の万能感と大いに関連があると思っています。
断絶の先にあるもの
私が危惧しているのは、インターネットの技術がどんどん細分化されていくにつれ、各レイヤーのコミュニティが断絶してお互いのことを理解しないまま、不毛な批判の応酬をしたり、結果として効率の悪いシステムを作り上げてしまうことです。
実は24日(木)の夜に開催されたJANOGの懇親会でも、オペレータ屋とサーバ屋の接点がないという話でJANOGスタッフの何人かの方々と盛り上がったりして、問題点として認識していらっしゃる方はいました。
昔はインターネット業界はひとつでした。プレイヤーの数が少なく、技術がまだまだ未熟だったこともあって、見ようと思えば全部を見渡すことができました。インターネットの発展とともにさすがにそれは不可能になりましたが、インターネットらしくオープンな場で議論を行う文化は各コミュニティに脈々と受け継がれています。せっかく良い文化が残っているのだから、もっとお互いを理解してよい知恵を出し合う土壌を、意図的にでも作る必要がそろそろ出てきたのかなと感じたのでした。