2010-06-03

PHP 5.3

いまさらながらPHP 5.3と向き合う。もうPHPなんかに期待しないよ、仕事でみんなと使う言語だよ。面白いことはPythonでやるよ、とPHPを見捨ててから3年。PHP 5の進化もまったく注意も払っていなかった。今更どうにもならんだろうと。

さて、今年。自分的には今のところ激動の2010年なのだが、いろんなテクノロジーがPHP 5.3へバトンをつなげてくれた。

KVS → Tokyo Tyrant → MongoDB → Lithium → PHP 5.3

実は5.3のことはあまり知らず、6.0へのつなぎ、内部文字コードがUnicodeになるよー、覚悟しとけバージョンだと思い込んでいたら、実はとてつもなく強力な機能が投入された、まるで別の言語になっていた。その二つとは、無名関数と名前空間。

無名関数=名前のない関数、昔はそんなものがなんに役立つのと思っていたが、最近のコーディングを振り返ってみると何でなくてやってこれたんだ?という思いになる。イベント駆動型のプログラミングを今までもやってく体他が、かなりの苦労と意味のない名前、特に日本人にとっては頭の切り替えを必要とする英語名をつけなければいけないという作業をやっていたことになる。

「この作業をやって欲しい、中身はこれこれこうだ」
「わかりました、それでこの作業に名前はなんでしょうか?」
「名前が必要なのか?やることはわかっただろうに」
「名前が必要なんです。決まりです」
「じゃあお掃除処理でいこう」
「すみません、英語でお願いします」
「…」

名前つけなくてよければ、これお願いですむところを、余計な頭を使わされていたことがわかる。無名関数万歳。関数が変数に入れられるとか、そういう恩恵以上に大事な要素と思う。

そして名前空間。過去に「結局クラスって名前空間、責務の分離だよね」という暴論をはいたことがある。若さ故の過ち、でも名前空間はそのくらいの大事な要素。これはクラスという機能をねじ曲げてでも名前空間が欲しいという気持ちの表れと今は擁護したい気持ちでいっぱいだ。

またPHPはここでも論争の的となるチョイスをしている。名前空間の区切り文字にバックスラッシュを採用している。もーっ!とも思うんだけど、これはたいしたことではないなと。もたらされるメリットのためなら目をつぶる。無視できる範囲。変数に$、メッセージ送信に->と同じレベル。いちいち語尾に「じゃん」とか付けるなよ的な。

ということでLithiumとともにしばらく遊んでみたいと思う。幸いSnow LeopardはPHP 5.3なので問題なし。ローカルで試せるのがうれしい。

0 件のコメント: