はい、どうもこんにちは。 雨宿りとWEBの小噺、始まりました。
パーソナリティのkeethことKuwaharaです。 この番組では、WEBテクノロジーの歴史や、裏側にあるちょっとした小噺をご紹介しております。
今回のお題は、プログラミング言語PHPというものがあるんですけど、 この開発者の方っていうのは、もともとPerlを使っていたんだよ、みたいなお話。
ちょっと歴史っぽいお話をしようかなと思っております。 最近、この番組で名前の由来とか開発秘話みたいな話続いているんですけど、
それがトピックではありますが、今回はちょっと毛色を変えてみようかなと。 言語に関してですけど、私はですね、一番最初に触ったプログラミング言語ってC言語なんですね。
これは大学入学というか、大学の必修科目で初めてプログラミングってものに触れまして、 そこで触れたのがC言語だったんですね。
学生の頃、私も盛大にポインターでどん詰まりをしてしまいまして、 仕事で初めて使った言語は、ちなみにPHPなんですね。
本当、C言語難しすぎて、友達に単位を取ってもらいながら卒業したのが懐かしいなと思います。 今でも理解しているかって言われるとちょっと怪しいんですけど。
仕事ではウェブ制作というかウェブアプリケーションの開発をしておりまして、 その頃PHPを使ったいわゆるランプ環境でお仕事をしておりました。
ゴリゴリに書いてた時期ですね。 今はそんなに書かないというか、PHPはもう何年書いていないかわからないですけど、当時は本当にお世話になったなと思います。
確かPHP5.6だった気がしますね。5.4かな?2かな? いやーしみじみ今考えれば、あれで頑張ってたなと思いますが。
ちなみにPHPってC言語で書かれている処理系なんですよね。なので近いっちゃ近いですけど、全然見た目というかAPIインターフェースは違いますね。
学生の頃と社会人の頃、両方でちょっとずつ縁があった言語ということとは言えるかなと。
その時にふと思ったんですけど、PHPってそもそも誰が作ったんだっけって。今なら知ってるんですけど、昔は全然そういう開発者の人の名前とか、どんな人が作ったのみたいな全然興味なかったんですけど。
改めて振り返った時に思ったんですね。
Rubyだったら超有名な松本幸寛さんですね。日本人の方っていうところも結構話題だったと思います。
Pythonだったらグイードさんことグイード・バーン・ロッサムさん。JavaScriptだったら私の尊敬するブレンダン・アイクさん。
みたいに結構お世話になった言語、パッと名前浮かぶ作者の方っているんですけど、意外とPHPの作者の名前って出てこなくて。
いやあんだけお世話になったのに知らなかったんだなっていうのをふと思った時期があったんですね。
これは調べるしかないと思って調べてきましたら、面白い話というか、今日のテーマである元々パール使いだったっていう話に出会ったんですね。
先にちょっとだけ数字の話をしておきます。
PHPって最近話題としては正直今更感あると思いますが、PythonとかTypeScriptとかRustの方が最近盛り上がっている印象はあります。
特にこの番組でもその方面の話が多い気がしている。ちょっとうろ覚えですけど。
ワードプレスとかってPHPで動いている。世界中のウェブサイトの4割以上がワードプレスだと言われていたり、5割と言われていたり、諸説ありますが大体それくらいのデータを見ます。
サーバサイドの言語がわかっているサイトだけで見てもPHPの視野っていうのは8割近いというデータもあったりします。
8割ですよ8割。やっぱ多いなぁとつくづく思いましたねPHP使っている現場って。今でも現役どころかまだまだ一線で頑張っている言語と言ってもいいんじゃないかと思ってまして。
しかもPHPって古い言語でしょうっていうイメージありますが、2020年にリリースされたPHP8ですね。
Zコンパイラーっていう仕組みが入って実行速度がさらに上がったんですね。アノテーション機能とか今時の言語らしい機能っていうのもどんどん追加されていて、
割と最近までアップデートされ続けているので、モダン言語なんだよなっていうのを改めて見ながら思いました。
で、本題のそんなPHPを作った人。お名前はラスマスラードフさんとおっしゃいます。僕はまあこういう読み方でいきたいと思います。
僕ですね実は1回だけ直接お会いしたことがありまして、皆さんも会ったことある方多いと思いますが2015年のPHPカンファレンス大田でやっていたカンファレンスですね。
あの年はちょうどPHPの生誕20周年ということもあって、運営の方がラスマスさんに横絵描きをしたところ来日していただいたという感じです。
しかもその当時のPHPのバージョンPHP7が出る直前だったっけ?出た後だったっけ?ぐらいのタイミングだったんですよ。
でラスマスさんご本人が来日して基調講演をやっていたという感じです。スピーディングアップだウェブウェイズPHP7というタイトルだったと思います。
会場ですね僕も行ったんですけど結構な人だかりでやっぱり海の矢が来るということでそら行くよなと思いましたね。
その終わった後、質問コーナーもあったんですけどそこでまさかですね2ショットを撮らせていただけるみたいなものをわざわざ運営の方が用意していただきまして
そらいくわーっていうのはねもう私はミーハーだったので全然その当時の写真見返すと笑顔を作ってるけど全然笑ってなくて緊張しすぎみたいな顔です。
いや懐かしいなと思いますけど。はい。な感じでまさか2ショットを撮らせていただけるとは思わなかったですね。
ちなみにその時のラスマスさんの基調講演の後の質疑応答で一番面白かったのは私はC言語で仕事をしているんでPHPのプレームワークとか全然詳しくないんですよと言ってたんですね。
まあそりゃそうだよねPHPを作ってる側の人なんだからPHPってC言語で作られているのでそら仕事はC言語だよねっていうのもよくわかります。
いやーあれ面白かったですね。話戻しましてこのラスマスさん、デンマーク系カナナ人の方で生まれはなんとグリーンランドなんですね。
1968年生まれの方でもうだいぶお年を召してるんですがグリーンランドって北極圏に近い世界最大の島ということでデンマークの自治領ですね。
そこで生まれた人が作った言語がPHPですと。全世界ここまで使われているスケールがでかいお仕事をされているっていうのがすごいなと思いました。
この方がですね1994年かなインターネットが結構広まってきた頃らしくてグラフィカルなブラウザーが出始めたばかりの時代です。
モザイクとかネットスケープとかあのあたりが出てきた頃ですね。 いや本当僕よりも全然大先輩の方々は懐かしいなと思われると思いますが
ラスマスさんはこの頃カナダでITコンサルをしながら自分のホームページっていうのを持っていました。今で言うポートフォリオサイトみたいなものです。
履歴書とか経歴とかをまあそこに載せたシンプルなものだったようですね。
で誰が見に来てんねんっていうのが気になったらしくて今だとまあグーグルアナリティクスとかサーバーのアクセスログ解析ツールとかたくさんあるんですね。
ただ当時はそんなものなく自分で書くしかないということでその当時使っていたのがパールですと。
パールってPHQより前に主流だったスクリプト言語で当時のCGIプログラムと言われるもの。
実は今でも現役で動いているそしてCGIで作られているサイトって探せば実はあるんですけど。
つまりウェブサーバーとプログラムをつなぐこの仕組みっていうのはパールで書くのがその当時は結構もう当たり前と言っていい時代だったんですね。
ところがこのパールのCGIっていうのは使い続けるうちに問題が出てきまして。
何が問題かというとリクエストが来るたびに毎回プロセスを新しく起動するんですよ。
誰かがページにアクセスするためにサーバーがパールのプログラムをまたゼロから起動して処理をして終了してまたゼロから起動してっていうのを繰り返すと。
なので例えば1秒間に10人アクセスが来たら10個のプロセスが同時に立ち上がるイメージですね。
アクセスが少ないうちは全然いいんですけど増えてくるとどんどんどんどんそのプロセスってものが立ち上がってコンピューターのメモリーもCPUもどんどん食われていく。
で最悪サーバーがダウンしてしまう。
個人のポートフォリオサイトなので大量アクセスはなかったというふうに想像してるんでしょうなと思いますがそれでも積み重なるとサーバーがもたついて重くなってしまうみたいことが起きていたと予想します。
ラスマスターもおそらくですけどね同じ問題をぶつかってこれはきついんだろうなっていうふうになって書き直すことにしたらしいですね。
それをC言語で書き直そうと。
ただC言語ならパールみたいに毎回プロセスを起動するオーバーヘッドがなくて処理が早いというふうに思っていて問題があるなら書き直すというこのシンプルな話です。
その後のPHPに繋がっていきますと。
そうして1995年大事な年ですね。
僕の大好きクロノトリガーの発売された年です。
余談でした。
このC言語版のツールの群を公開します。
名前がPHP Toolsという名前でPHPって今の意味だとPHP Hypertext Preprocessorという名前なんですけど。
最初はパーソナルホームページツールズの略だったんですね。
いわゆる個人のホームページのためのツール。そのまんまの名前ですね。
自分のサイトのために作ったからそうなるんですけど。
今世界中で使われている言語の最初の名前がこれかと思うと面白いというかちょっと名前が安易だったなというふうに思ったりみたいな感じです。
続いて1995年6月ですけど、ここでGPL、GNU General Public Licenseという形で公開されました。
つまりオープンソースとして世に出たのがこのタイミング。
同じ問題で困ってる人っていうのは他にいるんだろうと。
割と軽い理由で公開してみたらしくて、この辺の感覚も私はラスマスさんらしくて好きだなと。
便利なものを作ったから使ってよくれるノリですね。
今のOSSの文化に近いものがあったっていうのもすごい好感だなと思いました。
で、ここが今日一番のメイントピックというかとこですが、
ラスマスさんって後のインタビューでこう語られています。
プログラミング言語を作ろうとしたことは実は一度もないと。
どうやって作るかも全くわからなかった。
ただ次の論理的なステップを追い続けましたって話をしていました。
いやーなかなかすごいですよね。
言語を作ると思って作られたと僕も思ってたんですよ。
ただ作り方なんてそもそもわからんかったと言ってるのが、結果でも作っているんですもんね。
本当にアクセスログを取りたかっただけなんでしょうね最初は。
そこから始まって機能が少しずつ足されていて気づいたら言語になったという経緯なんです。
設計図があって作り始めたっていうわけでもない。
日々のこれあったら便利だよねみたいな積み重ねだったということで。
そういうの聞くとPHP使ったことある人は多少感覚あると思いますけど、
なんか作り込み甘い言語だよなっていうふうには僕も思ってたんですけどそれはそうだな。
さらに別のところでもこう言っていて、プログラミングは実は大っ嫌いだと。
でも問題を解決するのは好きだと言ってるんですよ。
いやーなんか言語作者がプログラミング嫌いっていうか大っ嫌いと言ってるのもなかなか面白かったですね。
まあやりたかったことが別に何かを作りたかったとか言語が作りたかったじゃなくて問題の解決をしたかったんですよね。
その策として結果的に言語になったっていうだけなんですね。
だから壮大なビジョンとか本番になかったんだなっていうのがつくづくこの言葉からも感じられます。
なのでウェブとの相性も良かったっていうのもあるかもしれないですね。実用から生まれた言語ですから。
ウェブってそもそもこういうことしたい、これをできるようにしたいのを積み重ねで発展してきていますと。
PHPはそのニーズに直球で応える作りだったからこそ広まったんだろうなーみたいなのが思ってます。
他の開発者からどんどんフィードバックが来るようになって機能が少しずつ追加されていきました。
フォームのデータを処理できるようになりデータベースと連携できるようになってPHPスラッシュFYというバージョンに進化をしていきます。
FYはちなみにフォームズインタラプターの略です。
1997年に大きな転機が一回訪れます。
イスラエルのテクニオンイスラエル工科大学という世界的にも有名な大学があるんですがそこの学生2人というのが登場してきます。
アンディ・ガットマンズとゼーブ・スラスキーという2人です。
この2人が大学の課題でECサイト、今でいうネットショッピングのサイト、Yahooとか楽天とかAmazonとかいろんなカテゴリーとかを分けると
同じ並びにしていいかちょっとあれですけど、広い括りでECサイトですね。
こういうものを作らなきゃいけないという課題をやっていてPHPを使うことにしたらしいです。
ところがどっこい、いざ使い始めると当時のPHPってバグだらけで機能も全然足りなくて使い物にならなかったんですよね。
指導教員の先生からもPHPはやめとけと実際言われたらしいんですよ。
じゃあどうするのということで普通の学生なら別のツールに切り替えるところを
なんとこの2人はPHPというアイディア自体はすごく良い。実装が良くない。
だったら俺たちで書き直そうぜっていう風になったんですね。
大学の課題をやるはずだったのになぜかPHPツールを書き直すという方向になると。
滑走はすごいですね。エンジニアらしくていいと思いますが。
こんくらいPHPというアイディア自体は信頼があったという証明でもありますね。
でこの2人がラスマスさんにコンタクトを取って一緒にPHP書きませんか書き直しませんかと提案をしたところ
ラスマスさんも栄養となって3人で協力してPHPを大幅に書き直したのがPHP 3.0だそうです。
1997年にリリースされたPHP 3.0っていうのはそれまで比べ物にならないくらい安定していて機能もかなり充実されたらしいですね。
僕3.0全然触ったことなくてわかんないんですけど。
でこれが出たところ爆発的に普及して1年ちょっとで何十万というウェブサイトがPHP 3.0を使うようになったとも言われていますと。
さらにこのお二人はPHP 3.0だけで止まらなく次はPHPの実行エンジン、いわゆるインタープリタのことです。
これ自体を一から設計をし直しますと。
そして生まれたのがZENDエンジンですね。ZENDって何って話ですが、ZEVEとAUDIの名前を組み合わせた造語ですね。
2人の名前を合体したエンジンということです。
いやまあ自分たち作ってるんだからこの名前も想像に固くないですけど。
なんか自分で生み出したツールに自分の名前つけるってかっこいいよなと思いますね。
それが今世界的に使われているツールっていうところもなかなかいいなと。
でこのZENDエンジンを搭載したPHP 4.0っていうものがリリースされたのが2000年ですね。
そしてPHP 5.0が2004年にリリースされてこの辺からPHPっていうのが本格的なサービスにも使われるようになっていきます。
まさに僕もPHP 5を使い始めたのはこの辺だと思うんで、まあそうだよなと。
正確には2013年ですかね僕が入社したのは。
バージョン5.0じゃなくて5.6なんで結構時間タイムラグはありますが。
なんかね新しいものが生まれる背景って
既存のものへのちょっとしんどいなという感覚があることが多いんですけど
それって今でも変わらないなというふうに思いましたね。
はい。
振り返ると言語を作ろうとしていた
答え一度もないっていうふうに言ってる人が作った言語に
私も含めて世界中のエンジニアっていうのがお世話になっているんだなと。
しかもその人と自分がそういうショットを取ることになるとは思わんかったですね。
なんなら僕本当にプログラミングの世界に行く気なかったですからね、もともと。
なので2015年の会場でそんな機会に出会えるとは思ってもなくて
なかなか人生何あるかわかんねえなとか思いましたね。
今こうやってポッドキャストのネタにできるのは結構ありがたいなという感じで
改めてこのエピソードを聞いてちょっと思ったのは
よく言われるMVPですね。ミニマムバリアブルプロダクト。
バリアブルだっけ?ミニマムバイアブルプロダクトか。
の発想ですね。
完璧を目指すんじゃなくてまず動くものを作って出すという考え方ですけど
あと最小のものを作ろうぜっていう話ですね。
PHPの生まれ方ってまさにそのまんまなんですよね。
この設計とかなんちらみたいな美しさみたいな話とかは
全部土返しをしてとにかく出すことっていうところに
フォーカスした作りではありましたけど
がっつりちゃんと設計書を書いて作るんじゃなくて
とにかく目の前の小さい問題を解決するものを作って公開して
反応を見てまたそれを直すというこのサイクルを繰り返した結果
こういうちゃんとした言語としての基盤になったと。
プロダクト作りもチームでもそうですけど
割と本質的な話だと思っていて
最初から完璧な設計を目指しすぎて書道がすごい遅くなるっていうのは
本末転倒な気がするんで
改めてこういう現場でもよくある話だなという風に
考えさせられるというか意識させられる話だったなという風に思います。
なので最近はAIがあるんで書道のスピードもそうですけど
ある程度のクオリティもちゃんと担保できるようになってきたっていうのもあるので
改めてその出すことへのスピード感よりも書道での設計というか
もっと言うとスタートの設計にちゃんと時間を使ってもいいんじゃないの
みたいな考えにシフトするのも一つかなと思いますし
サービスをちゃんと作るって考えると先に出せば出すほど
それを見て学習した後続のサービスたちが
自分たちのサービスを上回って出すことも多いにあるので
早く出しすぎることへのリスクっていうのも最近はあるので難しいですねこの辺は
とはいえまず出すことっていうことの大事さっていうのは
そんなに大差ないというか変わらない気はしているので
ずっと出さないで出さないでビジネスいつスタートすんねんって話はあると思いますので
どっちかというと体験にね時間と労力を使って
他者に真似できないっていうような作り込みをする方に頭を使う方が
今の正解なのかなとは思いました