Google'ın Python'u yoğun kullanımı, sadece bir zevk meselesi mi yoksa onlara rekabet avantajı sağlıyor mu?
Google'ın Python'u yoğun kullanımı, sadece bir zevk meselesi mi yoksa onlara rekabet avantajı sağlıyor mu?
Yanıtlar:
Kesin bir cevap veremiyorum, çünkü 2004'te Google'da röportaj yaptığım zaman Python zaten Google'da öne çıktı.
Gerçekten, kesinlikle inkar edebileceğim görünüşte çekici bir açıklama var: Google'ın Python'u kullanması değil, çünkü pek çok tanınmış Pythonista kullanıyor - daha ziyade, en "kısmen tanınmış Pythonista" googlers Google'a katıldı, en azından kısmen, Python'un önemini biliyorduk çünkü orada (olası istisnalar Peter Norvig ve Jeremy Hylton'u içerir, ancak tarihsel olarak Google'ın Python'u seçmesi bile bunları önceden yapmıştı).
Bu yüzden ilk kez ilgileniyorum (yayıncım, kitabımın Google'ın satın almakta olduğu çok sayıda kopyasını bana bildirin - ilk başta, serbest danışmanlık hizmetimi satmak için iyi bir fırsat olarak düşündüm ...; - ), daha sonra Guido'yu bize katılmaya nasıl ikna edebildim ve inanıyorum ki Greg Stein, Wesley Chun, Fredrik Lundh, Thomas Wouters, Collin Winters, Jeffrey Yasskin gibi Pythonistaların motivasyonunun bir parçası ...
Her şey başladı, inanıyorum, çünkü en eski Google çalışanları (Sergey, Larry, Craig, ...) iyi bir mühendislik kararı verdi: "Yapabileceğimiz Python, yapmamız gereken C ++" - kullandılar (bir alt küme) Yazılım yığınının çok düşük gecikme ve / veya bellek sıkı kontrolünün önemli olduğu parçalar için C ++ ve Python, diğer parçalar için programların daha hızlı teslimatına ve bakımına izin verir. O zamanlar, 90'ların sonlarında, ikinci rol için seçim Python ve Perl arasındaydı: diğer kodlama dilleri ya olgunlaşmamıştı (Ruby'nin henüz etrafta olduğunu sanmıyorum) ya da başka sorunlar ve sınırlamalar vardı. Perl daha olgunlaşmıştı (özellikle CPAN aracılığıyla mevcut eklentilerin ekosistemi açısından), ancak Python'un daha okunabilir ve bakım yapılabilir olduğu düşünülüyordu ve C ++ kütüphanelerine (SWIG aracılığıyla) arayüz kurmak daha kolaydı.
Java daha sonra, ara bir niş kapsayan - ve daha yakın zamanda elbette Go geliştirildi (hala gelişmekte ve olgunlaştığı için henüz çok fazla üretim çalışması olduğuna inanmıyorum). Sawzall gibi bazı özel diller de çok özel görevler için karışıktır ve elbette Javascript tarayıcı tarafı çalışmaları için çok önemlidir.
Greg'in '06'da bahsettiği diller de dahil olmak üzere diğer diller ya "kazara" tür ya da diğer belirli görevler için kullanılır (örneğin, iPhone'larda veya Mac'lerde istemciler için Amaç C) - örneğin, Google ilk sistem yöneticilerini işe aldığında bu çalışanlar kaçınılmaz olarak çok güçlü Perl ve Bash ustalığı ile geldiler ve genellikle bu dillerden herhangi birini karmaşık bir iç sistem geliştirmek için kullandılar; Python'dakilerin yeniden kodlanması (daha kolay dağıtım ve bakım için) çoğu zaman oldu. Diğerleri (C # gibi) satın almalar nedeniyle geçici olarak karışımda olabilir, ancak yine de, "ana Google dillerinden" herhangi birinde yeniden kodlama her zaman oldukça yüksek bir önceliğe sahiptir (C # durumunda, kodlama genellikle Java'da olur, iki dil, soyutlama düzeyleri bakımından benzer alanlara hitap ettiği için).
Makalenin tamamını okumadım ve ne kadar temsilci olduğunu bilmiyorum ama belki de sorunuza cevap veriyor: Google'da Python .
Tamam ben bunun çoğu, ne yazık ki değil verir okumak o kadar fikir ama yine de ilginç bir makale olduğunu düşünüyorum. Belki de en önemlisi:
Google'da python, C ++ ve Java ile birlikte 3 "resmi dilden" biridir. Burada görevli, Google çalışanlarının bu dilleri üretim hizmetlerine dağıtmasına izin verildiği anlamına gelir. (Dahili Google kullanıcıları PHP, C #, Ruby ve Perl dahil olmak üzere birçok teknolojiyi kullanır). Python, Google'daki mühendislik sürecine çok uygundur. Google'daki tipik projede küçük bir ekip (3 kişi) ve kısa bir süre (3 ay) vardır.
Python'un yaratıcısı Guido van Rossum'un 2005-2012 yılları arasında Google için çalıştığını unutmamak gerekir ;)
Ayrıca bu teklifi buldum ama doğrulayamıyorum:
"Python başından beri Google'ın önemli bir parçası oldu ve sistem büyüdükçe ve geliştikçe de öyle. Bugün onlarca Google mühendisi Python kullanıyor ve biz bu dilde yetenekleri olan daha fazla insan arıyoruz"
- Peter Norvig, Google'da Arama Kalitesi Direktörü
CPython'un performansını artırmayı amaçlayan Unladen-Swallow adlı projeyi okuyordum . Onların tartışma panosu aracılığıyla gezinirken ben rastladım bu tartışma Collin Kış (Google çalışanı ve Python çekirdek geliştirici) üzerinde yanıtlar istem o Google çalışanları yeni projeler için Python kullanarak cesaretini ediliyor :
Basit sağduyu, Google'ın ölçeğinde çalışırken Python'un uygulanabilirliğini sınırlayacak: Java veya C ++ kadar hızlı değil, iş parçacığı berbat, bellek kullanımı daha yüksek, vb. Herhangi bir yeni sistem tasarlarken karşılaştığımız tasarım kısıtlamalarından biri, "Yük 10x veya 100x arttığında ne olur? Tüm gezegen yeni hizmetinizin harika olduğunu düşünürse ne olur?" Bu kısıt zor tatmin yapacağı herhangi teknolojisi - ve ben Python bu kategoriye girmektedir düşünüyorum - shoulddiğer esaslar lehine yapılmış çok güçlü bir dava yoksa cesaretini kırmak. Python'un güçlü yönlerini zayıf yönleriyle dengelemek zorundasınız: mühendisleriniz Python kullanarak daha üretken olabilir, ancak hacim arttıkça daha platform düzeyinde performans / ölçeklendirme sınırlamaları üzerinde çalışmak zorunda kalırlarsa, öne çıkıyor musunuz? vb.
Paul Graham'ın özlü == güç fikrine abone olursanız (örn. 100 satır Y aldığınız şeyi başarmak için 10 satırda X dilinde kod yazabilirsem, dilim daha güçlüdür)
Bu gün donanım ucuz, etli ürünler pahalı . Pillhon'da diğer dillerde yapabileceğimden çok daha fazla, daha hızlı, daha iyi ve daha net yazabileceğimi biliyorum, çünkü piller dahil olma eğilimindedir. Elbette, daha yavaş olabilir ama gerçekten .05 saniye ile .0005 saniye arasındaki farkı fark edecek misiniz?
Daha gerçek dünyadaki bir örnekte, Google geliştiricileri Python'da çöp toplama konusunda asla endişe etmeleri gereken bir program yazıyorsa ve X Şirketi C ++ 'da bir program yazıyorsa ve zamanlarının% 10'unu bellek ayırma ile ilgili hataları izlemek için harcıyorlarsa, kim daha hızlı yapıldığını tahmin et - C ++ mağazası kodlarının geri kalanını hızlı yazmayı başarsa bile.
Yani evet, Python'da kodlamanın rekabetçi bir avantaj olduğunu söyleyebilirim.