GoogleはPython、Java、C ++を使用していると聞きました。しかし、私が知らないのは、これらのプログラミング言語のそれぞれがどのように使用されているかです。Googleで使用されているPython、Java、C ++は何ですか。1つの言語で十分なのに、なぜ最大3つのプログラミング言語を使用したのでしょうか。誰か知っていますか?
GoogleはPython、Java、C ++を使用していると聞きました。しかし、私が知らないのは、これらのプログラミング言語のそれぞれがどのように使用されているかです。Googleで使用されているPython、Java、C ++は何ですか。1つの言語で十分なのに、なぜ最大3つのプログラミング言語を使用したのでしょうか。誰か知っていますか?
回答:
「言語ごとに長所が異なるため」という正解はすでに述べられています。ただし、その理由について詳しく説明します。
C ++
C ++には、最も速いという主な利点があります。必要のないJavaとPythonのが遅いので、しかし、C ++で、あなたは持っているので、より多くの制御についてどのようなものが実行されますが。
たとえば、待ち時間が30ミリ秒未満のWebサービスフロントエンドを記述している場合、C ++コードを調整してそのパフォーマンスを実現できます。Javaのようなマネージ言語では、GCを完全に連携させるのは少し難しくなります。
C ++は、BigTable、MapReduce、検索gooなど、多くの「Googleマジック」に使用されます。
Java
ほとんどの標準アプリケーションでは、Javaは完全に素晴らしい言語です。優れたツール、多くの既存のライブラリを備えており、デバッグに多くの時間を費やしていません。
Javaは、CやC ++のような低レベルの言語で維持するのがはるかに難しい多くの大きなWebサイトに使用されます。たとえば、私の理解では、GMailはJavaで記述されています。
また、GoogleのWeb Toolkitを使用してJavaコードをJavaScriptにコンパイルできることに注意してください。そのため、表示される素晴らしいWebページまたはウィジェットは、Javaクラスとして始まりました。
Python
Pythonは素晴らしい汎用言語ですが、Javaほど細かく制御することはできません。(たとえば、あらゆる種類のクレイジーなJVM引数があります-Pythonは同様の構成を提供しますか?)
ただし、Pythonを使用すると、そうでなければ恐ろしいシェルスクリプトになるような単純なWebサイトやアプリケーションに最適です。たとえば、いくつかのソースからデータを収集する簡単なテストケースを作成し、それらを処理して、App Engine Pythonにアップロードしたい場合に適しています。(ただし、その処理を1,000台のマシンに分散する必要がある場合は、おそらく別の言語を使用できます...)
JavaScript
明らかにGoogleは多くのJavaScriptを使用しています。ただし、Googleで記述されたJavaScriptのタイプは、実際に見られるものとは異なります。Googleは、最適化と静的チェックの改善と引き換えに、コメント内に注釈を作成できる最適化JavaScriptコンパイラを開発しました。Google Closureをご覧ください。
言語は関係ない(相互運用性)
Googleが1つの言語だけを使用しないもう1つの理由は、Google がその必要がないことです。ほとんどすべての最新のプログラミング言語には、外部ライブラリを呼び出すための機能があります。外部ライブラリは、異なる言語で作成されたライブラリです。(swigを参照してください。)
また、App EngineはJVMを実行するため、Javaバイトコードにコンパイルされる任意の言語を実行できます。(Googleでは、ここで述べた言語に主に固執しますが、これは厳しい要件ではありません。)App EngineでClosure、Groovy、またはScalaを使用する場合、適切なJARファイルを含めるとすべてが正常に機能します。
オープンソース
また、Googleは可能な限り多くのオープンソースを使用し、貢献しています。これらのプロジェクトは通常、上記の言語のいずれかで作成されており、Googleで「使用」する必要があります。
一番下の行は2つのことです:
1 language is enough
おそらく、1つの言語で多数の異なるタスクを適切に完了することができますが、言語ごとに長所、短所、および能力が異なります。
グーグルはおそらく多くの異なる状況のためにプログラムするので、仕事に最適なツールであるコース用の馬の場合です。
サポートWebサイトにはPythonが使用されています。このページはPythonスクリプトによって生成され、WebアプリケーションにはJavaライブラリを使用しているため、アプリエンジンでGWTとJavaがサポートされていることがわかります。
Google Earthやデスクトップアプリケーション全般にC ++を使用していると思います
ネイティブのMacおよびiPhoneアプリケーションも作成し、Objective-Cにあります。その理由は簡単です。APIはObjective-Cにあります。