it-swarm-id.com

Memprogram penggunaan bahasa di Google

Saya telah mendengar Google menggunakan Python, Java dan C++. Tapi yang saya tidak tahu adalah bagaimana masing-masing bahasa pemrograman digunakan. Maksud saya apa itu Python, Java dan C++ digunakan untuk di Google. Mengapa mereka menggunakan hingga 3 bahasa pemrograman ketika 1 bahasa sudah cukup. Adakah yang tahu?

29
Joshua Partogi

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 kontrol lebih lanjut tentang caranya sesuatu dapat dieksekusi.

Misalnya, jika Anda menulis antarmuka layanan web yang membutuhkan latensi kurang dari 30 ms, Anda dapat menyetel kode C++ untuk mencapai kinerja itu. Dalam bahasa yang dikelola seperti Java agak sulit untuk membuat GC bekerja sama dengan sempurna.

C++ digunakan untuk banyak 'Google magic' seperti BigTable, MapReduce, dan search goo.

Java

Untuk sebagian besar aplikasi standar, Java adalah bahasa yang sangat bagus. Ini memiliki 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 Java kode ke dalam JavaScript. Sehingga halaman web atau widget keren yang Anda lihat mungkin telah mulai hidup sebagai Java kelas.

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 akan menjadi skrip Shell yang mengerikan. Misalnya, jika Anda ingin menulis sebuah testcase sederhana untuk mengumpulkan data dari beberapa sumber, proseslah, dan unggah 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 pengoptimal yang memungkinkan Anda membuat anotasi dalam komentar dengan imbalan optimasi yang lebih baik dan pemeriksaan statis. Lihat Google Closure .

Bahasa Tidak Masalah (interop)

Alasan lain mengapa Google tidak menggunakan hanya satu bahasa adalah tidak perlu. Ada fasilitas di hampir setiap bahasa pemrograman modern untuk memanggil perpustakaan eksternal, perpustakaan yang dapat ditulis dalam bahasa yang berbeda. (Lihat swig .)

Juga, karena App Engine menjalankan JVM, Anda dapat menjalankan bahasa apa pun yang dikompilasi ke Java kode byte. (Di Google kami terutama berpegang pada bahasa yang disebutkan di sini, tetapi ini bukan persyaratan sulit. ) Jika Anda ingin menggunakan Penutupan, Groovy, atau Scala pada App Engine jika Anda memasukkan file JAR yang tepat semuanya seharusnya 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.
97
Chris Smith
1 language is enough

Mungkin satu bahasa cukup untuk menyelesaikan sejumlah tugas berbeda secara memadai, tetapi bahasa yang berbeda memiliki kekuatan, kelemahan, dan kemampuan yang berbeda.

Karena google kemungkinan besar memprogram untuk sejumlah besar situasi yang berbeda, ini adalah kasus kuda untuk kursus, alat terbaik untuk pekerjaan itu.

17
StuperUser

Tiga bahasa ini digunakan untuk tujuan yang berbeda.

Python dapat digunakan untuk menulis skrip otomatisasi.
C++ untuk mengimplementasikan algoritma yang kompleks. (Indexer, Crawler, Map-Reduce, Big Table)
Java untuk layanan web, aplikasi web, dll.

Ini hanya asumsi saya saja.

9
Sorantis

Python digunakan untuk situs web dukungan mereka, Anda dapat melihat bahwa Halaman ini dihasilkan oleh skrip python, mereka menggunakan pustaka Java perpustakaan untuk aplikasi web, maka GWT dan Java dukungan di engine aplikasi

Saya pikir mereka menggunakan C++ untuk google earth, atau untuk aplikasi desktop secara umum

3
Mahmoud Hossam

"1 bahasa sudah cukup" hanya bisa benar jika setiap proyek yang Anda lakukan adalah dari jenis tertentu. Dan untuk beberapa proyek, bahkan C++ Java dan Python bukan alat terbaik. Selain itu, mengetahui hanya satu bahasa adalah fitur yang membedakan dari programmer yang buruk.

2

Mereka juga menulis aplikasi Mac dan iPhone asli, dan itu ada di Objective-C. Alasan mereka melakukan itu sederhana: API ada di Objective-C.

0
user4051