ホームページ >バックエンド開発 >PHPチュートリアル >SNS の実装で使用されるテクノロジーのほとんどは PHP です。Java と .net を使用する場合、同様に適用できますか?

SNS の実装で使用されるテクノロジーのほとんどは PHP です。Java と .net を使用する場合、同様に適用できますか?

WBOY
WBOYオリジナル
2016-06-17 08:30:48992ブラウズ

返信内容:

SNSで使われている技術がすべてPHPというわけではなく(国内に限らず)、特に海外の新興企業は基本的にPHPを使用しなくなっていますが、中国では今でもかなり一般的に使われています。私が知っているいくつかの事例について簡単に話しましょう:
  1. Facebook (PHP): Facebook は歴史的な理由から PHP を採用しましたが、Facebook の PHP は多くのハッキングを受けてきました (ヒップホップなど)。 Quora はかつて、なぜ「偉大な」Facebook が PHP を使用するのかという質問をしましたが、その答えは、PHP がなければ Facebook はさらに「偉大」になるということです。 PHP の利点は、成熟しており、安定しており、テストに耐えられることです。欠点は、構文が乱雑でコード管理が良くないことです。 Tumblr と Pinboard はどちらも典型的な LAMP の組み合わせを使用します。
  2. Twitter (Ruby on Rails): Twitter はすべて Ruby on Rails とは言えませんが、RoR が使用されている部分はおそらく浅いレベルで実装されており、実際のバックグラウンド処理は Scala に変更されています。 Twitter のビジネス ロジックは非常に単純で、RoR の利点が十分に活用されていません。 RoR コミュニティは非常に活発で、ここでは多くの新しいテクノロジーが生まれており、RoR プログラマーは RoR を誇りに思っています。友人たちは私に RoR に切り替えるよう説得してくれました。
  3. Foursquare (Scala): Scala は、前のものに引き続き、JVM 上で動作する言語であり、Java の優れた機能を継承しており、FS は Lift フレームワークを使用しています。
  4. Renren (Java): Renren は最初は構造体を使用する必要がありますが、後で深くハッキングされた構造体を使用する必要があります。ネットワーク開発における Java の欠点は、コストが高すぎることです。 JVM が消費するメモリの量は言うまでもなく、Java の開発効率 (実行効率ではないことに注意) は、PHP、Ruby、Python よりも低いです。そして、「Java システム」は大規模な屋台を設置することに慣れています。したがって、Java は主にエンタープライズ レベルのアプリケーション、特に Java によるスレッド制御で使用されます。
  5. Stackoverflow (.NET): .NET スタートアップが少なすぎるため、SO は少し奇妙です。 .NET は開発コストだけでなく保守コストも高価です。 Windows サーバーは非常に高価であり、Linux ほど信頼性が高くありません。
  6. Douban (Python): Abei はおそらく Douban で Python を使用することに慣れていたため、当時は Django がなかったため、Quixote を使用しました。 Python は現在、YC が出資する企業の間で非常に人気があり、Ruby をも上回っています。その理由は、一方では Python が大学で非常に人気があるからだと思います (Ruby や PHP とは比べものになりません。うちの大学では PHP すら教えておらず、大学生が起業する際には PHP を言語とは考えていません)。卒業すると、彼らは自然に慣れ親しんだ言語を選択します。 Django、Web.py、Cherry.py、Pylon など、Python のフレームワーク オプションも多数あります。
これらが主流であり(Scalaはまだ主流とは言えません)、関数型言語を中心としたLua、Erlang、Haskellなどあまり主流ではないものもあり、ユニークな企業も多くあります。使用。すると、Douban のクラスメートが Node.js が便利だという話を聞きました。 私は Java に取り組んでいますが、最近は WordPress をいじっているので、いくつかの知見があります。 実際、人々はスクリプト言語 PHP を SCRIPTLET JSP と比較します。 PHP と Java を比較するのではなく、 学習期間を1年とすると、PHPに取り組んでいる学生の方が、Javaに取り組んでいる学生よりも多くのものを作った可能性があります~ ということで、
学習曲線という点では、phpは剣術の動きのようなもので、javaは内なる力のようなもので、最初はphpの方が成功しやすいです。 実務経験 2 年の PHP の学生と Java のクラスメートを比較したところ、Java にはテンプレート エンジン テクノロジ、ベロシティ、サイトメッシュなどが備わっており、JSP をまったく使わずにできることがわかりました。 PHP の利点が減ったように感じるでしょう。実際、Java mvc は PHP コードよりもはるかにクリーンです~現時点では、PHP と Java にはそれぞれの利点があります~

最後の 2 つは数年の実務経験がある学生(私はまだプログラマーで転職はしていないものとします^_^)、具体的なPHPについては詳しくありませんが、プロジェクトが大規模でデータ分析などの大きなプロジェクトが必要な場合、データマイニング、クローラー検索エンジンなど、Java の利点がますます重要になってきました。
最後に、サーバーのパフォーマンスの問題について話しましょう。 PHP サーバー (Apache または nginx) は Tomcat や樹脂よりもはるかに軽いことは認めざるを得ません。おそらく、jetty の方がわずかに優れていますが、それでも PHP パーサーほど優れたものではありません。 言語の観点から見ると、これは間違いなく適用でき、ほとんどの高級言語でもまともな SNS を作成できます。

