Ouvi dizer que o Google usa Python, Java e C ++. Mas o que não sei é como é usada cada uma dessas linguagens de programação. Quero dizer, o que é Python, Java e C ++ é usado no Google. Por que eles usaram até 3 linguagens de programação quando 1 linguagem é suficiente. Alguém sabe?
29
Respostas:
A resposta correta " porque idiomas diferentes têm forças diferentes " já foi declarada. Mas deixe-me fornecer mais alguns detalhes sobre o porquê:
C ++
O C ++ tem a principal vantagem de ser o mais rápido do lote. Não é necessário porque Java e Python são lentos, mas porque em C ++ você tem mais controle sobre como as coisas são executadas.
Por exemplo, se você estiver escrevendo um front-end de serviços da Web que exija menos de 30ms de latência, poderá ajustar o código C ++ para obter esse desempenho. Em uma linguagem gerenciada como Java, é um pouco mais difícil fazer o GC cooperar perfeitamente.
O C ++ é usado para muitas 'mágicas do Google', como BigTable, MapReduce e pesquisa.
Java
Para a maioria dos aplicativos padrão, Java é uma linguagem perfeitamente adequada. Possui ótimas ferramentas, muitas bibliotecas existentes e pouco tempo gasto na depuração.
O Java é usado para muitos sites maiores, que seriam muito mais difíceis de manter em uma linguagem de nível inferior como C ou C ++. Por exemplo, meu entendimento é que o GMail é escrito em Java.
Além disso, observe que você pode usar o Web Toolkit do Google para compilar o código Java em JavaScript. Portanto, essa incrível página da web ou widget que você vê pode ter começado a vida como uma classe Java.
Python
Python é uma fantástica linguagem de propósito geral, mas não oferece tanto controle refinado quanto o Java. (Por exemplo, existem todos os tipos de argumentos malucos da JVM para coisas - o python oferece configuração semelhante?)
No entanto, o Python é perfeitamente adequado para sites e aplicativos simples que, de outra forma, seriam horríveis scripts de shell. Por exemplo, se você quiser escrever um caso de teste simples para coletar dados de algumas fontes, processá-los e enviá-los para o App Engine Python seria uma boa opção. (No entanto, se você precisasse distribuir esse processamento por 1.000 máquinas, talvez pudesse usar um idioma diferente ...)
Javascript
Obviamente, o Google usa muito JavaScript. No entanto, o tipo de JavaScript escrito no Google é diferente do que você vê na natureza. O Google desenvolveu um compilador JavaScript otimizador que permite criar anotações em comentários em troca de melhores otimizações e verificação estática. Consulte Google Closure .
O idioma não importa (interoperabilidade)
Outra razão pela qual o Google não usa apenas um idioma é que ele não precisa. Existem facilidades em quase todas as linguagens de programação modernas para chamar bibliotecas externas, bibliotecas que podem ser escritas em uma linguagem diferente. (Veja swig .)
Além disso, como o App Engine executa a JVM, você pode executar qualquer idioma que seja compilado no código de byte Java. (No Google, aderimos principalmente aos idiomas mencionados aqui, mas esse não é um requisito difícil.) Se você deseja usar o Closure, Groovy ou Scala no App Engine, se incluir os arquivos JAR certos, tudo deve funcionar.
Código aberto
Além disso, o Google usa e contribui para uma grande quantidade de código aberto sempre que possível. Esses projetos geralmente são escritos em um dos idiomas acima e exigem que ele seja 'usado' no Google.
A linha inferior é duas coisas:
fonte
Talvez um idioma seja suficiente para concluir adequadamente uma série de tarefas diferentes, mas diferentes idiomas têm diferentes pontos fortes, fracos e habilidades.
Como o Google provavelmente programa para um grande número de situações diferentes, é um caso de cavalos para percursos, a melhor ferramenta para o trabalho.
fonte
Esses três idiomas são usados para finalidades diferentes.
Python pode ser usado para escrever scripts de automação.
C ++ para implementar algoritmos complexos. (Indexador, Rastreador, Redução de Mapa, Tabela Grande)
Java para serviços web, aplicativos web, etc.
Estas são apenas minhas suposições.
fonte
O Python é usado no site de suporte. Você pode ver que esta página é gerada por um script python, eles usam bibliotecas java para aplicativos da web, portanto, o GWT e o suporte a java no mecanismo de aplicativos
Eu acho que eles usam C ++ para o Google Earth, ou para aplicativos de desktop em geral
fonte
"1 idioma é suficiente" só pode ser verdade se todo projeto que você fizer for de um tipo específico. E para alguns projetos, mesmo C ++ Java e Python não são as melhores ferramentas. Além disso, conhecer apenas um idioma é uma característica distintiva do programador ruim.
fonte
Eles também escrevem aplicativos nativos para Mac e iPhone, e esses estão no Objective-C. O motivo disso é simples: as APIs estão no Objective-C.
fonte