Prawidłowa odpowiedź „ ponieważ różne języki mają różne mocne strony ” została już podana. Ale pozwól mi podać więcej szczegółów na temat tego, dlaczego:
C ++
Główną zaletą C ++ jest to, że jest najszybszy z całej serii. Nie jest to konieczne, ponieważ Java i Python działają wolno, ale ponieważ w C ++ masz większą kontrolę nad sposobem wykonywania zadań.
Na przykład, jeśli piszesz frontend usług internetowych, który wymaga opóźnienia mniejszego niż 30 ms, możesz dostroić kod C ++, aby osiągnąć tę wydajność. W języku zarządzanym, takim jak Java, trudniej jest uzyskać doskonałą współpracę GC.
C ++ jest używany do wielu „magii Google”, takich jak BigTable, MapReduce i goo wyszukiwania.
Jawa
W przypadku większości standardowych aplikacji Java jest całkowicie dobrym językiem. Zawiera świetne narzędzia, wiele istniejących bibliotek i niewiele czasu poświęcanego na debugowanie.
Java jest używana w wielu większych witrynach, które byłyby o wiele trudniejsze do utrzymania w języku niższego poziomu, takim jak C lub C ++. Na przykład rozumiem, że Gmail jest napisany w Javie.
Pamiętaj też, że możesz użyć Google Web Toolkit do skompilowania kodu Java w JavaScript. Tak więc ta niesamowita strona internetowa lub widżet, które widzisz, mogły rozpocząć życie jako klasa Java.
Pyton
Python jest fantastycznym językiem ogólnego przeznaczenia, ale nie oferuje tak precyzyjnej kontroli, jak nawet Java. (Na przykład istnieją różne szalone argumenty JVM dotyczące różnych rzeczy - czy python oferuje podobną konfigurację?)
Jednak z Python doskonale nadaje się do prostych stron internetowych i aplikacji, które w przeciwnym razie byłyby okropnymi skryptami powłoki. Na przykład, jeśli chcesz napisać prostą walizkę testową do zbierania danych z niektórych źródeł, dobrze je przetworz i prześlij do App Engine Python. (Jeśli jednak chcesz rozpowszechniać to przetwarzanie na 1000 komputerów, być może możesz użyć innego języka ...)
JavaScript
Oczywiście Google używa dużo JavaScript. Jednak rodzaj kodu JavaScript napisanego w Google różni się od tego, co widzisz na wolności. Google opracowało optymalizujący kompilator JavaScript, który umożliwia konstruowanie adnotacji w komentarzach w zamian za lepszą optymalizację i sprawdzanie statyczne. Zobacz zamknięcie Google .
Język nie ma znaczenia (interop)
Innym powodem, dla którego Google nie używa tylko jednego języka, jest to, że nie musi. W prawie każdym nowoczesnym języku programowania znajdują się urządzenia do wywoływania bibliotek zewnętrznych, bibliotek, które mogą być napisane w innym języku. (Zobacz swig .)
Ponadto, ponieważ App Engine obsługuje JVM, można uruchomić dowolny język kompilujący się do kodu bajtowego Java. (W Google trzymamy się przede wszystkim wymienionych tutaj języków, ale nie jest to trudne wymaganie). Jeśli chcesz używać Closure, Groovy lub Scala w App Engine, jeśli podasz odpowiednie pliki JAR, wszystko powinno po prostu działać.
Otwarte źródło
Ponadto Google używa i przyczynia się do wielu Open-Source, tam gdzie to możliwe. Projekty te są zwykle napisane w jednym z powyższych języków i wymagają „wykorzystania” w Google.
Najważniejsze jest dwie rzeczy:
- Każdy język programowania ma swoje mocne strony. Wstrzymanie się w sytuacji skorzystanie z tych mocnych stron byłoby wstydem.
- Dostępne zestawy narzędzi do współpracy i kompatybilne środowiska wykonawcze oznaczają, że używanie wielu języków w tym samym środowisku wykonawczym jest mniej bolesne.