it-swarm-eu.dev

Programování používání jazyka na Googlu

Slyšel jsem, že Google používá Python, Java a C++.) Ale nevím, jak se používá každý z těchto programovacích jazyků. Myslím tím, co je Python, Java a C++ se používá na Googlu. Proč by používali až 3 programovací jazyky, když stačí jeden jazyk. Ví někdo?

29
Joshua Partogi

Správná odpověď „protože různé jazyky mají různé silné stránky“ již byla uvedena. Dovolte mi však podrobněji vysvětlit, proč:

C++

Hlavní výhodou C++ je, že je nejrychlejší ze série. Není to nutné, protože Java a Python jsou pomalé, ale protože v C++ máte větší kontrola o how = věci jsou popraveny.

Například pokud píšete rozhraní webových služeb, které vyžaduje méně než 30 ms latenci, můžete naladit kód C++, abyste tohoto výkonu dosáhli. Ve spravovaném jazyce jako Java) je o něco těžší přimět GC, aby dokonale spolupracoval.

C++ se používá pro mnoho „magií Google“, jako je BigTable, MapReduce a vyhledávací goo.

Java

Pro většinu standardních aplikací je Java je naprosto v pořádku). Obsahuje skvělé nástroje, spoustu existujících knihoven a ne spoustu času stráveného ladením.

Java se používá pro mnoho větších webů, které by bylo mnohem obtížnější udržovat v jazyce nižší úrovně, jako je C nebo C++. Například chápu, že GMail je napsán v Javě.

Také si všimněte, že můžete použít Web Toolkit společnosti Google ke kompilování Java kód do JavaScriptu.) Takže úžasná webová stránka nebo widget, který vidíte, mohl začít život jako Java třída.

Python

Python je fantastický jazyk pro obecné použití, ale nenabízí tolik jemnozrnnou kontrolu, jako dokonce Java. (Například existují různé druhy bláznivých argumentů JVM pro věci - nabízí python podobnou konfiguraci?)

S parametrem Python se však dokonale hodí pro jednoduché weby a aplikace, které by jinak byly hrozné skripty Shell. Například, pokud byste chtěli napsat jednoduchý testcase ke shromažďování dat z některých zdrojů, zpracovávat je, a nahrát je do App Engine Python by byla dobrá volba. (Pokud byste však potřebovali distribuovat toto zpracování na 1 000 počítačů, možná byste mohli použít jiný jazyk ...)

JavaScript

Google samozřejmě používá hodně JavaScriptu. Typ JavaScriptu psaný na Googlu se však liší od toho, co vidíte ve volné přírodě. Google vyvinul optimalizační kompilátor jazyka JavaScript, který vám umožňuje vytvářet poznámky v komentářích výměnou za lepší optimalizaci a statickou kontrolu. Viz Google Closure .

Jazyk nezáleží (interop)

Dalším důvodem, proč Google nepoužívá pouze jeden jazyk, je to, že to nemusí. Téměř v každém moderním programovacím jazyce existují zařízení pro volání do externích knihoven, knihoven, které mohou být psány v jiném jazyce. (Viz swig .)

Protože také App Engine spouští JVM, můžete spouštět jakýkoli jazyk, který zkompiluje Java bajtový kód). (Na Googlu se primárně držíme uvedených jazyků, ale to není obtížný požadavek. ) Pokud chcete použít Uzavření, Groovy nebo Scala v App Engine, pokud zahrnete správné soubory JAR, vše by mělo fungovat).

Open-Source

Google také používá a přispívá k mnoha open-source tam, kde je to možné. Tyto projekty jsou obvykle psány v jednom z výše uvedených jazyků a vyžadují, aby byly „použity“ na Googlu.

Pointa je dvě věci:

  • Každý programovací jazyk má své silné stránky. Nebýt situačního využití těchto sil by bylo škoda.
  • Dostupné soupravy nástrojů interopu a kompatibilní běhové časy znamenají, že je méně bolestivé používat více jazyků ve stejném běhovém prostředí.
97
Chris Smith
1 language is enough

Možná jeden jazyk postačuje k tomu, aby adekvátně splnil řadu různých úkolů, ale různé jazyky mají různé silné a slabé stránky a schopnosti.

Protože google s největší pravděpodobností programuje na velké množství různých situací, jedná se o případ koní pro kurzy, nejlepší nástroj pro tuto práci.

17
StuperUser

Tyto tři jazyky se používají pro různé účely.

Python může být použit pro psaní automatizačních skriptů.
C++ pro implementaci složitých algoritmů (Indexer, Crawler, Map-Reduce, Big Table)
Java pro webové služby, webové aplikace atd.

Toto jsou pouze mé předpoklady.

9
Sorantis

Python je používán pro jejich podpůrný web, můžete vidět, že Tato stránka je generována skrz python skript, používají Java knihovny) pro webové aplikace tedy podpora GWT a Java podpora v enginu aplikace)

Myslím, že používají C++ pro Google Earth, nebo pro desktopové aplikace obecně

3
Mahmoud Hossam

„1 jazyk je dost“ může být pravda, pouze pokud je každý váš projekt specifického druhu. A pro některé projekty dokonce ani C++ Java a Python) nejsou nejlepšími nástroji. Kromě toho znát jen jeden jazyk je rozlišovací vlastností chudého programátora.

2

Píšou také nativní aplikace pro Mac a iPhone a ty jsou v Objective-C. Důvod, proč to dělají, je jednoduchý: API jsou v Objective-C.

0
user4051