Google'ın Python, Java ve C++ 'ı kullandığını duydum. Ama bilmediğim şey bu programlama dilinin her birinin nasıl kullanıldığı. Yani Python nedir, Java ve C++ kullanılır, 1 dil yeterli olduğunda neden en fazla 3 programlama dili kullanırlar?
Doğru cevap " çünkü farklı diller farklı güçlü yönlere sahiptir" zaten belirtilmişti. Ama nedenini biraz daha açıklayayım:
C++
C++, en hızlısı olma avantajına sahiptir. Gerekli değildir çünkü Java ve Python yavaştır, ancak C++ 'da daha fazla kontrol hakkında nasıl şeyler yürütülür.
Örneğin, 30 ms'den daha az gecikme gerektiren bir web hizmetleri ön ucu yazıyorsanız, bu performansı elde etmek için C++ kodunu ayarlayabilirsiniz. Java) gibi yönetilen bir dilde, GC'nin mükemmel bir şekilde işbirliği yapması biraz daha zordur.
C++, BigTable, MapReduce ve search goo gibi bir çok 'Google büyüsü' için kullanılır.
Java
Çoğu standart uygulama için Java mükemmel bir dildir. Hata ayıklamak için çok fazla zaman harcamaz, harika araçlar, çok sayıda mevcut kitaplık ve özelliklere sahiptir.
Java, C veya C++ gibi alt düzey bir dilde bakımı çok daha zor olan daha büyük web siteleri için kullanılır. Örneğin, benim anlayışım GMail'in Java ile yazılmış olmasıdır.
Ayrıca, Java kodunu JavaScript'e derlemek için Google'ın Web Araç Seti'ni kullanabileceğinizi unutmayın. Böylece gördüğünüz harika web sayfası veya widget, hayata Java sınıf.
Python
Python harika bir genel amaçlı dildir, ancak Java kadar ince taneli bir kontrol sunmaz. (Örneğin, her şey için çılgın JVM argümanları vardır - python benzer yapılandırma sunuyor mu?)
Bununla birlikte, Python, aksi takdirde korkunç Kabuk komut dosyaları olabilecek basit web siteleri ve uygulamalar için mükemmel şekilde uygundur.Örneğin, bazı kaynaklardan veri toplamak için basit bir testcase yazmak istiyorsanız, bunları işleyin, ve bunları App Engine'e yükleyin Python iyi bir seçim olacaktır. (Ancak bu işlemi 1.000 makineye dağıtmanız gerekiyorsa, belki de farklı bir dil kullanabilirsiniz ...)
JavaScript
Açıkçası Google çok fazla JavaScript kullanıyor. Ancak, Google'da yazılan JavaScript türü, vahşi doğada gördüğünüzden farklıdır. Google, daha iyi optimizasyonlar ve statik kontrol karşılığında yorumlarda ek açıklamalar oluşturmanıza olanak tanıyan bir optimizasyon JavaScript derleyicisi geliştirdi. Bakınız Google Kapanış .
Dil Önemli Değil (birlikte çalışma)
Google'ın yalnızca bir dil kullanmamasının bir başka nedeni, buna gerek olmamasıdır. Hemen hemen her modern programlama dilinde, harici kütüphanelere, farklı bir dilde yazılabilen kütüphanelere çağrı yapacak tesisler vardır. (Bkz. swig .)
Ayrıca, App Engine JVM'yi çalıştırdığından Java bayt koduna derleyen herhangi bir dili çalıştırabilirsiniz. (Google'da öncelikle burada belirtilen dillere bağlı kalıyoruz, ancak bu zor bir gereklilik değildir). ) Closure, Groovy veya Scala doğru JAR dosyalarını eklerseniz, her şeyin çalışması gerekir.
Açık Kaynak
Ayrıca Google, mümkün olan yerlerde çok sayıda Açık Kaynak kullanır ve katkıda bulunur. Bu projeler genellikle yukarıdaki dillerden birinde yazılır ve Google'da 'kullanılmasını' gerektirir.
Sonuç olarak iki şey var:
1 language is enough
Belki bir dil, bir dizi farklı görevi yeterince yerine getirmek için yeterlidir, ancak farklı diller farklı güçlü, zayıf ve yeteneklidir.
Google büyük olasılıkla çok sayıda farklı durum için programladığından, iş için en iyi araç olan kurslar için bir at örneği.
Bu üç dil farklı amaçlar için kullanılır.
Python, otomasyon komut dosyaları yazmak için kullanılabilir.
Karmaşık algoritmalar uygulamak için C++ (Dizin oluşturucu, Tarayıcı, Harita Azaltma, Büyük Tablo)
Web servisleri, web uygulamaları vb. İçin Java.
Bunlar benim varsayımlarım.
Python destek web siteleri için kullanılır, Bu sayfa bir python komut dosyası tarafından oluşturulduğunu, Java kütüphaneler kullandıklarını görebilirsiniz. web uygulamaları için, GWT ve Java uygulama motorunda destek
Google Earth veya genel olarak masaüstü uygulamaları için C++ kullandıklarını düşünüyorum
"1 dil yeterlidir" ancak yaptığınız her proje belirli bir türdeyse doğru olabilir. Ve bazı projeler için bile C++ Java ve Python) en iyi araç değildir.Ayrıca, sadece bir dili bilmek zayıf programcının ayırt edici bir özelliğidir.
Yerel Mac ve iPhone uygulamaları da yazıyorlar ve bunlar Objective-C'de. Bunu yapmanın nedeni basit: API'ler Objective-C'de.