it-swarm.asia

Google'da programlama dili kullanımı

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?

29
Joshua Partogi

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:

  • Her programlama dilinin kendine özgü güçlü yanları vardır. Bu güçlü yönlerden durumsal olarak yararlanmamak utanç verici olacaktır.
  • Birlikte çalışabilir araç takımları ve uyumlu çalışma zamanları, aynı çalışma ortamı içinde birden çok dil kullanmanın daha az acı verici olduğu anlamına gelir.
97
Chris Smith
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.

17
StuperUser

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.

9
Sorantis

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

3
Mahmoud Hossam

"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.

2

Yerel Mac ve iPhone uygulamaları da yazıyorlar ve bunlar Objective-C'de. Bunu yapmanın nedeni basit: API'ler Objective-C'de.

0
user4051