A batalha judicial entre Google e Oracle, dona do Java, continua. Joshua Bloch, “guru do Java” no Google, admitiu semana passada que “provavelmente” copiou parte do código-fonte do Java para usar no Android. Mas eram só nove linhas! Como esperado, a Oracle procurou expandir a acusação para o restante do código. Deu certo? Mais ou menos: o Google também tem argumentos fortes.

A Oracle chamou o especialista John Mitchell, professor de Ciência da Computação na Universidade Stanford- ironicamente, a instituição onde estudaram os co-fundadores do Google.

Mitchell analisou as 37 APIs do caso, e encontrou semelhanças demais entre o Java 2 SE e o Android 2.2 – “eles são realmente idênticos”, diz ele. O professor afirma que 90% do código das APIs no Android foi copiado: “eu não acho que haja uma forma de uma equipe independente tê-lo criado”. Isso fere o argumento do Google, de que o Android foi criado em uma “sala limpa” (clean room): sem código privado de outras empresas, e sem funcionários que conheciam tal código.

Mitchell também afirma que parte do Android viria de engenharia reversa no código proprietário da Oracle. Ele rodou o descompilador jad no código do Java, e o comparou ao Android: na maior parte, “o código bate exatamente”. Além disso, o código descompilado tem indícios de que não foi escrito por humanos, como variáveis com nomes automáticos – é o caso dos exemplos exibidos em tribunal.

E o código copiado que vimos semana passada – apenas 9 linhas de código – parece terrivelmente importante: Mitchell diz que o RangeCheck foi chamado 2.600 vezes quando o Android é inicializado. “2.600 parece um número bastante grande”, diz ele.

Mas a situação ficou feia pro lado da Oracle quando entrou a defesa do Google. Mitchell disse que baseou seu relatório em um estudo do Dr. Mark Viznik, que compara o Android 2.2 ao JDK (Java Development Kit). Depois de uma análise profunda, Viznik só encontrou no código 12 arquivos iguais entre milhares deles.

Pior: o código que o Google supostamente copiou parece vir do Apache Harmony – a versão de código aberto do Java. Um porta-voz do Google deixa claro: “APIs estão disponíveis há um bom tempo, em livros, na web e no [Apache] Harmony. Nós com certeza os usamos e os incluímos no Android…”. Mitchell parecia não saber disso, mas a ordem do juiz ao Google foi: “Esqueça o Harmony, e traga sua própria testemunha depois”.

Andy Rubin, criador do Android, também depôs brevemente, e admitiu que tentou negociar uma licença do Java com a Sun – o que não se realizou. Além disso, um e-mail revela que, para Rubin, “uma implementação ‘sala limpa’ do Java Virtual Machine seria improvável… vários deles [na equipe do Android] eram membros-chave da equipe de desenvolvimento do Java na Sun”.

O caso continua: ontem tivemos no tribunal Eric Schmidt, ex-CEO do Google, e Andy Rubin novamente – logo traremos um resumo. [Groklaw, The Verge e CNet]