カレンダー

2022/01
      
     

広告

Twitter

記事検索

ランダムボタン

30倍速

by 唐草 [2021/12/23]



 ぼくはPHPというプログラミング言語を使って仕事をしている。この言語はWeb開発に特化していてHTMLに埋め込むように書ける。だからWebページのデザインと機能を同時に作れて、ブラウザがあれば簡単に動作確認できるのも楽。
 手軽で便利な言語だが、プログラミング言語ヒエラルキーを考えると最底辺のような扱いを受けている。文字列処理言語でしかないとか、言語仕様が雑だとか、メモリリークが発生しやすいとか、実行速度が遅いとか散々な評価。だから15年ぐらい前から「あと5年もすれば消える」とまるで原油埋蔵量のようなことを言われ続けている。ところが、なんだかんだで勢力を失わずに生き延びている。
 生き延びた理由は、圧倒的な手軽さとWeb開発に特化したためだろう。遅さもPCが進化したので気にならなくなったし、メモリリークもWebサーバ側で吸収できるようになった。分をわきまえ余計な拡張をせず、バカでも書ける単純さを維持して、最後はWebサーバに責任を押し付けるしたたかなスタイルが生き延びた秘訣。世間はPython全盛期だが、ぼくはWebのためにPHPを書き続けている。
 20年以上も同じ言語を使っていると、言語固有の癖がいくつか見えてくる。ひとつひとつの癖は、知っていても知らなくても大した違いを産まないような些細なこと。でも、それらを適切に組み合わせてやるとちょっとビックリなことを起こせる場合もある。
 今、とあるシステムの置き換えの準備をしている。データベースと連携するよくあるWebサービスだ。Javaで書かれた現行版は教科書のような綺麗な作りをしているが、要求に対して過剰な作りとなっている。それに最適化が何も施されていない。
 ぼくはPHPのためにハードウェアチューニングをするという異例のアプローチを試みた。こんなやり方、見たことがない。テスト版での成果は上々で、現行版と比べて最大30倍近い速度を出すことに成功している。大切なのは何を使うかではなく、どう使うか。