PHP internals とは?
PHP 処理系の開発者の集まりです。長期間にわたって活動する人や特定の問題のみに取り組む人などさまざまです。
PHP internals と企業組織の違いは?
学校の文化祭や町内会のお祭りを想像するとよいかもしれません。PHP internals は非営利組織だということです。何かを実現するためには誰かの力を借りる必要があります。信頼関係や合意形成に時間をかける必要があります。利害関係者との協力関係を構築することをステークホルダーマネジメントと呼びます。PHP 作者の Rasmus Lerdorf 氏は PHP のコミュニティは何がしたいのか?何ができるのか?どんな問題を解決できるのか?といったことに対して常に向き合っていることを述べています (PHPは「利己的」な開発者の集まり)。
RFC とは?
Request for Comments の略称です。PHP に新しい標準機能を導入する場合、RFC をもとに投票をする必要があります。投票権を得るにはソースコードの改善をはじめ、さまざまな形で PHP に貢献する必要があります。curl や mbstring などの拡張モジュールであれば、投票なしで機能が導入されます。intl 拡張モジュールでは投票が行われました。
RFC の投票状況をウォッチするには?
Twitter で PHPRFCBot を定期的に見るとよいでしょう。https://php-rfc-watch.beberlei.de では誰が投票したのかが示されます。
ML (メーリングリスト) をちょっと見るのに便利なサービスは?
http://externals.io があります。興味をもった RFC についてよりくわしいことを知りたいと思ったときに見るとよいのではないでしょうか。
根拠を示していますか?
読む価値のメールかどうかを判断する基準はきちんとした根拠を示すことができているかどうかです。思いつきの議論にかなりのエネルギーを費やされている残念な状況があります。医療や学術関係では根拠は「エビデンス」とも呼ばれます。
stackoverflow での質疑応答、有名な CMS やフレームワークのコードベース、PHP 自身のテストケースなどでの用例や改善例を示すことができるのであればよい提案です。テストケースは意外と見落としがちです。ライブラリやフレームワークの開発者が ML で賛成、反対の意見を示すことがあります。
ほかの言語に存在するからというのはよい根拠になるとはかぎりません。ほかの言語で用例があっても PHP では用例がないこともあるからです。
非営利組織の運営を学ぶための書籍
ピーター・ドラッカーの著作「非営利組織の経営」や「経営者に贈る5つの質問」を挙げます。「経営者に贈る5つの質問」に掲載されている質問は次のとおりです。
- われわれのミッションとは何か
- われわれの顧客は誰か
- 顧客にとっての価値は何か
- われわれにとっての成果は何か
- われわれの計画は何か
Jonathan Rasmusson は「アジャイルサムライ」でドラッカー風エクササイズを紹介しています。
- 自分は何が得意なのか?
- 自分はどうやって貢献するつもりか?
- 自分が大切に思う価値は何か?
- チームメンバーは自分にどんな成果を期待してると思うか?
提案の評価を学ぶための書籍
さまざまな RFC がつくられるものの、多くは却下される運命にあります。却下された RFC をまとめた記事があります。
RFC が投票で通るためには ML でさまざまな人からの質問に答えて、文字通り一票一票積み重ねてゆく必要があります。よい質問ができるかどうかがよい RFC をつくれるかどうかともつながっているわけです。
どのような質問を想定すればよいのかについての参考資料としては「政策立案の技法」を挙げます。この本はカリフォルニア大学バークレー校公共政策大学院で使われています。機能を提案する前にまず考える必要があることは専門知識がない人からの素朴な質問 (「それは何だい?」、「で、どうするんだい?」) に対して手短に答えることができるかどうかです。本書では「ベッシーおばさんのテスト」(p82)と呼んでいます。
もう1つ考えることはあなたの提案するすばらしい機能がこれまで実現できなかったのはなぜだろうかということです。本書では「20ドル札テスト」(p81)と呼ばれています。
PHP の言語デザイン
Rasmus はあるべき姿として次の要件を述べています。
- Web にフォーカスしたプラグマティックな言語
- ゆるい型づけの言語
- 幅広いスキルとプラットフォームのユーザーに対応する言語
くわしくは RFC をご参照ください。PHP の作者の一人の Zeev 氏の見解も引用されています。