Alex Martelli masuk untuk jawaban yang diterima segera, ....
ChristopheD
4
Sebenarnya saya pikir jawaban ini bisa dijawab secara objektif (harus ada pernyataan di suatu tempat oleh Google mengapa mereka menggunakannya;))
Felix Kling
15
@nomemory, "berat" cukup kata sifat benar di sini (tentu saja Anda akan perlu untuk dapat melihat basis kode kami untuk konfirmasi - berapa banyak Python vs Java vs C ++ dll - tapi, saya saya bisa melihat itu , dan berkontribusi padanya, kebanyakan Python, sebagian besar setiap hari ;-). Dan pertanyaannya bukan pada semua industri TI - itu khusus di Google, sebuah perusahaan 20.000 karyawan (termasuk non-programmer), di mana beberapa dari kita lebih baik "memiliki pandangan keseluruhan", karena membentuk pandangan itu dan bertindak berdasarkan itu adalah bagian inti dari pekerjaan kami ;-). Jadi, saya memilih untuk membuka kembali.
Alex Martelli
7
@nomemory, selalu ada perekrut Oracle yang tertarik di konferensi Python jadi saya akan terkejut mengetahui bahwa Python "tidak ada" dalam basis kode mereka (jika demikian, perekrut tersebut berbohong, serta membuang-buang waktu mereka sendiri dan Pythonistas ' ;-). Lagi pula, bagaimana sebenarnya Oracle dan Google bersaing? -)
Alex Martelli
Jawaban:
286
Saya benar-benar tidak dapat memberikan jawaban yang pasti, karena pada saat saya wawancara di Google pada tahun 2004, Python sudah menonjol di Google.
Memang, ada satu penjelasan yang tampaknya menarik yang bisa saya tolak: bukan karena Google menggunakan Python karena mempekerjakan begitu banyak Pythonistas terkemuka - melainkan, kebanyakan Google "Pythonista" googler bergabung dengan Google, setidaknya sebagian, karena kami tahu tentang keunggulan Python. di sana (kemungkinan pengecualian termasuk Peter Norvig dan Jeremy Hylton, tetapi secara historis Google memilih Python bahkan sebelum mereka).
Itulah mengapa saya pertama kali tertarik (penerbit saya memberi tahu saya tentang jumlah besar buku saya yang dibeli Google - pada awalnya, saya menganggapnya sebagai kesempatan yang baik untuk menjual layanan konsultasi lepas saya ...; - ), bagaimana saya kemudian dapat meyakinkan Guido untuk bergabung dengan kami, dan, saya percaya, bagian dari motivasi untuk Pythonista seperti Greg Stein, Wesley Chun, Fredrik Lundh, Thomas Wouters, Collin Winters, Jeffrey Yasskin, ...
Semuanya dimulai, saya percaya, karena Google yang paling awal (Sergey, Larry, Craig, ...) membuat keputusan rekayasa yang baik: "Python di mana kita bisa, C ++ di mana kita harus" - mereka menggunakan (subset dari) C ++ untuk bagian-bagian tumpukan perangkat lunak di mana latensi yang sangat rendah dan / atau kontrol memori yang ketat sangat penting, dan Python, memungkinkan pengiriman dan pemeliharaan program yang lebih cepat, untuk bagian-bagian lain. Pada saat itu, akhir tahun 90-an, pilihan untuk peran yang terakhir pada dasarnya adalah antara Python dan Perl: bahasa skrip lain belum matang (misalnya, saya kira Ruby belum ada, misalnya) atau memiliki masalah dan keterbatasan lainnya. Perl lebih dewasa (terutama dalam hal ekosistem add-on yang tersedia melalui CPAN), tetapi Python dianggap lebih mudah dibaca dan dipelihara, dan berinteraksi dengan perpustakaan C ++ (melalui SWIG) lebih mudah.
Jawa datang kemudian, mencakup ceruk antara - dan baru-baru ini tentu saja Go dikembangkan (meskipun saya belum percaya ada banyak pekerjaan produksi di dalamnya, karena masih berkembang dan semakin matang). Beberapa bahasa khusus seperti sawzall juga dalam campuran untuk tugas yang sangat spesifik, dan tentu saja Javascript sangat penting untuk pekerjaan sisi browser.
Bahasa lain, termasuk yang disebutkan Greg pada '06, bisa "kebetulan" atau digunakan untuk tugas spesifik lainnya (mis., Objective C untuk klien di iPhone atau Mac) - misal, ketika Google menyewa administrator sistem pertamanya , para karyawan itu mau tidak mau datang dengan penguasaan Perl dan Bash yang sangat kuat, dan sering menggunakan salah satu dari bahasa itu untuk mengembangkan beberapa sistem internal yang kompleks; pengodean ulang orang-orang di Python (untuk penyebaran dan pemeliharaan lebih mudah) telah sering terjadi. Lainnya (seperti C #) mungkin telah berada dalam campuran sementara karena akuisisi, tetapi, sekali lagi, pengodean ulang dalam salah satu "bahasa Google utama" selalu menjadi prioritas yang cukup tinggi (dalam kasus C #, pengodean ulang biasanya akan sebagian besar di Jawa, karena kedua bahasa tersebut membahas bidang yang sama dalam hal tingkat abstraksi).
@Alex mungkin saya tidak mengerti dengan benar tetapi tampaknya google ingin lingkungan mereka terbuka untuk insinyur (terutama peneliti) mereka yang menghabiskan waktu bertahun-tahun di universitas dan keluar hanya C atau C ++ di tangan (karena semua orang mulai dengan bahasa ini dan kebanyakan dari mereka berakhir dengan itu juga). Di sini, python adalah pesaing kuat yang menyediakan antarmuka ke lib besar C / C ++.
Satu berita gembira yang saya kumpulkan dari membaca buku bagus Levy "In the 'Plex" adalah bagaimana Python masuk ke Google (sebelum dinamai Google - itu kemudian "backrub"). Larry Page telah menulis "laba-laba" pengikis web di Java 1.0 beta yang baru, dan itu sangat rusak sehingga teman sekamar asramanya membantunya dengan menulis ulang dalam bahasa yang lebih tenang, solid, dan produktif ... Python. Lucu untuk berpikir bahwa, tanpa "laba-laba" itu, Google mungkin tidak akan pernah ada ...
Alex Martelli
34
Saya belum membaca keseluruhan artikel dan saya tidak tahu seberapa representatifnya tapi mungkin ini menjawab pertanyaan Anda: Python di Google .
Ok saya membaca sebagian besar, sayangnya memberikan tidak bahwa banyak wawasan tapi saya pikir itu masih sebuah artikel menarik. Mungkin yang paling penting:
Di Google, python adalah salah satu dari 3 "bahasa resmi" bersama dengan C ++ dan Java. Resmi di sini berarti bahwa Googler diizinkan untuk menggunakan bahasa-bahasa ini ke layanan produksi. (Secara internal orang Google menggunakan banyak teknologi termasuk PHP, C #, Ruby dan Perl). Python sangat cocok untuk proses rekayasa di Google. Proyek khas di Google memiliki tim kecil (3 orang) dan durasi pendek (3 bulan).
Tidak lupa bahwa Guido van Rossum pencipta Python bekerja untuk Google dari 2005-2012;)
Saya juga menemukan kutipan ini tetapi saya tidak dapat memverifikasinya:
"Python telah menjadi bagian penting dari Google sejak awal, dan tetap demikian ketika sistem tumbuh dan berkembang. Saat ini puluhan insinyur Google menggunakan Python, dan kami sedang mencari lebih banyak orang dengan keterampilan dalam bahasa ini"
- Peter Norvig, Direktur Kualitas Pencarian di Google
Jadi apakah ini masalah selera atau keunggulan kompetitif?
Andrei Ciobanu
4
@nomemory: Mungkin keduanya? Ini cocok dengan proses rekayasa (rasa) dan karena itu mungkin memberi mereka keuntungan jika mereka dapat menyelesaikan produk mereka lebih awal.
Felix Kling
1
Puluhan insinyur menggunakan Python? Untuk perusahaan sebesar Google, itu bukan kasus yang meyakinkan.
Jason Baker
28
Saya membaca tentang Unladen-Swallow , sebuah proyek yang bertujuan untuk meningkatkan kinerja CPython. Saat menjelajah melalui papan diskusi mereka, saya menemukan diskusi ini , di mana Collin Winter (karyawan Google dan pengembang inti Python) menjawab klaim bahwa karyawan Google tidak disarankan menggunakan Python untuk proyek baru :
Nah, akal sehat sederhana akan membatasi penerapan Python ketika beroperasi pada skala Google: itu tidak secepat Java atau C ++, threading sucks, penggunaan memori lebih tinggi, dll. Salah satu kendala desain yang kita hadapi ketika merancang sistem baru adalah, "Apa yang terjadi ketika beban naik 10x atau 100x? Apa yang terjadi jika seluruh planet berpikir layanan baru Anda hebat?" Setiap teknologi yang membuat memuaskan kendala itu lebih sulit - dan saya pikir Python termasuk dalam kategori ini - harusberkecil hati jika tidak memiliki kasus yang sangat kuat yang mendukungnya pada kelebihan lainnya. Anda harus menyeimbangkan kekuatan Python dengan kelemahannya: teknisi Anda mungkin lebih produktif menggunakan Python, tetapi jika mereka harus bekerja di sekitar lebih banyak kinerja tingkat platform / pembatasan skala dengan meningkatnya volume, apakah Anda unggul? dll.
Jika Anda berlangganan ide Paul Graham yang ringkas == kekuatan (yaitu Jika saya dapat menulis kode dalam bahasa X dalam 10 baris untuk mencapai apa yang Anda ambil 100 baris bahasa Y, bahasa saya lebih kuat)
Perangkat keras akhir-akhir ini murah, daging mahal . Saya tahu bahwa saya dapat menulis lebih banyak, lebih cepat, lebih baik DAN lebih jelas dalam Python daripada yang saya dapat dalam bahasa lain, hanya karena baterai cenderung disertakan. Tentu, ini mungkin lebih lambat tetapi apakah Anda benar-benar akan melihat perbedaan antara 0,05 detik dan 0,0005 detik?
Dalam contoh yang lebih nyata, jika pengembang Google menulis sebuah program dengan Python di mana mereka tidak perlu khawatir tentang pengumpulan sampah, dan Perusahaan X menulis sebuah program dalam C ++ dan mereka menghabiskan 10% dari waktu mereka melacak bug yang berkaitan dengan alokasi memori, tebak siapa yang selesai lebih cepat - bahkan jika toko C ++ berhasil menulis kode mereka dengan cepat.
Jadi ya, saya akan mengatakan itu adalah keunggulan kompetitif untuk kode dalam Python.
Mendesain ulang situs terkutuk! Yah dia punya tautan alternatif, jadi itu dia.
Wayne Werner
11
"Apakah Anda benar-benar akan melihat perbedaan antara 0,5 detik dan 0,005 detik?" Anda tidak bekerja pada pencarian inti Google, YouTube atau Gmail, bukan?
jwg
5
Perangkat keras tidak murah ketika Anda membutuhkan sebanyak Google.
NGRhodes
5
Hal yang hebat tentang Python adalah, ketika Anda memiliki perbedaan kinerja yang signifikan (misalnya ~ 495ms), Anda dapat memasukkan beberapa kode C / C ++. Python memungkinkan Anda untuk berkembang dengan cepat dan mengoptimalkan secara efisien.
Trevor
3
Perbedaan antara 0,5 detik dan 0,005 detik adalah bahwa yang satu terlihat dan yang lainnya tidak.
Jawaban:
Saya benar-benar tidak dapat memberikan jawaban yang pasti, karena pada saat saya wawancara di Google pada tahun 2004, Python sudah menonjol di Google.
Memang, ada satu penjelasan yang tampaknya menarik yang bisa saya tolak: bukan karena Google menggunakan Python karena mempekerjakan begitu banyak Pythonistas terkemuka - melainkan, kebanyakan Google "Pythonista" googler bergabung dengan Google, setidaknya sebagian, karena kami tahu tentang keunggulan Python. di sana (kemungkinan pengecualian termasuk Peter Norvig dan Jeremy Hylton, tetapi secara historis Google memilih Python bahkan sebelum mereka).
Itulah mengapa saya pertama kali tertarik (penerbit saya memberi tahu saya tentang jumlah besar buku saya yang dibeli Google - pada awalnya, saya menganggapnya sebagai kesempatan yang baik untuk menjual layanan konsultasi lepas saya ...; - ), bagaimana saya kemudian dapat meyakinkan Guido untuk bergabung dengan kami, dan, saya percaya, bagian dari motivasi untuk Pythonista seperti Greg Stein, Wesley Chun, Fredrik Lundh, Thomas Wouters, Collin Winters, Jeffrey Yasskin, ...
Semuanya dimulai, saya percaya, karena Google yang paling awal (Sergey, Larry, Craig, ...) membuat keputusan rekayasa yang baik: "Python di mana kita bisa, C ++ di mana kita harus" - mereka menggunakan (subset dari) C ++ untuk bagian-bagian tumpukan perangkat lunak di mana latensi yang sangat rendah dan / atau kontrol memori yang ketat sangat penting, dan Python, memungkinkan pengiriman dan pemeliharaan program yang lebih cepat, untuk bagian-bagian lain. Pada saat itu, akhir tahun 90-an, pilihan untuk peran yang terakhir pada dasarnya adalah antara Python dan Perl: bahasa skrip lain belum matang (misalnya, saya kira Ruby belum ada, misalnya) atau memiliki masalah dan keterbatasan lainnya. Perl lebih dewasa (terutama dalam hal ekosistem add-on yang tersedia melalui CPAN), tetapi Python dianggap lebih mudah dibaca dan dipelihara, dan berinteraksi dengan perpustakaan C ++ (melalui SWIG) lebih mudah.
Jawa datang kemudian, mencakup ceruk antara - dan baru-baru ini tentu saja Go dikembangkan (meskipun saya belum percaya ada banyak pekerjaan produksi di dalamnya, karena masih berkembang dan semakin matang). Beberapa bahasa khusus seperti sawzall juga dalam campuran untuk tugas yang sangat spesifik, dan tentu saja Javascript sangat penting untuk pekerjaan sisi browser.
Bahasa lain, termasuk yang disebutkan Greg pada '06, bisa "kebetulan" atau digunakan untuk tugas spesifik lainnya (mis., Objective C untuk klien di iPhone atau Mac) - misal, ketika Google menyewa administrator sistem pertamanya , para karyawan itu mau tidak mau datang dengan penguasaan Perl dan Bash yang sangat kuat, dan sering menggunakan salah satu dari bahasa itu untuk mengembangkan beberapa sistem internal yang kompleks; pengodean ulang orang-orang di Python (untuk penyebaran dan pemeliharaan lebih mudah) telah sering terjadi. Lainnya (seperti C #) mungkin telah berada dalam campuran sementara karena akuisisi, tetapi, sekali lagi, pengodean ulang dalam salah satu "bahasa Google utama" selalu menjadi prioritas yang cukup tinggi (dalam kasus C #, pengodean ulang biasanya akan sebagian besar di Jawa, karena kedua bahasa tersebut membahas bidang yang sama dalam hal tingkat abstraksi).
sumber
Saya belum membaca keseluruhan artikel dan saya tidak tahu seberapa representatifnya tapi mungkin ini menjawab pertanyaan Anda: Python di Google .
Ok saya membaca sebagian besar, sayangnya memberikan tidak bahwa banyak wawasan tapi saya pikir itu masih sebuah artikel menarik. Mungkin yang paling penting:
Tidak lupa bahwa Guido van Rossum pencipta Python bekerja untuk Google dari 2005-2012;)
Saya juga menemukan kutipan ini tetapi saya tidak dapat memverifikasinya:
sumber
Saya membaca tentang Unladen-Swallow , sebuah proyek yang bertujuan untuk meningkatkan kinerja CPython. Saat menjelajah melalui papan diskusi mereka, saya menemukan diskusi ini , di mana Collin Winter (karyawan Google dan pengembang inti Python) menjawab klaim bahwa karyawan Google tidak disarankan menggunakan Python untuk proyek baru :
sumber
Jika Anda berlangganan ide Paul Graham yang ringkas == kekuatan (yaitu Jika saya dapat menulis kode dalam bahasa X dalam 10 baris untuk mencapai apa yang Anda ambil 100 baris bahasa Y, bahasa saya lebih kuat)
Perangkat keras akhir-akhir ini murah, daging mahal . Saya tahu bahwa saya dapat menulis lebih banyak, lebih cepat, lebih baik DAN lebih jelas dalam Python daripada yang saya dapat dalam bahasa lain, hanya karena baterai cenderung disertakan. Tentu, ini mungkin lebih lambat tetapi apakah Anda benar-benar akan melihat perbedaan antara 0,05 detik dan 0,0005 detik?
Dalam contoh yang lebih nyata, jika pengembang Google menulis sebuah program dengan Python di mana mereka tidak perlu khawatir tentang pengumpulan sampah, dan Perusahaan X menulis sebuah program dalam C ++ dan mereka menghabiskan 10% dari waktu mereka melacak bug yang berkaitan dengan alokasi memori, tebak siapa yang selesai lebih cepat - bahkan jika toko C ++ berhasil menulis kode mereka dengan cepat.
Jadi ya, saya akan mengatakan itu adalah keunggulan kompetitif untuk kode dalam Python.
sumber