Web サイトが使用する開発言語の背後には、常にいくつかの非常に異なる理由がある可能性があります。
実際、どの言語を使用するかについてより懸念しているのは技術担当者だけですが、それは話し合う価値のあるトピックでもあります。
返信内容:
これには歴史的な理由があるはずです。
FaceBook の PHP はバインダー言語であり、実行のために C++ に変換されます。
そして、Facebook エンジニアが言ったように、アーキテクチャとクラス ライブラリは、使用される言語よりもはるかに重要です。
1. PHP は HTTP サーバー側に特化した言語です
2. PHP はよく書かれており、構文パーサーは非常に合理化され効率的です
3. 毎回仮想マシンを必要とする Java とは異なり、PHP はオーバーヘッドが低いですHTTP に非常に適しています。
4. 多くの人が使用しており、開発者を簡単に見つけることができます。
Flickr の Cal Henderson の次の文がそれを説明しています。「言語はスケールしない、アーキテクチャはスケールする」
実際、Mark が Facebook を書いたとき、彼は PHP に最も精通していました。 Facebook が解決する必要があるすべての問題を解決するには、PHP を選択してください。
そして、php が実際に Webend 開発に適していることがわかりました。
もちろん、もっと重要なのは、その時代、オタクは皆 PHP を使って Web サイトを書いていたということです。
C++ などへのコンパイルについては、FB の開発の結果として発明されたソリューションであり、パフォーマンス要件はますます高くなっており、選択した言語とは関係ありません。
- エンジニアが見つかりやすい
- 学習コストが低い
- 柔軟性が高い
FaceBook の PHP は実際には主にフロントエンドのプレゼンテーション層で使用されています、だから単純ではないはずです 主要な開発言語と言われています。
FB には最初はあまり選択肢がなかったと思います。どの言語を選択するかは、1. 創設者の技術的背景 2. プロトタイプを迅速かつ効率的に構築できる能力 3. フォローアップする技術があるかどうかによって決まります。たとえば、PHP 開発者を見つけるのは比較的簡単です。もちろん、FBがある程度の規模になってくると、変えたくてもそう簡単には行かなくなり、妥協が必要になってきます。
FB は以前、サーバー上で実行される前に PHP コードを C++ コードに変換するために HipHop を使用していました。これにより、Web サイトのトラフィック処理が 500% から 600% 改善されましたが、これでは十分ではありませんでした。その後、PHP コードから C++ コードへの変換を中止しました。コードは C++ コードに変換されますが、ネイティブ コンピューター コード (サーバー チップによって読み取られる言語) に直接変換され、PHP コードが実行されるときに直接変換されます。 Web サイトがどのようにコードを実行するかをリアルタイムで追跡することで、PHP コードをネイティブ コンピューター コードに変換しやすくなり、最終的に Web サイトの処理速度が向上します。
これは歴史から受け継がれた問題です。 Facebook は、ザッカーバーグが大学在学中に数日で作成した社内 Web サイトであり、何十億人もの人々が同時に使用するという問題を考慮していませんでした。
Facebook は、開発のコア言語として PHP を使用することに関して、PHP のアーキテクチャ上の問題を Framework などでは解決できなくなってしまい、非常に苦労しました。しかし、これほど巨大なシステムと膨大な従業員を別の言語に完全に移行することは不可能です。そこで、Facebook は HipHop のプリコンパイルを行う取り組みを行った後、HipHop JIT パーサーで動作し始めました。この記事では、HHVM がどのように PHP のパフォーマンスを向上させるのか、技術的な詳細を詳しく紹介します。
歴史的な理由!
歴史的な理由から、彼らはそれを後悔した。今来ている人はみんな Python を使っています。
オープンソースのため、PHP は使いやすいため、LAMP が現在最も人気のある黄金の組み合わせですが、使いやすいほど多くのメモリを消費します。たとえば、PHP と JS はネイティブ C/C++ よりもはるかに高速です。 。 Facebook の PHP アーキテクチャは多くの層に分割されており、運用効率を高めるために、PHP を C に変換することに多大な労力を費やしました。