google-tablet

Rachel Potvin, funcionária do Google, falou em um evento em Silicon Valley sobre detalhes de todo o ecossistema da empresa (buscador, Gmail, Mapas, etc), e abarcando todos os seus produtos e serviços, podemos encontrar aproximadamente 2 bilhões de linhas de código.

Comparando com o sistema operacional Windows (um software igualmente complexo), este número é ainda mais impressionante, e mostra o rápido crescimento do Google como empresa e como ecossistema. É estimado que o Windows pode ter 50 milhões de linhas de código. Vale a pena deixar claro que o comparativo não tem muito sentido, já que para ser justo, teríamos que contar os códigos de todo o ecossistema da Microsoft.

Segundo Potvin, as 2 bilhões de linhas de código estão dentro de um mesmo sistema, disponível para todos os engenheiros da empresa, e esse mesmo sistema permite uma liberdade enorme para combinar o código entre projetos de naturezas distintas, podendo assim implementar melhorias em todo o código do ecossistema do Google.

Porém, essa liberdade é limitada. Se fosse completa, seria um caos. O PageRank, por exemplo, tem seu código em um repositório separado, e só está disponível para funcionários específicos. O Android e o Chrome também contam com sistemas de controle de versões separadas, já que são produtos bem diferentes do Gmail, do buscador, do Mapas e outros serviços. O sistema de controle de versões utilizado pela Google é o Piper.

Outro dado importante é o número de commits (ou mudanças) que enviam os 25 mil engenheiros do Google para os repositórios de código: são 45 mil commits por dia. Para controlar tudo isso, o Piper elimina boa parte da carga de trabalho dos programadores. Mas isso não quer dizer que os bots de controle de versão escrevem os códigos, mas sim que geram os dados e arquivos de configuração que necessita o software da empresa, mantendo assim a qualidade do código escrito pelos funcionários.

Mudando um pouco de assunto, nesse momento, Google e Facebook estão trabalhando em um sistema de controle de versões Open Source baseado em Mercurial, com o objetivo de oferecer um sistema ao alcance de qualquer pessoa que queira utilizá-lo para manipular grandes quantidades de código.

Via Wired