PHP を使用すると、ほとんど投資をせずに Web サイトのデザインから Web アプリケーションの作成までを行うことができます。これを行うのに専門家である必要はありません。
日本のコンピューター科学者、まつもとゆきひろ氏が Ruby と呼ばれるプログラミング言語 (Twitter、Hulu、その他多くの人気のある現代の Web サイトを動かすテクノロジー) を作成しようと決めたとき、彼は SF に触発された 1966 年の映画『バベル 17』から出発していました。映画。この本は主に、それを使用する人の思考をアップグレードできるようにする新しく発明された言語について説明しています。 「Babel-17 は、ほぼあらゆる状況で技術的優位性を確保できる、非常に正確な分析言語です。」 この映画の主人公はこんなセリフを言います。まつもとゆきひろ氏は、Ruby を発明することで、同じ効果、つまり再プログラムし、プログラマの考え方を改善することを期待しました。
この目標は野心的に聞こえますが、彼の考えは主流です。ソフトウェア開発者は職業として、一般に、プログラミング言語が思考に影響を及ぼし、問題の解決方法、さらには解決することを選択した問題さえも変えるほど大きな影響を与えると信じています。これが、企業を拡大し、製品を改善し、チームを雇用する方法です。「どのプログラミング言語を使用していますか?」
これを理解することで、特にソフトウェア会社が非常に強力になり利益を上げ、私たちの生活の隅々に浸透する製品やサービスを生み出している今、ソフトウェア会社の仕組みを部外者が理解できるようになります。なぜ Facebook がそのように見え、機能するのか、そして Facebook が将来私たちに何をできるのか、あるいは私たちに何をしてくれるのかを知りたければ、PHP について知っておく必要があります。これは、もともと Facebook を構築するために使用されたプログラミング言語である Mark Zuckerberg のことだからです。プログラマーの間では、PHP はすべてのプログラミング言語の中で最も「検索」されない言語かもしれません。ブログ投稿では「悪いデザイン」と呼ばれ、PHP を使おうとする人はアマチュアとして無視されました。 「Facebook に入社したトップ エンジニアは Windows XP で PHP コードを書いたという伝説があります」と、プログラミングに関する質問と回答の Web サイト Stack Overflow の創設者である Jeff Atwood 氏は 10 分近い会話の中で述べました。は、PHP を「やつれた怪物」、「大疫病」、そして幽霊に恋をしたお化け屋敷の客という言葉で表現しました。
最もよく知られているプログラミング言語には、キーワードと構文、つまりプログラマーに与えられる一連の指示を整理し、論理的な全体を形成する全体的な設計哲学または指針があります。 PHP ではそうではありません。その設計者であるラスムス・レルドルフは、すべてを自分がつなぎ合わせたものであることをすぐに認めました。彼は 2003 年のインタビューで、「どうやってやめたらいいのか分からない。プログラミング言語の書き方も分からない。ただ、やりながら新しいロジックモジュールを追加するだけだ。」と語った。
プログラマーがよく使用する例は、データベースに送信する前に混合文字のセクションを削除できる PHP 関数「mysql_escape_string」です。 (文字が混在する例は、メールアドレスの入力を求める一般的な Web サイトで見られます。ハッカーは Web サイトからパスワードを取得するためのコードを埋め込むことができます。) この機能の脆弱性が発見されたため、新しいバージョンが登場しました。 、「mysql_real_escape_string」という名前ですが、元のバージョンは置き換えられていません。その結果、飛行機のコックピットに 2 つの似たようなボタンが並んで配置されているかのようです。1 つは着陸装置を下げるために使用され、もう 1 つは着陸装置を安全に下げるために使用されます。これは友好的な習慣ではなく、災難を招くことになります。
しかし、PHP に対する軽蔑にもかかわらず、今日の Web ネットワークの多くは PHP に基づいて設計されており、インターネット上の Web サイトの 39% が PHP を使用しています。 Facebook、Wikipedia、WordPress はすべて PHP プロジェクトです。これは、PHP には多くの欠点があるにもかかわらず、すぐに使い始めることができるためです。 PHP の名前は元の「個人ホームページ」に由来しており、ユーザーは日付やユーザー名などの動的コンテンツを静的な HTML ページに簡単に追加できます。 PHP を使用すると、Web サイトのデザインから Web アプリケーションの作成までを、わずかな投資で行うことができます。また、それを行うのに専門家である必要もありません。
PHP の「今すぐ実行」機能はウィキペディアの成功にとって極めて重要である、ウィキメディア財団のチーフ ソフトウェア エンジニアであるオリ・リブネ氏はこれを信じています。 「私はずっと PHP が嫌いでした」と彼は私に言いました。 Wikipedia は PHP に依存しすぎたため、設計に大きな欠陥が生じました。 (これが、Wikipedia が 2008 年までモバイル版をリリースせず、編集インターフェースが 2013 年までユーザーフレンドリーになっなかった理由です。) しかし、PHP を使用すると、ソフトウェア エンジニアではない、またはソフトウェア エンジニアに近い人でも新しい機能を提出できます。これは、Wikipedia のエントリが古代エジプト文明のページに象形文字を表示したり、スタッフを処理したりできる理由でもあります。
しかし、PHP で Google をデザインすることはできません。なぜなら、Google が Google になる理由は、検索結果という 1 つのことに最善を尽くすためだからです。 Google は、Java や C++ など、より洗練された強力な言語を使用して設計されています。一方、Facebook は、ユーザーの注意を引くためだけにボタン、フィード、ブロックなど、小さな実験を積み重ねたようなものです。 PHP は新しいものを素早く作成するために作られています。
ザッカーバーグがハーバード大学の寮の部屋で Facebook を仕上げているところを想像できるでしょう。 インターネットは急速に発展しており、ユーザーは常に変化しています。チャンスを掴む唯一の方法は、迅速であることです。それがピューレのボールであっても、スパゲッティの皿であっても、その他何でも構いません。彼は人々が使えるものを作りました。当時、彼はエレガントなコーディングについては考えていませんでした。友人が facebook にログインして、出会った女の子の写真を閲覧できるようにすることを考えていました。
現在、Facebook は 2,000 億米ドルを超える企業となり、「完璧よりも完了することが重要」や「迅速に行動し、物事を打ち破ろう」などのスローガンがオフィスのいたるところで見られます。これは Facebook の「ハッカー」文化ですが、PHP の価値でもあります。速く動いて物事を壊すというのは、実際には PHP の本質であり、この言語を使用する人なら誰でもそう考えるでしょう。 Facebook の文化を生み出し、維持しているのはこのプログラミング言語であると言えるかもしれません。
2010 年末、Facebook は危機に直面しました。 PHP はパフォーマンスが最適化されるように設計されていませんでしたが、現在はパフォーマンスの向上が必要です。 Facebook は急速に成長しているため、大きな変更がなければ何か問題が発生する可能性があるように思えます。
プログラミング言語全体を変更するという選択肢はありません。Facebook には数百万行の PHP コード、数千人の PHP エンジニアリングの専門家、そして 5 億人を超えるユーザーがいます。 Facebook が行っていることは、上級エンジニアからなる小規模なチームに特定のタスクが割り当てられることです。その 1 つは、Facebook の PHP コードをより高速に実行できる C++ コードに変換できるコンパイラーを設計することでした。もう 1 つのタスクはコンピューター言語の専門家によって行われます。彼らは、Facebook のプログラマーに PHP スタイルの文化を維持しながら、より信頼性の高いコードを作成してもらいたいと考えています。
そこで、PHP のフォークである Hack が誕生しました。この言語は、オプションの型システムを備えた PHP です。つまり、昔ながらの方法で PHP コードをすばやく作成することも、型システムにコードが正しいかどうかをチェックさせることも選択できます。 Facebook は、プログラマーが自分たちがよく知っている言語で迅速に作業を進め続けることを望んでいますが、以前のように何かを壊すことは望んでいません。 (ザッカーバーグ氏は昨年、「迅速に進歩し、アーキテクチャを安定させる」という新しいエンジニアのスローガンを発表しました。)
スタートアップが収益の問題を最終的に解決して「成熟」すると、プログラミング言語の力を巧みに利用して企業組織の文化を操作できるようになります。 Googleで7年間働いているプログラミング言語デザイナーのグイド・ヴァン・ロッサム氏は、ソフトウェア会社がある程度の規模に成長したら、混乱を解決する唯一の方法は、プログラマーがより多くの作業を行うことを要求するシステムを使用することだと信じている。最前線の言語。 「すべてを 3 回言っているため、動きが遅くなっているように感じます。だからこそ、多くのスタートアップ企業は、言語を切り替える前にできるだけ長く待ちたいのです。」最初にあなたを始めさせた素晴らしいハッカーの何人かを失うことになるだけでなく、小規模なチームが新機能を攻撃する可能性も失うことになります。 しかし、より正確な言語があれば、会社の他のメンバーがお互いのコードを理解し、会社が毎日機能するために必要な製品の安定性を得ることができます。
この調整を行うソフトウェアスタートアップの能力は、彼らがなぜ非常に強力であるかを説明するのに役立つかもしれません。コンピュータの不正使用の範囲についても同様です。これらのソフトウェア会社は、自らを再発明する独自の能力も備えています。変化し進化するにつれて、コードに基づいて設計されているため、単なる組織的な調整以上のことが可能となり、さらに劇的な変化を達成することができます。彼らは自分自身、自分の文化、考え方を再プログラムすることができます。