PHPMatsuri 2010 からの1年を振り返って

もう間もなく開催される PHPMatsuri 2011 にむけて、 @koyhoge さんの 秋にはプログラム言語イベントの大トリに行くのだ - Blog::koyhoge からのバトンを受けました。
PHPMatsuri リレーブログ 、今日は僕の担当です。

祭り自体についてはみんな書いてくれるだろうから、僕は PHPMatsuri 2010 に参加してからこの1年間で、自分に起こったいろいろなことを書き、PHPっていいねにつなげようと思います。

この1年ぐらいのまとめ

PHPMatsuri 2010 の少し前、@slywalker さんが大阪で開催してくださった CakePHP の初心者勉強会に参加しました。そこでも多くの人との出会いがあったのですがちょっと今回は省略して、その帰りで一緒になった @tbsmcd さんをたまたまフォローし、たまたま話が合って2人だけオフをしたとき、拙作の Pinoco をきっかけに「PHPまつり行けばいいじゃないっすか」と誘われた、というのが PHPMatsuri 2010 を意識した最初のきっかけでした。

とはいえ自分は関西在住でまだ慣れてないPHPコミュニティ、お金もかかるし、行こうかどうしようかとツイートしているところへ、@rsky さんに「自分も関西からだよ」と言ってもらい、いよいよ総費用約5万円を出す決心がついて、えいやで支払って後戻りできなくしました。(2010年の開催は東京でした) (その直後、@rsky さんは東京の人になりましたけど)

2010 のオープニングから度肝を抜かれたのは、英語。海外からPHPベースの主要なソフトウェアの関係者を呼んでいて、彼らにはまったく日本語が通じないこと、彼らの直接の声はすべて英語だということ、また、当時楽天が公用語を英語にという騒ぎもあって、とにかく英語への意識を高めさせられっぱなしでした。

そこで自分が確信したこと。
「アルファベット文字でないと、合ってるか間違ってるか以前に、ほとんどの人に読んでもらえない」
これすごく大事。今はもうソフトウェア技術について言えば、インターネットのおかげで世界中の人が地理的な課題を克服したのに、そのうち日本語が読み書きできるのは60人に1人しかいない。大雑把にいうと、日本語しかしないということは、1つの結果を得る間に、59回のチャンスを逃しているようなものですよね。

それまでも、オープンソースプロジェクトにパッチを送ったりコミッタとしてバグ潰しをしたりする中で、最低限の英語でやりとりはしていましたが、この日ほど強烈に英語の重要性を生で感じた日はありませんでした。

個人的に自分をPHPに強くつなぎとめた、もう一つの点は、「Lithiumは画期的だと思いますが、なぜそれが自然にできるPytonやRubyでやらなかったんですか」という質問に答えてくれた @nateabele さんと @jperras さんが言ってた「PHPは6になるのをやめて、今ちょうど変わろうとしているから、チャンスなタイミングだと思う」という言葉です。2週ぐらい回って深い言葉だと思いました。つまり、「PHPの波に乗るチャンス」であると同時に「PHPを変えるのに自分がアクションできるチャンス」でもあるんだ、と。

前後、ということで、PHPMatsuri 自体で起こったことはこのぐらいにして、そのすぐ後のある日の話です。CakePHP のセッションを担当された @predominant さんが関西方面を観光して帰るとのことで、誰か関西の人は声をかけたらいいと思いますよとツイートしたところ、@ganchiku さん(英語バリバリ)に反応してもらえましたが、そのあとあまり反応がなかったので、いきおいで自分も行きますと(少々読み書きはやるけど英会話はダメダメなのに)アタックしました。京都で2件ほどお店をまわりつつ、どうにかこうにか意思疎通していました。(いきおいで何とかなるというのは、実はちょっと @edp02 さんを見習ったというのもあります)

PHPMatsuri 2010 のあとは、Pinoco の概要を英文で書き直すなどしていました。関西在住だったイギリス人 @mackstar さんに見てもらい、その後間もなく Google Code (まだsvnだった) から GitHub に移し、さらにそこで、20ファイルのチュートリアルの英訳バージョンを書きました。まだ英語圏からのフォークはありませんが、いつの間にか、英語の紹介記事が書かれていたみたいです。下手くそで全然説明は足りないけど、英語ドキュメントを書いていて良かったと思います。

それからというもの、関西で開かれるPHPに関係ありそうなイベントに参加するのが当たり前のようになってきました。それで、半年ほど経って @shin1x1 さん発案で開かれた「PHPカンファレンス関西」の日、たまたま帰り道で一緒になった @ganchiku さんに同行して、@iteman さんの家にお邪魔しました。帰り道の途中だったので、寄ってみようと当初は思っていたのですが、結局なんだかんだと朝まで語ることになりました。駅から遠いんですよもう。Twitterのタイムラインでしか知らなかった @hidenorigoto さん @brtriverさんとの出会いもそのときでした。「PHPTAL はもっと評価されるべき」という意見が初めから通じたことが思い出です。

コミュニケーションは続けてみるもので、 @cakephper さんの 色々なPHPフレームワークのパフォーマンスを比較 - cakephperの日記(CakePHP, MongoDB) に提供した Yii の場合のおまけの Pinoco 版が最高成績を出しちゃったり、突然東京に行くので誰か会いましょうという無茶振りに @mon_sat さんが現れてくれたりと、PHPユーザのコミュニティの中に飛び込んで、すごく楽しい1年を過ごしました。全部書いているとキリがなくて、もっと他にも出会ったり楽しんだりした人はいて、もう名前を出しきれません。とにかく、PHP を中心にとても多くの新しい事にめぐり合うことができた年でした。

こんなきっかけをくれた PHPMatsuri 2010 ありがとう。名前を挙げさせてもらった皆さん、挙げきれてないけどああ俺も俺もと心当たりのある皆さん、本当に感謝しています。まとめてですが、みんなありがとう。

そしていよいよ始まる PHPMatsuri 2011、また次の1年にむけて、これを大きなきっかけにしたいと思っています。

こんな感じで、PHPユーザコミュニティの中ではすごく経歴の浅い自分が、たった1年でこんなにも多くの人に出会い、強い思い(英語とTAL)を持つことができ、交流できたきっかけになった PHPMatsuri はやっぱり偉大です。ホテル代、交通費、たしかに出費はありますが、そんなのすぐに取り返せるぐらい、このイベントへの参加は貴重な体験だと僕は思いますよ。

最近感じているPHPの印象

ええと、そろそろオレオレ思い出話は切り上げて、なぜ PHP コミュニティがそんなに面白いんだろうと考えてみました。PHP のユーザコミュニティには、並べて考えると面白い特長が2つあると思います。

ひとつは、「みんながやっていることの重なりが大きい」ということ。他のプログラム言語は、Web に使う以外にも、汎用プログラム言語としていろいろな目的に応用されます。また、どの部分に力を注いでいるかが違う場合もあります。

Rubyを例に取ると、Rubyの言語コアとRailsの両方にまんべんなく注力する人はそうそういません。Pythonを例に取っても、それこそ本当に用途と価値観がバラバラです。共通しているのは言語への愛情だけ。まったく興味が重ならない人が、ひとつのプログラム言語コミュニティに存在する、そういうのが普通のコミュニティだと思うのですが、PHPはちょっと違います。

PHPはHTTPレスポンスを返すことでしか活躍できません。ものすごく用途が狭いです。そしてまた逆に、言語文法はひどいもので、コアの文法に関する美学については、愛情のかけらもありません(笑)。今日雑談で、「PHPの関数はああいうVMコードだからなぁ」っていう話が上がり、やっぱりそういう感覚だよなと思いました。

でもその狭さ(と諦めて近づかないゾーンがあること)が、みんなに共通する価値観が生まれる場所にもなっていると思います。用途という横軸は狭く、興味を持つ層という縦軸も、言語コアではなくより応用に近い方へ。


もうひとつは、それと矛盾するようで矛盾しない、「適用事例の幅やフレームワーク思想の幅がすごく広い」こと。Webのアプリケーションというのは、処理量のスケールも、開発の複雑度のスケールも、ほんとにピンキリです。

中小企業のインハウスツールで、ドメインモデルは企業独自の複雑度を持っているけど、使用頻度は数人がたまに使うだけのもの。ソーシャルゲームのような、ものすごい数のユーザが、これまたすごい頻度で、シンプルなHTTPのAPIを叩きまくるもの。そんな極端な事例のグラデーションができているのが、PHPの幅広さだと思います。グラデーションだから、ちょっと自分のポジションに外圧がかかる(もうちょっとパフォーマンスが要る/もうちょっと生産性が要る)と、すぐ隣に違う思想がある。どっぷりな言語愛から離れて、そういうレイヤーでの多様性を楽しめる世界。


そういうコミュニティから学ぶPHPのありかたというのが、最先端の究極の答えを求めてトップランナーの後を追うようなものの正反対で、いろんな山があって、隣の山と自分の山を比べると、考え方によっていい所も悪い所もお互いにあり、結局どこにも究極のトップはない。だからこそ、あれがひどいこれがひどいと言いっても許されるし、あれもいいねこれもいいねと思ってても許される。同じ価値観の根源を持ちながら、それでいて多民族な国であり、何をしていても、応用結果重視で有意義なら許されるし尊重される、というのが、PHPのユーザコミュニティの面白さだと思います。

ぶっちゃけ、とにかくみんな優しい。それは僕の体験談が物語っていますよね。それに、セキュリティの怖い人も、表面的にそうしてるだけで、ほんとに本心を顔に出さないような人と比べたら、ものすごく優しいと思うんですね。だって、敵対したほうにもきちんとわかる説明をしようと努力してくれてるんだもん、なんて親切な。あと、みんなdisり耐性もあるから、幼稚なデマでそうそう火はつかないし、引火してもいい具合に疎結合だし、共有してる言語コアにはムキになって怒るほど愛を注いでないし。



本当に「PHP って言語どうなのさ」と思っている人も、いちど飛び込んでみるきっかけとして、PHPMatsuri はオススメです。もしこれまで PHP ユーザの集まりにハマったことがないなら、間違いなく、それまでのあなたの PHP 観を変えられますよ。

さあ、あとはもう祭りで会いましょう。もうチケットは買いましたよね。
...あ、僕は幼稚園の運動会があるのでだいぶ遅れて行きますので。


次は @kunit さんにつなぎます。よろしくおねがいします。



※ プライバシーを気にして、けど時間はなかったので、あえてTwitterアカウントをそのままリンクなしで掲載しました。もしリンク希望なら、あとで @tanakahisateru に言って下さい。