ラクダって不思議ですね。 確かに、彼らは する 私たちの地球上で最も過酷な環境のいくつかでなんとか生き延びているのですから、明らかに彼らは正しいことをしているのです。 しかし、つまり、それらを見てください。
誰かが馬とキリンを組み合わせて、「砂漠でも生きていける」という条件を満たすまで物を追加し続けたみたいです。 誰がそれを思いついたのですか? 誤解しないでください: ラクダ する 仕事をしているので、彼らは何か正しいことをしたに違いありません。 しかし、正直に言うと、仕上げは理想とは程遠いです。
PHP はラクダのようなものです。美しさや優雅さについては言うことはほとんどありませんが、多くの過酷な条件にも耐えられるようです。 それで、私は誰を判断するのでしょうか? 偶然ですが、PHP はもともと PERL からインスピレーションを受けており、そのロゴはラクダです。 だからもしかしたらそこにいるかもしれない は まだ深いつながりはありますか? しかし、あまり深く考えないようにしましょう キャメルウサギの巣穴; その代わりに、プログラミング言語がどのように設計されているかについて話しましょう。
PHP は、大企業や、それに取り組むことを仕事とする人々のグループによって支援されていないプログラミング言語の 1 つです。 PHP は主にボランティアのグループによって運営されています。 1 年前、私たちは PHP Foundation を設立し、この言語の開発に数人の開発者を雇用しましたが、彼らが所有権を持っているわけではありません。 彼らは自分たちのアイデアを提出する必要があり、その言語に何を入れるか、何を入れないかを「PHP 内部」の判断に委ねられます。
それでそれについては ボランティアのグループ: PHP Internals は、言語に何が追加されるかについて議論し、投票する人々のグループです。 そのグループの一部はコア開発者で構成され、さらに著名な PHP コミュニティ メンバー、リリース マネージャー、過去の貢献者、ドキュメント メンテナー、そしておそらくその他大勢の人々がいます。 私の知る限り、メンバーは約 200 名と言われています。おそらくですが、公表されている数字はありません。
このグループは委員会の完璧な例です。全員が集まって、PHP が次にどのように進化するかを決定します。 彼らには統一された計画やビジョンはありませんが、全員が独自の議題を持っています。 コアプログラマーは(重大な変更が生じる場合でも)PHP の内部コードをクリーンアップすることを好むかもしれませんが、著名なコミュニティメンバーは PHP フレームワークまたはパッケージの開発に役立つアイデアを推進するかもしれません。
このような大規模なグループで言語を設計するこの現象は、「委員会による設計」と呼ばれます。 一見すると、誰もがアイデアを提案でき、十分な数の人がそれに投票すれば追加されるという、ソフトウェア設計に対する非常に民主的なアプローチのように聞こえるかもしれません。 しかし、非常に多様な意見があるため、委員会が優れた結果を達成することはほとんどありません。
著名なフレームワーク開発者であるあなたに役立つ機能を PHP に追加したいとします。 次に、十分な数の人々に投票するよう説得する必要があります。 まず、社内にあなたのアイデアに対するコメントを共有するよう要求します (RFC (コメント要求))。 当然のことながら、投票が始まる前にできるだけ多くの人を味方につけようと妥協することになります。 その上、人々は自分の投票、そして最終的には結果に影響を与えるために他の人に働きかけることができます。 突然、適切なソフトウェア設計ではなく、政治的なゲームをプレイすることになります。
そのため、委員会による設計では、多くの場合、せいぜい平均的な結果が得られます。 あるいは、人々の合意が得られなかったため、(多くの場合)結果は得られませんでした。 ラクダもおそらく委員会によってデザインされたものと思われます。 確かに、それらは機能しますが、優れたものとは程遠く、妥協がたくさんあります。
委員会による設計に代わる方法は、「独裁者による設計」、または「終身にわたる慈悲深い独裁者」を持つことと呼ばれます。 最初はかなりネガティブに聞こえるかもしれませんが、聞いてください。 慈悲深い独裁者(または慈悲深い独裁者のグループ)は、自分たちの政策を押し付けたくありません。 彼らは自社の製品に最高のものを求めています。 その 彼らの 製品 — 彼らは完全な所有権を持っています。 そしてまさにそうであるからこそ、 彼らの 製品、彼らは 意思 「大衆」に耳を傾けてください。 なぜなら、従業員がいなければ、彼らの製品は何の役にも立たないからです。
結局は独裁者だけど 意思 コミュニティ全体で合意に達していない場合でも、意思決定を行うことができます。 妥協の必要性が大幅に減り、卓越性を実現する余地が広がります。
もしかしたらあなたはその考えに懐疑的ですか? 私の言葉を真に受けないでください。この技術を適用しているオープンソース プロジェクトは非常にたくさんあります。 次のようなカップルも見覚えがあるかもしれません。
- さび
- ララベル
- ルビー
- Linux
- ルビー・オン・レール
- Ubuntu
- Vue.js
-
もっと
これらのプロジェクトはすべて大成功であると言っても過言ではないと思います。 私は、彼らの成功の多くは、明確なビジョンを持って先頭に立っている一人の責任者によってもたらされていると信じています。 これらのリーダーは今でも聴衆の意見に耳を傾けており、多くの場合、機能についての投票を許可しています。 しかし、最終的には所有権を握るのは1人です。 尊敬すべきリーダーが一人います。
人々が慈悲深い独裁者を信頼すると、委員会で解決する場合よりもはるかに多くのことが可能になります。
PHP はそのリーダーシップ モデルを決して変更しません。 委員会はその権限を手放さなければならないが、もちろんそれは望んでいない。 これが、私が PHP のスーパーセットのアイデアに興奮している理由の 1 つであると思います。それは、委員会の要望に関係なく、1 人の個人または企業が主導する独立したプロジェクトになる可能性があります。 その人や会社が私の信頼を得たのであれば、平均的なものに満足するのではなく、言語を前進させる決定を彼らが下しても構わないと思います。
//platform.twitter.com/widgets.js