Oracle vs Google: entrevista com Bruno Souza

Para tentar trazer um pouco de luz ao debate sobre o processo da Oracle contra Google, bati um papo com meu amigo Bruno Souza, consultor, desenvolvedor, evangelista java, o “javaman”. Ele é Coordenador da Sociedade de Usuarios Java (SouJava), lider da Comunidade Mundial de Grupos de Usuarios de Java (JUGs Community) e Diretor Honorario da OSI (Open Source Initiative). Ele trabalha atualmente na Summa Technologies.

Este papo foi muito esclarecedor, e por isso decidi publicá-lo aqui.

Para começar, qual é a sua opinião sobre este processo ? Você acredita que existe mocinho e bandido nesse caso ?
Litígios entre empresas em geral não são simples, e não se fala em mocinho e bandido nesses casos. São duas empresas gigantes, que estão usando sua força e peso para ganhar mercado. Não tem ninguem “bonzinho” nisso.

O Google criou uma inovação muito interessante, um novo sistema operacional para telefones celulares, o Android. O grande desafio para se introduzir uma nova plataforma, é atrair os desenvolvedores. O Google decidiu fazer isso, atraindo os desenvolvedores Java, e para isso, incluiu uma parte da Plataforma Java no seu sistema. Obviamente, como Java é uma tecnologia que tem exigências de compatibilidade, e o Google decidiu não honrar essas exigências, eles fizeram um esforço grande para se distanciar de Java o máximo possível, enquanto mantinham a possibilidade de atrair os desenvolvedores Java. Dessa forma, eles tiraram proveito da plataforma e da comunidade criados pela Sun, mas sem incorrer em nenhuma necessidade de licenciar ou pagar aa Sun por isso, e ao mesmo tempo, criando uma especie de “versão incompatível” de Java.

A Google teria vários caminhos para evitar esse processo, e de fato incluir Java no Android, mas decidiu não utilizar nenhuma das formas. Algumas pessoas especulam que a fragilidade financeira da Sun, e o fato da Sun nunca ter usado patentes como base para um processo foram o que fizeram a Sun a não tomar ação.

Por outro lado, essa decisão do Google nos remete a um caso anterior ainda. O Google está utilizando um projeto open source, o Apache Harmony, uma implementação das especificações Java. Mas eles estao usando apenas parte do projeto, a parte que permite com que desenvolvedores Java usem seu conhecimento e suas ferramentas para desenvolver para Android. Ou seja, a parte que permite o Google se beneficiar da gigantesca comunidade Java. Mas quem pisou na bola nesse caso, foi a Sun, que entrou em uma disputa sem sentido com a Apache, e decidiu não permitir que o Apache Harmony passasse pelos testes de compatibilidade. Com isso, a Sun criou um cisma com a comunidade open source, que esta agora sendo aproveitado pelo Google.

Com a compra da Sun pela Oracle, a Oracle, provavelmente tentando recuperar possibilidades de licenciamento perdidas, tomou a decisão de processar o Google, e exigir que eles se posicionem. Observe que existem outros usos questionáveis do Google relacionados a Java, e pode ser que isso também seja colocado na mesa na hora da discussão.

A minha opinião de tudo isso é que são duas grandes empresas, que estão se degladiando e competindo por um mercado. Infelizmente, uma dessas empresas é vista pelo mercado como “mocinho” e outra como “bandido”. Mas a verdade, é que temos varios “bandidos” nessa história. A Sun por não ter honrado seu compromisso com a comunidade open source e ter efetivamente impedido o Projeto Harmony de se tornar uma máquina virtual compatível; o Google por ter se aproveitado dessa situação e criado uma versão incompatível de Java (sem chamar de Java), com o objetivo de atrair desenvolvedores sem ter que de fato honrar os compromissos esperados pela comunidade Java (e nem pagar licenciamento por isso), e agora a Oracle, que usando de um processo totalmente penoso em termos de imagem, gerou uma incerteza gigantesca em relação ao futuro de Java, e mais ainda, ao futuro de todos os projetos open source que mantém.
No final de tudo, é um processo que só tem perdedores…

