PHPカンファレンス20周年を記念して、キーパーソンにインタビューしてみた
2020年12月12日にオンラインで開催されるPHPカンファレンスは、今回で20周年を迎えます。初回からPHPカンファレンスを支えてこられた廣川類氏と柏岡秀男氏のご両名に、PHPの過去・現在・未来についてうかがいました。
PHPカンファレンスはどのように始まったのでしょうか?
廣川氏:PHPカンファレンスを初めて開催したのは2000年で、その時代はユーザ会ブーム真っただ中でした。NPOであれば企業から寄付をしてもらいやすいということもあって、約款を定めて運営しているところもありました。それに対して我々は、その道のプロみたいな人が集まっていたので、敷居を低くして割と自由に、集まりたいときにその目的で集まって、必要なことを必要な人がやる方式をとってきました。どこかの企業に依存することなく会の代表を決めないスタイルで、イベントをやるときだけ代表者を決めてという感じですね。
こういうやり方で始めて、何度か代替わりを繰り返してきましたが、そのたびにその時の旬な人が上手く回してくれて今に至っています。
柏岡氏:廣川さんらが書いたマンモス本(PHP4徹底攻略)も大きく影響しました。マンモス本が出たことによりPHPが広まり、同士が全国から渋谷に集まって、ユーザ会を作ろうとなり、ユーザ会ができました。初期の頃は、全員の顔と名前がわかるくらいの規模でしたね。それもあって、PHPカンファレンスの実行委員会はずっと有志がやっています。そこが他と違う所ですね。
PHP自体、テクノロジーの中でも息が長いところがあります。会のやり方もそうですが、PHPそのものが進化し続けたことが20年続いた理由だと思います。現在は開催のためにスポンサーさんを集めて行っていますが、最初は実行委員やスタッフがみんな手弁当でやっていましたね。
PHPユーザ会には現在、何人ほどが参加されていますか?
廣川氏:ルール上は一応、自分が会員だと思えば会員だということになっています。申し込むところが何もないので、実は登録のきっかけがないんですよね。
柏岡氏:昔はメーリングリストがありましたが、今は時代的にも活発ではなくなっていますね。なので、僕としてはカンファレンスや勉強会に来たらもうメンバーぐらいの感覚でいます。
カンファレンスの運営スタッフは毎年変わりますが、当日のスタッフを含めて大体50名ほどで運営しています。いつも有志が集まってやっているのは変わりません。
イベントとしてのPHPカンファレンスについて教えてください。
柏岡氏:実は「PHPカンファレンス」と題してスタートしたのは、世界的に見てもこのカンファレンスが初めてですね。始めたばかりのころは、小さな部屋で300人くらいの参加だったと思います。初めてのカンファレンスにしては多かった方だと思います。現在はさらに参加される方が増え、大田区産業プラザPiOの全館を借り切って、2000人以上が集まるカンファレンスになりました。
PHPカンファレンスは、その時代によって来る人の層が変わるという特徴があります。最近はサーバサイドのエンジニアだけではなく、デザイナやWordPress使いの方も来ます。最近ではベビーカーを押した家族連れも見受けられ、幅広い層が来ています。
今年で20周年を迎えますが、記憶に残っているエピソードなどがあれば教えてください。
柏岡氏:開催当初は、ビジネスでのPHPの利用がそれほど活発ではなかったころだったので、Linuxよりの人が集まりました。その後徐々に仕事で利用する人が増え、今や大企業の方も来るようになりました。年を追うごとに、ユーザ層が広がっていくのを見てこられたのは感慨深いですね。カンファレンスを運営している側も、参加されている方もみんなで成長できたと感じています。
廣川氏:私がカンファレンスに参加しはじめたのは、PHP4が出たくらいの頃でした。当時オープンソースの話をする機会はそれまではありませんでしたが、たまたま別のところでお話しする機会があり、それを聞いた人から誘われました。
エピソードというといろいろあったと思いますが、何かを発信すると「見てます」とかなりの確率で声をかけてもらうようになりました。
当時のプレゼン資料を見ていておもしろいと思うのが、「XMLが使えるぜ!」みたいなタイトルとか、今になると恥ずかしくなるようなのが多いんですよね。「こんなのを使えば簡単にできるんだぜ、凄いだろ!」と言っていた時代があるんだなと懐かしく思います。
PHP業界全体の今と昔についてどう感じますか?
柏岡氏:初心者の人も試しやすい環境になったと思います。かつては、コンピュータをある程度知っている人でなければ、PHPのコードを書ける環境にたどり着くことすら難しかったころもありました。今ではそこに至るのも簡単になったと思います。WindowsでもMacでも、どんな環境でもすぐできるようになりましたね。あとはオープンソースのCMSやフレームワークなどの広がりにより、PHPを利用するのに便利な環境が整ってきたと思います。
廣川氏:実のところPHPは5.4よりも前までは「実行速度が遅い」とか、「現代的なスクリプト言語に備わっている機能が欠けている」とか、批判的なコメントがありました。そのため、言語系のカンファレンスでプレゼンをした際にも、少し肩身が狭い時代がありました。それがPHP5.4までで現代的なスクリプト言語の基本的な機能がサポートされ、PHP7で処理スピードが他の言語と比べて圧倒的に速くなったと思うころから、言語自体に対する批判的なコメントをほとんど聞かなくなりました。
ある企画で、PHP1から最新のPHP7までのベンチマークを取ったことがあります。同じ計算機で同じスクリプトを動かしているのに、実行速度が二桁も違うんです。PHPの言語エンジンは、その時々で世界的に優秀なエンジニアが工夫をしてベストなものを作り続けているのですが、25年の歳月が流れると、純粋に実装アルゴリズムだけでそれだけの差がついてしまうのです。こういう点が技術のおもしろいところですね。
私はこうした技術に触れるのがおもしろくてPHP関連の活動をやっていますが、Webの世界は進歩が速く,常にいろいろなものが出てくるので、大いに刺激を受けています。PHPの場合、使いやすさのような基本的なDNAを失わずに、進化をし続けられたことが、今日までの発展の源泉なのではと思います。
お二人はこれまでどのようにPHPと関わってこられましたか?
柏岡氏:オープンソースと出会い、その流れでPHPにも出会いました。仕事で利用したのは結構早かったと思います。
利用しはじめて間もない頃にセミナーなどを行ったりしていましたが、その縁からDBマガジンでPHPの連載をさせていただくことができました。PHPの連載では先駆けだったと思います。その後もいくつかのPHPの記事と書籍(いちばんやさしい PHPの教本・インプレス出版)も書かせていただきました。
仕事の面では利用当時から開発に携わっているので、ほとんどの仕事で利用させてもらっています。
廣川氏:PHPのベータ版が出た95、6年頃に、友人とWebサーバを立ち上げました。最初はPerlから始め、そのうちに、ApacheとPHP、Mini-SQL、MySQLなどを利用するようになりました。ですが当時は、PHPには日本語のマニュアルがなく、勉強がてら翻訳を始めたのがPHPとの関わりの始まりです。
何年かして、気がついたらA4で800ページほどのボリュームになっていたので、せっかく作ったのだから、他の人にも活用してもらえればと考えるようになりました。当時、本家であるPHP.netではヨーロッパ圏の言語で作られたマニュアルをCVSで管理し始めていたところでした。そこで交渉して、そこにマージしてもらいました。そのころから、本家の人たちとも会話をするようになり、いつのまにかコミュニティに参加して、そのうちにWebサイトなどの日本語化の手伝いをするようになりました。
今のPHPはダウンロードすればすぐに使えますが、PHP3のころまでは日本語でPHPを動かすためにはパッチを入れないといけませんでした。当時、ある方が配布していた日本語対応用のパッチがあり、それを含めてもらえるようPHPの開発者と交渉したこともあります。
その後、既存のドキュメントを参考に、自分で検証して確かめながら書いたマンモス本は、好評をいただき、皆さんのお役に立ったのだと実感しています。
本業ではPHPとの接点はなく、趣味としてやってきましたが、カンファレンスでは新しい機能や使い方を紹介する機会をいただいています。最近では昔ほど時間をかけられていませんが、今でも、いろんな新しいものに触れるのを楽しみにしています。特にWebの世界での競争は激しく、その瞬間でベストなものをみんなで寄ってたかって作っているという世界を味わえるのはいい経験ですし、それ自体を楽しんでいます。これからも自分の時間だからこそ、おもしろいことをひたすら追いかけていきたいと考えています。
PHP本家との関わりで記憶に残っているエピソードはありますか?
廣川氏:PHPは地道にその時のベストを追求していて、常に使いやすいものや実際の業務で役に立つ物ばかりをまじめに作っています。そうやって、ずっとどん欲に進化し続けていくと、普通ならカオスになってしまいがちです。ですがPHPは世界中に何千人と開発者がいても、方向性がぶれることなく、それとなくコントロールされています。
基本的に、PHPに新しい機能を取り入れる場合、提案後に投票されて決まります。その投票の時に、PHPのわかりやすさや根幹に関わるところの一定のラインを越えようとするとストップをかけてくれる人が存在します。その代表が、PHPの原作者であるRasmus Lerdorf氏です。Rasmusさんは、自らをプログラマとして超一流ではないとみなし、実際、普通の考え方をする人ですが、多くの開発者にとって心のよりどころや、最後の砦として存在感を発揮しています。
開発をしていると、開発リソースをつぎ込みすぎてどうにも戻れなくなるということがたまにあります。現在では欠番となったPHP6がその例です。PHP6は国際化を取り入れようとして中身を大幅に変更しましたが、変更しすぎてどうにも手が出せなくなってしまいました。最終的にRasmus氏が開発をキャンセルする決断を下し、仕切り直しをすることができました.
どんな言語にも、特徴や良さがあって、それが失われてしまうと人々に受け入れられなくなります。ただ、確かにベースは大事にしなくてはいけませんが、新しいものを取り入れる活力が失われてしまえば、その言語は終わってしまいます。それを両立させているのはとても大変で、PHPがそれを両立できている点はすごいことですよね。
PHPの好きなところを教えてください
廣川氏:一番興味深いのは、技術を改良していいものを作りたいという考えで、世界中の優秀なプログラマができる、その時点で一番いいものが作られている点です。一番いいものができた瞬間、普通ならその時点でやりつくされ、さらにその先にはたどり着きにくいはずです。ですが、PHPは10年20年も、ずっと乗り越え続けてきており、それは本当にすごいことだと考えています。
言語に美しさを求める人もいますが、個人的には、やりたいことが一番楽にでき、品質の良いものができるというところが、PHPの良い所だと思っています。
また、他の言語を学ぶ人の中には、言語自体の仕様に対する強いこだわりがある方がいらっしゃいますが、PHPのユーザにはそう言う人は少ないと感じています。Rasmus氏も「言語はあくまで道具で、歯ブラシみたいなものだ」と言っていますが、私も同じように思っています。普段使っていて便利だから使うだけで、便利さが失われたら使われなくなるというだけです。それは技術の進歩としてはすごく正しいものなのですが、PHPはこのWebの移り変わりが激しい中で20年も消えることなく続いているところが素晴らしいと思っています。
柏岡氏:PHPの全体的に混沌としているところは好きですね。たとえばnl2brやbin2hexなどtoを2と表現するストリートカルチャーのような単語名があったり、スネークケースの関数名とキャメルケースの関数名が混在していたり、長い歴史の中で進化しつつ、以前のものも活かしつつ、工夫しながら進めて来た感じが垣間見れるところが好きです。あと、言語としてPHPが最強だと思うところは、型の曖昧さと配列と繰り返しですね。なんでも配列にできるし、オブジェクトでもループさせられます。これらの機能は賛否両論ですが、根底にある便利さを追求する感じが気に入っていますね。
手軽に試せるということもあって、ちょっとしたWebサイトを作ったり、データを分析する前にデータを整えたり、別サービスのテストに使ったりとツール的にも使っています。僕にとって、PHPは、Webアプリを書くだけではなく、シェルスクリプトやマクロなどと同じ感覚で使える小道具のような存在でもあります。
PHP8の魅力とPHP7との差異について教えていただけますか?
廣川氏:PHP5から7の間に、エンジンの強化や、メモリ使用量の改善が行われた結果、処理スピードがだいぶ速くなりました。PHP8ではさらに性能を上げるため、Java等で使われているJITコンパイラ(Just-in-Time Compiler)を使い、スピードを上げようとしています。付属のアルゴリズム系のベンチマークでは、数10%の改善が確認できており、性能向上が期待できます。
一方で、過去に作ったWebアプリが3~5割ほど速くなると期待する人からすると、期待には沿えない可能性があります。なぜならJITによる高速化はアルゴリズムが複雑で実行に長時間を要する場合に限定されるからです。PHPの代表的なアプリケーションであるWordPressを例にとると、速度の向上はせいぜい10%ほどと想定しています。これは、実際のWebアプリケーションでは、キャッシュの適用などにより、PHPスクリプトの実行時間が全体の応答時間に占める割合が減少しており、データベースの応答時間などが支配的になっているためです。
PHP5~7にかけて、性能向上のための努力が継続して行われ、大幅な性能向上が実現されていますが、その結果として、さらなる性能向上の余地が小さくなっている状況にあるとも言えます。そのため、Webアプリケーションの速度を速くしたいのなら、むしろDB側を改善しないといけません。
JITコンパイラは自動的にコードをコンパイルし、ネイティブコードとして実行できるようになるため、高速化が期待できます。しかし、コンパイル自体にはオーバーヘッドが伴うので、スクリプト全体をコンパイルすると、かえって遅くなってしまう場合があります。このため、プロファイラにより効果が大きい部分のみをコンパイルする仕組みが導入されています。一般的に、JITの効果は計算負荷が高く、反復回数が多いプログラムで大きくなりますが、Webアプリケーションにおいては、計算負荷が高いプログラムの割合は低く、PHP8のJITで高速化できるプログラムのジャンルは限定的ではないかと思います。
むしろ、従来ならPHPのようなスクリプト言語が苦手としていた、計算負荷が高くて動かしにくかったプログラムが高速化する可能性はあります。例えば、今までPHPは機械学習などのプログラムには不向きで、他のエンジンのライブラリを読み込み、結果だけを出力するようにしないと満足に動作しませんでした。PHP8では、複雑なアルゴリズムでも、JITによる高速化により、今まで遅かったものが速くなる可能性がでてきました。
そういう意味で、PHP8はこれまでPHPが使われることのなかった分野で活躍できる可能性があります。
現代のWebページはカスタマイズされているように見えますが、レコメンドのような利用者の好みに応じて出力を自動的に変更させる仕組みには、PHPとは別のプログラムを使う必要があります。ですが、今後はWebアプリケーション自体にAIに基づく学習機能が備わり、賢くなって、自動的に最適化を行うような形に進化していく可能性があります。
現状では「AIや機械学習に使う言語はPython」というイメージがありますが、今後良質なツールキットが出てくれば、PHPにおいても容易にプログラミングができるようになり、JITの適用によりWebアプリケーションに一般的に適用されるようになるのではと期待しています。
PHPには今まで何千もの関数が実装されていますが、その多くは、C言語で記述されています。PHP7.4ではFFI(Foreign Function Interface)と呼ばれる仕組みがサポートされ、PHPスクリプトから外部ライブラリの機能を利用するのが容易になりました。これにより、PHPに実装された多くの関数もPHPスクリプトで記述できるようになり、PHP自体のメンテナンス性が向上することを期待しています。
私は、PHP8には将来我々が住む世界を広げてくれるような重要な進化があったと考えています。技術は出た瞬間から「すごい」とされるものと、出た瞬間は「それほどでもないが、後からじわじわくる」ものの二種類があります。PHP8はどちらかと言えば後者に当たります。
過去にも、例えばiモードのように、技術が生まれた当初は何がおもしろいのかと思われていたものが、やり方をみんなが考えたことで、楽しんで使われるようになったものはたくさんあります。もちろんPHP8のJITが広く使われない可能性はあります。機械学習についても、PythonがあるからPHPではやらないとされてしまえば、PHP8のJITはあまり使われない残念な機能になるかもしれません。
そういう意味ではPHP8のJITの最終的な評価は現時点で未知数ですが、いろいろな進化の余地が出てきたというのは良いことだなと思います。私自身もこれまで通り、その時々を楽しんでいきたいと考えています。
柏岡氏は実行委員長としては2回目の就任ですが、今回のPHPカンファレンスはどのようなものにしたいと考えていますか?
柏岡氏:20回目を迎えるということもあり、初回から参加していたので実行委員をさせていただきました。仕事でも利用させてもらっていて、今あるのもPHPのおかげと思って恩返しの気持ちも大きいです。
例年通りの開催であれば、テーマをRe:bornとして新しいことをいろいろ考えていたのですが、今回はコロナ禍の影響で、初のオンライン開催となりました。オンライン開催ですがRe:bornということで新たなことを試すチャンスだとも思っています。
今はすべてが手探りの状態です。参加される方に興味を持ってもらえるか、楽しんでもらえるか、そして当日どれくらい盛り上がれるかというのはやはり心配ではありますね。
ユーザとのコミュニケーションで何か考えていることはありますか?
柏岡氏:カンファレンスとして、開催者側からの一方的な形にはしたくないと考えていますので、質疑応答を含めて、何らかの形で双方向のコミュニケーションを取るつもりでいます。
オンラインに限ったことではありませんが、質問できたとしてもそれができるのはすべての人とは限りません。最後に予定している懇親会を楽しみにしている方が多いということを聞いていますので、ツールを上手く組み合わせて、参加する方とコミュニケーションを取れるようにしていきたいなと考えています。
廣川氏:カンファレンスは聞いているだけでも楽しいですが、その脇でたまに雑談をして盛り上がるといった出会いもあり、すごく貴重な場だと思っています。今回はオンラインになりますので、そうした出会いは難しいですよね。ただ逆に言えば、参加する側は蒲田に行かなくても好きなタイミングで参加できるのはいいことだと思っています。
講演する側は質問をチャットで受け付けることができるので、文章として見えることのやりやすさはありますが、それでも聞き手とのコミュニケーションでは隔たりがあると思っています。双方向が主役になれるよう、うまく工夫したいなと思っています。
イベントの見どころはどこですか?
柏岡氏:おすすめしたいのは基調講演である徳丸浩さんの「ウェブセキュリティのありがちな誤解を解説する」と、廣川さんの「PHPの今とこれから2020」ですね。また今回はPHPのリリースマネージャーが参加しますので、こちらもぜひ聞いて欲しいところです。
ほかにも、海外からのスピーカーは例年に比べて多いですし、首都圏以外からのスピーカーも参加しています。PHP8に関するセッションも多いので、どれも楽しみにしてください。
僕は初心者向けのセッションを毎年担当しています。今年も行いますのでプログラミングに慣れていない方やPHPは初めてという方も安心していらしていただければ嬉しいです。
オンラインということもあり、今までとは一味違うカンファレンスになると思います、以前にも参加いただいた方はもちろん、これまではなかなか参加が難しかった人も、ぜひこの機会に参加してほしいですね。
PHPカンファレンス2020の詳細とお申し込みは以下をご覧ください。
https://phpcon.php.gr.jp/2020/
廣川類氏プロフィール
PHPホビーユーザでPHPユーザ会発起人の一人。PHPマニュアルの翻訳をきっかけに、mbstringエクステンションの開発などPHP自体の開発に参画。新しもの好きで、かつ、古くて味わいのある技術も好き。PHPカンファレンスでは、毎年PHPの最新情報を紹介している。
柏岡秀男氏プロフィール
有限会社アリウープ代表取締役
PHPカンファレンス2020実行委員長
PHPユーザ会発起人の一人。PHPカンファレンス初心者セッションの人。認定スクラムマスター・プロダクトオーナー。PHPを中心としたアプリケーション開発を行う。開発経験を通して得た経験からスクラム導入やDevOps、チームマネージメントなどを得意とする。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 「PHPカンファレンス2021」の見どころとPHP 8で押さえておきたいポイント
- 今年の実行委員長に聞く! 国内最大級のPHP祭り「PHPカンファレンス2014」の見どころ
- 現場のプロが「これ、推薦します!」
- 「前例がないことへの挑戦」ー まつもとゆきひろ氏インタビュー 15周年を迎えた「Ruby City MATSUEプロジェクト」のこれまでとこれから
- エンジニアの開発効率はモチベーションで決まる―インテリジェンスが目指すいいチーム
- 「PyCon JP 2015」がやってくる!! 見どころ満載、楽しみ方は無限大
- 参加者から見たKubeCon Europe 2023のようすを紹介
- マイクロソフトUS本社見学ツアー:1日目
- 新卒2年目と中途13年目のチームメンバー同士が語る世代間ギャップとは
- 「PHP 8」のアルファ版がリリース