「PHPer」という言葉
Matz氏の「Attacking PHP」に端を発した今回の祭は予想以上に盛り上がり、いろいろと面白い議論にも発展しています。
そんな中で、話が進むにつれて分かってきたのは、他の言語を使っている人の言う「PHPer」という言葉の意味が自分の認識とはかなり違っているということです。
僕は「PHPer」あるいは「PHP使い」と言うと、様々な状況要因も含めて「PHPを選択した人」だと思っていました。もっと具体的に絞ると、勉強会に来ているようなメンバーの顔が浮かびます。
自分のイメージでは、広義のPHPerは「他の選択肢もあるけど、状況的にPHP使うのが最適な選択だからPHP使ってます」な人。狭義のPHPerは「PHPを深く使い込んでいて、勉強会とかもいつも出てます。執筆とかもしてるよ」ぐらいの勢い。だから、単にPHPでコード書いてますとか仕事してますぐらいだと、広義のPHPerには入るけど、絞り込んでいくと外れるというイメージでした。自分自身はその中間地点ぐらいかなぁ。
「Rubyist」とか「Perl Monger」も単にRubyやPerlを使っている人ではなくて、もっと絞り込んだイメージなんだけど、そうじゃないのか、それとも「PHPer」という言葉だけが違うニュアンスなのか…
僕としては「PHPを使ってる人 = PHPer」では全くなくて、むしろその一部を指す言葉として「PHPer」だという意識でした。今回の件で言われる「PHPer」は前述の「広義のPHPer」よりもう少し広い範囲だろうなというのは感じていましたが、話が広がるにつれ、もっとずっと広い範囲を指しているんじゃないかと思い始めました。
そういう層までひっくるめて「PHPer」という枠で語られてる印象。そりゃ、そういうところまでPHPerとして捉えれば「PHPはダメ、っていうかPHPerダメ」とか言われても仕方ない。もちろん、純粋にPHPの言語としてダメな部分に対する指摘もあれば、そういう層だけがDisられてるわけではないと思うけど、それはそれ。
ただ、個人的にはそういう「たまたまPHPを使ってるだけ」みたいな層をPHPerというのは違和感があるんだけど、他の人はどう思ってるのかな。じゃあ、そういう層をどう呼ぶんだと言われれば、別に枠でくくる必要はないんじゃないかと。強いて呼ぶなら「プログラム初心者」ぐらいの位置付けでしょうか。
PHPの言語としてダメな部分がダメなコードを量産する背景に無関係とは思わないけど、どの言語を使っていてもダメなコードを書くような、しかもそこから進歩する気の無いような層がPHPユーザーの大多数であるかのように扱われると「ちょっとそれは違うだろ」と言いたくなります。
でも外から見てそう見えるということは問題。僕自身、この一年でPHPコミュニティのコアな人達と知り合うことが出来たし、そんな中で「PHPer」のイメージも固まってきたけど、それは極一部の限られた世界なのかも知れません。
こちらで語られているような
PHPのコミュニティは、そういうメンタリティとは逆の人が集っていて「不変の確定した枠組みを作る」ということにフォーカスを当てている。
そう考えると、PHPは「人間には環境は変えられない」という信念にマッチしている分だけ、旧世界には受けがいいけどネットという新大陸では叩かれやすい、ということになる。
というのは自分のイメージとはかなりかけ離れているんだけど、外からはそういう風に見られているということ自体をもっと真摯に受け止めるべきだと感じました。
実際、自分の身近なところはさておき、PHP開発者のコミュニティをグローバルに見ると
おそらくPHPの文化ではその辺のバランスを、現状を変えない方向に振るように、暗黙の圧力が働くようです。そこに独裁者は存在せず、ゆるい合議で物事が決まっていきます。実際に上記の例でも、PHPの作者として名前が挙がるRasmus Lerdorfはarrayパッチに対して賛成の意見を表明していますが、議論はこう着状態ののまま結論は出ていません。そのような圧力の中では、多くの人が明確に利点と思わなければ、ドラスティックな改善はなかなか受け入れられません。しかし逆に考えれば、一般の人から一見とっつきの悪い、プログラミングの難解な概念を習得しなくても、そこそこには使える言語として成熟していくことになります。
といった状況があります。分かってはいたけど、日本のPHP界の中心グループにいるid:koyhogeさんからこうして明確な言葉として出てくると「やっぱりそうだよねー」という脱力感にうちひしがれます。
こういうことに対してPHPerが取るべき道は、
- むしろ俺がPHPを作り替えてやるとばかりにコードを書く
- Web上でもっと積極的にメッセージを発信する
この2つだと思います。
長くなってきたので、この掘り下げはまたエントリを改めて。