ぼくとわたしのPHP
CakeMatsuriにお越しになってLTもやっていただいた高橋さんから「PHPユーザーはもっとPHPについて愛を語るべき!」というような趣旨の事を言われ感銘を受けました。
そこでその感銘をストレートな形で表現すべく「ぼくとわたしのPHP」として僕自身のPHPとのかかわりとか気持ちを綴ってみます。
PHP以前
小学生の頃にMSX-BASICとN88BASICに出会う。特にMSX-BASICは中学生くらいまでリストの打ち込みや改造、アセンブラあたりまでやっていた。ちょうどMSX関連雑誌の相次ぐ休刊によりしばらくプログラミングから離れる事に。
その後、大学時代にWEBサイトを友人と作ることになりコンテンツが多かったので自動で更新する方法を模索。結論としてはperl/CGIのWEBインターフェースからCSVを読み込んでコンテンツを生成する方法に落ち着く。
perlの文法はkent-webの掲示板を改造しながら覚えた。生成したテキストファイルをssiでinclude virtualして読み込んでいた。全体までperlから生成してしまうとちょっとした修正をする時にツールを起動しなおすのが面倒なのでそういう形式にしたのだと思う。
PHPとの出会い
大学を卒業後にバイトで講師をしていたIT系のスクールで飯塚さんに出会う。なんかの時に作っていたサイトの構成の話になり「SSIでインクルードするよりPHPにした方が簡単だよ」と言われ、試してみると確かに簡単。
SSIの時と違いエラーが画面で確認できるのがとてもよかった。(裏でターミナル開いてエラーログを確認しないでいい)ということでサイトをPHP+MySQLに作り直す。ついでにPHPの講師も始める。PHP4.2の頃で授業ではmb_stringを有効にする方法とかを教えていた。
PHPで開発案件
その後、知り合いのつてでちょっとしたツールなどを書く仕事をPHPでやっていたが、またしても飯塚さんの誘いで「PHPで大規模案件」をやっていてヘルプで入って欲しいとの誘い。初めて参加した開発案件はデスマーチだった。
ここでSmarty+PEARで大がかりな携帯サイトの開発に関わりエラー処理やまともなモジュール設計などをPHPで初めてやることに。
でも今思い出すと顔から血が出そうなくらい恥ずかしいコードを量産していましたよ。
楽天の開発現場とコミュニティ
しばらくマイペースでやったあとに楽天の現場で働くようになり、MojaviだったりMojaviっぽい何かを使った開発をやるように。少し前にStrutsやらアプレットやらをやっていたので構成自体には戸惑いはなかった。ただオレオレフレームワークの設定ファイルの場所などをコードを読んで理解するなどの作業は最初はちょっと大変だったが、読めばわかるのが救いだった。
少ししてPHP勉強会にも参加するようになり講師時代に触る事の多かったWindowsとPHPの話で発表デビュー。その後はCakeを触るなどしているうちに本を書いたり、海外に行ったり、受賞したりで今に至る。
PHPのここが好き
自分自身が文系の出身なのでプログラミングというのは教わるものではなくいつも自分で触って体得するものでした。何の素養もない自分にとってはエラーを画面に垂れ流してくれたり、オブジェクト志向の作法を気にせずに制作することが出来たのは大きな利点でした。
実際、perlのツールをいじってたころはモジュールの意味とか分からずに書いてたし。
使う立場、教える立場の双方でPerl、、PHP、J2SE、ActionScript、JavaScriptと関わってきましたが付随するツールや環境の設定作法が多いものは未経験の方に教える時には障害になりやすかったです。その点で環境の設定やデプロイ、エラーの確認がやりやすいPHPは初期の学習コストが非常に低いのだと思います。
最近はRubyも触っていますが、RedmineとWordpressではやっぱりWordpressの方が設定が簡単であると言わざるを得ないと思います。
そういうわけで僕がPHPを好きな理由はなんとなくでも動かせる簡単さと使い勝手(デプロイ)のよさという事かなと思います。
そういう意味ではJavaScriptも全く同じような特性を持っていますね。他の言語も触る機会はありましたがPHPに出会ったからこそ今の自分があったと思うし、もしPHPが無かったらどこかで野たれ死んでいた気がするので、PHPに対する感謝の念はとても大きいです。
ダサくたっていいじゃん!みんなが簡単に使えてそれで何かを作れたならそれってハッピーじゃん!PHP最高!
ご清聴ありがとうございました。
#誤記をブックマークコメントを元に修正しました、ありがとうございます!