Jawaban yang benar " karena bahasa yang berbeda memiliki kekuatan yang berbeda " telah dinyatakan. Tapi izinkan saya memberikan beberapa detail tentang alasannya:
C ++
C ++ memiliki keunggulan utama sebagai yang tercepat dari yang banyak. Tidak perlu karena Java dan Python lambat, tetapi karena di C ++ Anda memiliki lebih banyak kontrol tentang bagaimana hal-hal dijalankan.
Misalnya, jika Anda menulis antarmuka layanan web yang memerlukan latensi kurang dari 30 ms, Anda dapat menyetel kode C ++ untuk mencapai kinerja itu. Dalam bahasa yang dikelola seperti Jawa, agak sulit untuk membuat GC bekerja sama dengan sempurna.
C ++ digunakan untuk banyak 'Google magic' seperti BigTable, MapReduce, dan search goo.
Jawa
Untuk sebagian besar aplikasi standar, Java adalah bahasa yang sangat baik. Ini fitur alat yang hebat, banyak perpustakaan yang ada, dan tidak banyak waktu yang dihabiskan untuk debugging.
Java digunakan untuk banyak situs web yang lebih besar yang akan lebih sulit dipertahankan dalam bahasa tingkat rendah seperti C atau C ++. Sebagai contoh, pemahaman saya adalah bahwa GMail ditulis dalam Java.
Juga, perhatikan bahwa Anda dapat menggunakan Google Web Toolkit untuk mengkompilasi kode Java ke dalam JavaScript. Sehingga laman web atau widget keren yang Anda lihat mungkin sudah mulai hidup sebagai kelas Java.
Python
Python adalah bahasa tujuan umum yang fantastis, tetapi tidak menawarkan banyak kontrol yang halus seperti halnya Java. (Misalnya, ada segala macam argumen JVM gila untuk hal-hal - apakah python menawarkan konfigurasi yang sama?)
Namun, dengan Python sangat cocok untuk situs web dan aplikasi sederhana yang seharusnya menjadi skrip shell yang mengerikan. Misalnya, jika Anda ingin menulis testcase sederhana untuk mengumpulkan data dari beberapa sumber, memprosesnya, dan mengunggahnya ke App Engine Python akan menjadi pilihan yang baik. (Jika Anda perlu mendistribusikan pemrosesan itu di 1.000 mesin, mungkin Anda bisa menggunakan bahasa yang berbeda ...)
JavaScript
Jelas Google menggunakan banyak JavaScript. Namun, jenis JavaScript yang ditulis di Google berbeda dari yang Anda lihat di alam bebas. Google telah mengembangkan kompiler JavaScript pengoptimalan yang memungkinkan Anda membuat anotasi dalam komentar dengan imbalan optimasi yang lebih baik dan pemeriksaan statis. Lihat Google Penutupan .
Bahasa Tidak Masalah (interop)
Alasan lain mengapa Google tidak menggunakan hanya satu bahasa adalah karena tidak perlu. Ada fasilitas di hampir setiap bahasa pemrograman modern untuk memanggil ke perpustakaan eksternal, perpustakaan yang dapat ditulis dalam bahasa yang berbeda. (Lihat tegukan .)
Juga, karena App Engine menjalankan JVM Anda dapat menjalankan bahasa apa pun yang dikompilasi ke kode byte Java. (Di Google kami terutama berpegang pada bahasa yang disebutkan di sini, tetapi ini bukan persyaratan yang sulit.) Jika Anda ingin menggunakan Closure, Groovy, atau Scala di App Engine jika Anda memasukkan file JAR yang tepat, semuanya seharusnya hanya berfungsi.
Sumber Terbuka
Juga, Google menggunakan dan berkontribusi pada banyak Sumber Terbuka jika memungkinkan. Proyek-proyek ini biasanya ditulis dalam salah satu bahasa di atas dan mengharuskannya untuk 'digunakan' di Google.
Intinya adalah dua hal:
- Setiap bahasa pemrograman memiliki kekuatannya sendiri. Tidak mengambil keuntungan dari kekuatan-kekuatan ini secara situasional akan memalukan.
- Ketersediaan toolop interop dan runtimes yang kompatibel berarti bahwa kurang menyakitkan untuk menggunakan beberapa bahasa dalam lingkungan runtime yang sama.