SNS や数多くの WEB2.0 プロジェクトで PHP、Python、Ruby などの動的言語が人気なのは、それなりの理由があるはずです。

一般に、ほとんどのプロジェクトの初期段階では、製品プロトタイプを磨き上げるために最も低コストで最も効率的な方法を選択し、実現可能性を実証するためにタイムリーなユーザーフィードバックを得るためにできるだけ早くオンラインでリリースします。この段階では、
迅速に開始し、迅速に開発し、迅速に反復します。
プロダクトが運用され、一定の成功を収めた場合、一般に 動作が安定し、パフォーマンスが高く、拡張しやすい傾向にあります。
このとき、具体的な分析を行います。特定のプロジェクトの数が必要です。現在の技術システムがプロジェクトの開発ニーズを満たすことができる場合、この状況が最善であり、技術アーキテクチャに大きな変更を加える必要はありません (FB がこのカテゴリに該当すると思います。上位層アプリケーションのほとんどはまだそのままです) PHP、そしてその背景で、彼らは HIPHOP と HHVM を思いつきました)。ただし、以前の技術システムが予見可能な大規模開発をサポートできない場合は、技術システム (タオバオなど) を変更することが不可欠です。

大規模プロジェクト用の技術システムを選択する場合(過去の技術的な負担がない場合)、言語自体の特性は最も重要ではありませんが、コストも最初に考慮する必要があります(さまざまな技術の影響)サーバー ソフトウェアとハ​​ードウェアのコストへの影響は大きく、特に、初期段階で非常にキャッシュ フローが低い SNS のようなプロジェクトは、お金持ちだけが敢えて使用するものではありません。さまざまなテクノロジー システムも非常に大規模です。ここで大多数の PHPer の涙をぬぐい去ってください)、チームの規模 (3 人のチームに J2EE を使用する理由)、開発効率 (SNS のようなプロジェクトは通常、機能を迅速に反復する必要があります)。初期段階のプロトタイプ、動的言語の開発効率と展開一般に静的言語よりも効率が高い)、採用の難易度など。

私は PHP のヘビー ユーザーであり、Python の熱心なファンであり、いくつかの J2SE および J2EE プロジェクトに取り組んできました。今は暇なときに Golang について考えています。ことわざにあるように、言語に良い悪いはなく、あるのはそれが適切かどうかだけです。 この問題は言語とは何の関係もありません。 市場が問題なのではありません。問題はコストです。 Java の最大の問題は、Java が「重く」、ハードウェア要件が高すぎることです。 SNS 製品の作成に使用される場合、ハードウェアへの投資は非常に膨大になります。 Xiaonei Network の初期には、効率の問題が非常に明らかでした。当時、Kaixin.com は PHP で実装されていましたが、運用効率には大きなギャップがありました。これは、後に Thousand Oaks に買収された後、改善されました。
PHP の利点は、あなたが遭遇する問題のほとんどは他の人が経験したものであり、最も重要なことはそれらが無料であることです。ただし、Java を使用する場合、大規模な分散ソリューションには非常に巨額の投資が必要となり、小規模なチームには投資できません。

もちろん、お金に余裕があるのであれば、大規模な Web サイトでは Java の方が安定していて制御しやすいかもしれませんが、スタートアップの場合は PHP、Python、Ruby が適しています。すべてがより良い選択です。 おそらく、SNS Facebook の人気を見て、誰もが SNS に PHP を選び、Q&A ユーザーのほとんどが Python を 2010 年のプログラミング言語に選んだのでしょう。はかつてトップ 5 にランクされていましたが、Quora が冷たくなるにつれ、Python の人気は低下しました。 全員がPHPを使っているわけではなく、PHP以外にもPythonやRubyを使っている人もいると思います。 Twitter などの有名なものは Ruby を使用し、Zhihu と Douban は Python を使用します。

Java と .NET が直面する問題は、コストが高すぎることが最も考えられます。特に .NET では、ASP.net これは Microsoft の特許によって保護されており、Mono で完全に実装するのは難しく、そのため Linux での使用が困難になります。 Windows サーバーに関しては、ソフトウェアのライセンス費用に関係なく、Windows が消費する基本リソースは Linux よりもはるかに高いため、Web サイトを構築するために同じパフォーマンスのサーバーを使用すると、より大きな負荷に耐えることができます。したがって、.NET はコストの観点から大規模な Web サイトにはあまり適していません。世界中で最もアクセスされている Web サイトの中で、Microsoft の Web サイトを除いて、.NET で作成された Web サイトは存在しないことがはっきりとわかります。これは非常に明白な証拠です。

Java については、私自身あまり詳しくないので、まだあまりコメントしません。ただし、個人的には、Java のメモリ消費量は非常に憂慮すべきことであると感じています。 タオバオはJavaを使用しています もう 1 つ重要なことは、学習にかかるコストです。インターネットは使い慣れたものを使用してください。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。