Utilizzo della lingua di programmazione su Google [chiuso]

30

Ho sentito che Google usa Python, Java e C ++. Ma quello che non so è come viene usato ciascuno di questi linguaggi di programmazione. Voglio dire che cosa è usato per Python, Java e C ++ su Google. Perché dovrebbero usare fino a 3 linguaggi di programmazione quando 1 lingua è sufficiente. Qualcuno sa?

    
posta Joshua Partogi 21.01.2011 - 12:26
fonte

6 risposte

96

La risposta corretta " perché diverse lingue hanno punti di forza diversi " è già stata dichiarata. Ma lascia che ti fornisca ulteriori dettagli sul perché:

C ++

C ++ ha il vantaggio principale di essere il più veloce del lotto. Non necessario perché Java e Python sono lenti, ma poiché in C ++ hai più controllo su come le cose vengono eseguite.

Ad esempio, se si sta scrivendo un frontend di servizi Web e si richiede una latenza inferiore a 30 ms, è possibile ottimizzare il codice C ++ per ottenere tali prestazioni. In un linguaggio gestito come Java è molto più difficile far cooperare perfettamente il GC.

C ++ è usato per un sacco di "Google magic" come BigTable, MapReduce e goo di ricerca.

Java

Per la maggior parte delle applicazioni standard, Java è un linguaggio perfettamente raffinato. È dotato di ottimi strumenti, molte librerie esistenti e non molto tempo per il debugging.

Java è usato per molti siti web più grandi che sarebbero molto più difficili da mantenere in un linguaggio di livello inferiore come C o C ++. Ad esempio, la mia comprensione è che GMail è scritto in Java.

Inoltre, tieni presente che puoi utilizzare il Toolkit Web di Google per compilare il codice Java in JavaScript. In modo che la fantastica pagina web o il widget che vedi possa aver avuto inizio come classe Java.

Python

Python è un fantastico linguaggio generico, ma non offre un controllo tanto dettagliato quanto persino Java. (Per esempio, ci sono molti tipi di argomenti JVM pazzi per cose - Python offre una configurazione simile?)

Tuttavia, con Python è perfettamente adatto per semplici siti Web e applicazioni che altrimenti sarebbero script di shell orribili. Ad esempio, se si volesse scrivere una semplice testcase per raccogliere dati da alcune fonti, elaborarle e caricarle su App Engine Python sarebbe una buona scelta. (Se dovessi distribuire quell'elaborazione su 1.000 macchine, forse potresti usare una lingua diversa ...)

JavaScript

Ovviamente Google utilizza molto JavaScript. Tuttavia, il tipo di JavaScript scritto su Google è diverso da quello che vedi in natura. Google ha sviluppato un compilatore JavaScript ottimizzante che consente di creare annotazioni nei commenti in cambio di migliori ottimizzazioni e controllo statico. Vedi Google Closure .

La lingua non importa (interop)

Un altro motivo per cui Google non usa solo una lingua è che non è necessario. Ci sono strutture in quasi tutti i linguaggi di programmazione moderni da chiamare in librerie esterne, librerie che possono essere scritte in una lingua diversa. (Vedi swig .)

Inoltre, poiché App Engine esegue la JVM, è possibile eseguire qualsiasi linguaggio che compaia in codice byte Java. (In Google ci atteniamo principalmente alle lingue menzionate qui, ma non è un requisito rigoroso.) Se si desidera utilizzare Closure, Groovy o Scala su App Engine se si includono i file JAR corretti, tutto dovrebbe funzionare.

Open-Source

Inoltre, Google utilizza e contribuisce a molte Open-Source ove possibile. Questi progetti di solito sono scritti in una delle lingue sopra e richiedono che vengano "usati" su Google.

La linea di fondo sono due cose:

  • Ogni linguaggio di programmazione ha i suoi punti di forza. Non approfittare di questi punti di forza per la situazione sarebbe un peccato.
  • La disponibilità di toolkit di interoperabilità e runtime compatibili significa che è meno doloroso utilizzare più lingue nello stesso ambiente di runtime.
risposta data 21.01.2011 - 17:06
fonte
17
1 language is enough

Forse una lingua è sufficiente per completare adeguatamente un numero di compiti diversi, ma lingue diverse hanno punti di forza, debolezze e abilità differenti.

Dato che google probabilmente programma per un gran numero di situazioni diverse è un caso di cavalli per i corsi, lo strumento migliore per il lavoro.

    
risposta data 21.01.2011 - 12:29
fonte
9

Queste tre lingue sono utilizzate per scopi diversi.

Python potrebbe essere usato per scrivere script di automazione.
C ++ per l'implementazione di algoritmi complessi (indicizzatore, crawler, map-reduce, big table)
Java per servizi Web, applicazioni Web, ecc.

Queste sono solo le mie ipotesi.

    
risposta data 21.01.2011 - 12:45
fonte
3

Python è usato per il loro sito web di supporto, puoi vedere che Questa pagina è generato da uno script python, usano librerie java per applicazioni web, da qui il supporto GWT e java nel motore dell'app

Penso che utilizzino C ++ per google earth o per applicazioni desktop in generale

    
risposta data 21.01.2011 - 13:29
fonte
2

"1 linguaggio è sufficiente" può essere vero solo se ogni progetto che fai è di un tipo specifico. E per alcuni progetti, anche C ++ Java e Python non sono i migliori strumenti. Inoltre, conoscere solo una lingua è una caratteristica distintiva del povero programmatore.

    
risposta data 27.01.2011 - 20:29
fonte
0

Scrivono anche applicazioni native per Mac e iPhone, e quelle sono in Objective-C. Il motivo per cui lo fanno è semplice: le API sono in Objective-C.

    
risposta data 21.01.2011 - 13:27
fonte

Leggi altre domande sui tag