O que é exatamente essa máquina virtual Davilk e qual sua relação com a JVM da Sun ?
A Dalvik é uma máquina virtual capaz de executar código binário Dalvik… Ou seja, não tem relação direta com a máquina virtual Java (JVM), que executa código binário (bytecodes) Java. A questão nesse processo não é a máquina virtual, mas o conjunto de bibliotecas.

Quando usamos o termo “Plataforma Java”, estamos basicamente falando de 3 coisas: a Linguagem Java, o conjunto de bibliotecas (APIs) Java e a máquina Virtual Java (JVM), capaz de executar o Código Binário (bytecodes) Java.  Dessas, as mais importantes são as APIs e a JVM, ja que os desenvolvedores dependem da bibliotecas para ter acesso aa funcionalidades da plataforma Java e a máquina virtual nos da a compatibilidade e a capacidade de independência de plataforma. A linguagem Java acaba levando toda a fama, mas é a menos importante: existem várias outras linguagens que tambem usam as APIs e a rodam na JVM, e são tão (em alguns casos ate mais) funcionais do que a Linguagem Java.

Bem, o que o Google fez foi: manteve a linguagem Java, e usou a implementacao das APIs Java feita pela Apache, mas criaram a Dalvik, uma nova máquina virtual. Ou seja, ganharam o mindshare dos desenvolvedores (usando a linguagem Java) e mantiveram a funcionalidade básica oferecida pela plataforma (as APIs). Mas, para evitar qualquer processo (e também por algumas razoes tecnicas), criaram uma máquina virtual diferente, que executa outros tipos de bytecodes.

Se o Davilk foi implementado ‘do zero’ e agora sofre um processo por violação de patentes, muita gente conclui que utilizar Java é então um enorme risco. Isso é verdade ?
Temos que separar isso em várias questões… Primeiro, o processo movido pela Oracle é baseado em “patentes”. Patentes são um risco à industria de software em geral. Só existem basicamente nos Estados Unidos e alguns ouros paises (patentes de software não são reconhecidas no Brasil, nem em boa parte do mundo), e da forma como são feitas nos EUA, prejudicam e muito o desenvolvimento de software e de ideias. Por sinal, patentes de software são um risco para todo e qualquer projeto open source (e projetos não open source também), porque não importa se voce conhece o código de alguém: as patentes são monopolios sobre e ideias. Se voce usa uma ideia que eu patenteei (mesmo que voce nunca tenha ouvido falar de mim, muito menos visto meu software), eu tenho direito de te processar.

Portanto, esse “risco” em relação a Java não tem nenhuma base. Esse processo não mostra que Java seja mais (nem menos) arriscada do que qualquer outro software que você esteja usando.

Além do que, como é que o fato do Google ter não usado Java ser um risco para quem quer usar Java? Na verdade, é exatamente ao contrario: as especificações Java tem provisoes explicitas para que, se voce implementar as especificaçoes completamente (ou seja, se voce _usar_ Java) você estaria protegido de processos de patentes. Ou seja, tivesse o Google de fato usado Java, eles estariam tranquilos e sem nenhum risco de serem processados. E para isso seria muito fácil, o Google tem diversas maneiras de usa Java de acordo, desde usar o projeto livre OpenJDK (compativel) a usar o projeto Harmony e garantir a compatibilidade, ou mesmo licenciar o codigo da Oracle.

Claramente estamos vendo aqui uma briga entre dois gigantes, que infelizmente estão apostando suas comunidades. Mas é importante observar que isso não afeta em nada a vida dos desenvolvedores, nem dos desenvolvedores Java, nem dos desenvolvedores Android, e facilmente poderia ser feito um acordo entre as empresas para resolver isso muito antes de se chegar nos tribunais.

Que lições nós da comunidade Open Source devemos tirar desta encrenca toda ?
Patentes são um mal, e infelzmente, não tem como se fugir delas, e esse caso mostra bem isso. Se entendermos isso aqui no Brasil, e trabalharmos para que o país nunca aceite patentes de software, estaremos fazendo um ótimo investimento no futuro de nossas empresas.

Não existem empresas “boas” e “más”, existem riscos e oportunidades. O Google sabia dos riscos, mas viu uma oportunidade. Eles estavam esperando essa decisão da Oracle a muito tempo (de tanto que tinham uma resposta no dia seguinte). E a Oracle também está pesando riscos e oportunidades: o risco de perder a comunidade e a marca Java.

Agora, a melhor lição: Java é uma ótima alternativa! Se não fosse, porque o Google gastaria horrores so para se colocar nessa posição? Eles poderiam ter usado qualquer uma de muitas outras linguagens existentes no mercado, inclusive linguagens proprias como o “Go”. Mas a verdade é que Java é de longe a mais usada tecnologia no mundo mobile, e o Google entendeu isso. Mas, tivessem eles se preocupado em manter a compatibilidade, nao estariam enfrentando essa discussao toda.

Em resumo, a historia é mais ou menos a seguinte:

– A Sun criou uma tecnologia para o mundo de celulares (Java Micro Edition), tecnologia essa usada pela gigantesca maioria de fabricantes e operadoras em todo mundo. é baseada nos mesmos principios de Java, e possui uma “máquina Virtual”, que é capaz de executar o codigo Java em múltiplos celulares.

>

  • A Apache Foundation criou um projeto para implementar a máquina Virtual Java a partir do zero, chamado Projeto Harmony
  • A Sun entao disponibilizou o código fonte de sua máquina virtual através dos projetos OpenJDK e PhoneME, sendo o PhoneME a máquina virtual para telefones celulares.
  • O Google decidiu usar partes do Projeto Harmony e criou uma outra máquina virtual, que não é Java, não segue os mesmos padrões da tecnologia Java, mas por usar partes do Harmony, usa a linguagem Java
  • Eu sempre digo em minhas palestras que o problema hoje não são as patentes, mas o que a empresa detentora de seus direitos faz com ela, e aprendi isso nos anos que trabalhei com a Sun. Esse caso da Oracle serve de exemplo para isso ?
    Sim. Essa atitude da Oracle, ainda que o Google tenha de fato infringido as patentes, é muito ruim. A Sun e muitas outras empresas não usaram patentes de forma ofensiva, mas parece ser o que a Oracle esta fazendo nesse momento. É dificil dizer o que eles estão atrás, mas provavelmente estão querendo algum acordo de licenciamento mútuo de patentes (já que o Google tem patentes na área de banco de dados), ou algo nesse sentido. Essa atitude deles cria uma incerteza que irá prejudicar a comunidade Java e todos os projetos open source da Oracle, em especial, o OpenJDK. Essa atitude em relação ao Google, junto com as recentes atividades da empresa de acabar com importantes projetos, como OpenSSO (identidade), Wonderland (mundo virtual 3D) e o OpenSolaris (sistema operacional) entre outros, mostra que a Oracle não está muito interessada em fomentar o desenvolvimento open source dentro da empresa. Isso é um mal sinal.

    FONTE: Site IT Web com agradecimentos especiais ao Carlos Fernando Gonçalves do grupo de discussão do google Java Noroeste.

    Anúncios

    , , , , , , , , , , , , , , , , , , , , , , , ,

    1. Deixe um comentário

    Deixe um comentário

    Preencha os seus dados abaixo ou clique em um ícone para log in:

    Logotipo do WordPress.com

    Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

    Foto do Google+

    Você está comentando utilizando sua conta Google+. Sair /  Alterar )

    Imagem do Twitter

    Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

    Foto do Facebook

    Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

    Conectando a %s

    %d blogueiros gostam disto: