Google I/O, Kotlin e a fúria da Oracle


15/6/17 às 8h24

No I/O 2017, a Google fez o seu feijão com arroz de sempre: apresentou várias pequenas novidades para a próxima versão do Android, algumas coisas meio mirabolantes e uns números bem impressionantes.

Começando pelo que provavelmente mais interessa à maioria das pessoas que usam um smartphone hoje, o Android O (de Oreo?) e algumas novas funções. O Android O terá, por exemplo, uma nova forma de notificar o usuário que já é bem velha no iOS e até mesmo no Windows 10 Mobile: pontinhos nos ícones dos apps na tela inicial que indicam que há algo a ser checado. Bacana… Ano que vem a Google trará ao Android P o inovador counter dots, com números nos pontinhos ao melhor estilo iOS e Windows 10 Mobile (foi uma ironia).

Além disso, o Android O terá suporte nativo à execução de apps em Picture in Picture, ou simplesmente PiP, o que, explicando de forma bem simples, resume-se à assistir um vídeo do YouTube em uma janelinha que é móvel enquanto se usa outro app em tela cheia. Teve também o interessante Google Lens, que basicamente faz o mesmo trabalho de uma pesquisa do Google Search, só que por meio da câmera e não de um texto ou de um comando de voz.

Outras melhorias incluem formas refinadas de selecionar textos por meio de toques, novas animações e um Google Assistant mais poliglota do que no ano passado, suportando inclusive português brasileiro.

Android Go
Uma novidade bem interessante é o Android Go, que além de ser uma ameaça para o Lineage OS — sistema operacional de código aberto para smartphones e tablets, baseado na plataforma móvel Android tido como sucessor do popular CyanogenMod –, é uma versão simplificada do sistema, própria para rodar em celular com hardware modesto. Essa versão priorizará os apps Lite da Play Store, e já há muitos deles, como o Facebook Lite, o Messenger Lite e o Twitter Lite.

A Google também criará apps desse tipo, e um dos anunciados no I/O 2017 foi o YouTube Go. Não ficou claro, contudo, se essa versão do Android será disponibilizada para aparelhos atualmente em uso. Francamente, seria bem sensato por parte da Google liberar o Android Go para todos que dele precisam.

VR/AR
As novidades mirabolantes ficaram a cargo do Daydream, plataforma de realidade virtual da Google que agora reúne debaixo do seu guarda-chuva o mapeamento 3D por meio de dispositivos com Project Tango, e também os primeiros óculos VR que funcionam sozinhos, sem precisar de um smartphone ou de um PC. Um dispositivo da Lenovo inclusive foi apresentado, e também se falou em uma versão do Vive da HTC.

Também podemos incluir nessa pegada mais impressionista o Project Treble, que segundo a Google vai transformar o Android em módulos de maneira a facilitar a atualização do mesmo e assim diminuir o abismo entre as mais novas versões do sistema e as versões mais usadas, reduzindo a fragmentação da plataforma… Falta apenas a Google avisar a Samsung desse plano, bem como a legião de chinesas que usam forks — sistemas desenvolvidos a partir de partes do Android e que nem sempre respeitam as políticas da Google. (Mais uma ironia aqui).

Mas, de fato, pode dar certo: o Android sendo modular em sua arquitetura facilita bastante a vida das OEM’s –Original Equipment Manufacturer, em português fabricante do equipamento original. Bem, veremos na prática se o plano dará certo. De fato o trabalho será colossal, já que segundo o CEO da Google, Sundar Pichai, o Android está presente em mais de dois bilhões (!) de equipamentos.

Particularmente notei duas ausências entre as novidades. Não se falou nada sobre o navegador Chrome nem sobre o Chrome OS. Talvez Pichai tenha decidido falar apenas do que vem dando certo e/ou é popular, sem se preocupar em responder de qualquer maneira ao Windows 10 S. Fica para 2018. Ok, até aqui, nada muito empolgante, amigos do Manual?

Mesmo sem um WannaCry para atrapalhar como foi com a Build 2017, o evento da concorrente Microsoft, o Google I/O prosseguia normal, sem nenhum anúncio realmente destacável. Poderíamos apostar que seria assim até seu término, não fosse por um anúncio que arrancou gritos eufóricos da plateia: Kotlin.

Kotlin, a solução contra a Oracle

Kotlin é o nome de uma linguagem de programação semelhante à Java e que foi criada pela empresa russa Jetbrains . E por que esse foi o grande anúncio do I/O? Por uma razão simples, pequeno gafanhoto: dinheiro.

Vamos voltar um pouco na história: o que você estava fazendo quatro anos e meio atrás? Aposto que qualquer coisa, menos acompanhado o evento no qual Hadi Harari anunciou a Kotlin. Tubo bem, pois o vice-presidente que advoga a favor dos desenvolvedores (VP of Developer Advocacy) da JetBrains falou sobre a então nova linguagem de programação de código aberto para uma plateia de sete pessoas em um salão no qual cabiam novecentas. Logo, não foi apenas você que perdeu o evento. Corta para 2007 e lá está novamente Harari em um palco, mas dessa vez no Google I/O, com uma empolgada plateia composta por centenas de jornalistas e desenvolvedores, representando a Kotlin e sua moderna sintaxe, agora suportada pelo Android Studio 3.

Considerando essa curta demonstração de Harari, na qual ele consegue fazer em poucas linhas da Kotlin o mesmo trabalho que em Java exigiria cerca de trinta linhas de código (apenas para armazenar e tornar editáveis alguns dados que em Java usam muitos getters e setters), podemos dizer que a Kotlin de fato é um avanço para os desenvolvedores – ainda que não seja uma unanimidade.

Apesar da euforia da plateia com o anúncio, há quem tenha se frustrado um pouco com a escolha da Kotlin, por considerar que há opções ainda melhores que a solução da JetBrains, como as linguagens Scala, Idris e Dart — esta última, segundo consta em seu site, é a linguagem usada pela própria Google para desenvolver o próximo AdWords. Nesse sentido, vale lembrar que o Android Studio — Android Studio é um ambiente de desenvolvimento integrado (IDE) para desenvolver para a plataforma Android — suporta outras linguagens além da Kotlin.

Talvez a escolha da criação da JetBrains esteja ligada aos outros produtos da empresa russa, como os conhecidos editores de código PHPStorm, WebStorm, PyCharm e IntelliJ IDEA, baseados na plataforma IntelliJ – assim como o próprio Android Studio. No entanto, há o fato, discretamente citado no I/O 2017, de que a Kotlin pretende ser uma ferramenta de desenvolvimento multiplataforma, contemplando inclusive o Windows. Mesmo que exista algum debate na comunidade de desenvolvedores Android a respeito desse tópico, não deixa de ser um segundo grande avanço do sistema – o primeiro certamente foi a introdução do Material Design.

A adoção da Kotlin deve facilitar muito o trabalho dos desenvolvedores, não apenas por sua capacidade de sintetizar trabalhos que em Java requerem longos códigos, mas também por sua interoperabilidade com classes e bibliotecas em Java. Em vários momentos da demonstração de Harari fica claro que a Kotlin é uma versão melhorada da linguagem Java. Os códigos inclusive podem ser escritos em conjunto uns com os outros, de modo que todo o trabalho até agora feito em Java pode ser convertido aos poucos para Kotlin, sem prejuízo para o usuário final. Inclusive, já existem apps na Play Store escritos parcial ou totalmente em Kotlin, como o Lucidchart, escrito 40% em Kotlin e 60% em Scala, e o Material Audiobook Player.

O segredo da compatibilidade da Kotlin está no suporte a essa linguagem na JVM (sigla em inglês para Máquina virtual Java) usada pelo Android para rodar apps, que consegue trabalhar com outras linguagens além Java. Sem a JVM — programa que carrega e executa os aplicativos Java, convertendo os bytecodes em código executável de máquina–, o Android não rodaria Java, e sem a linguagem hoje da Oracle não existiriam aplicativos! Ops, toquei na ferida.

A Kotlin tem suas qualidades e veio para fazer pelo desenvolvimento para Android o mesmo que o Swift fez para o iOS – e de uma forma bem mais fácil inclusive, já que Java e Kotlin são bem semelhantes, ao contrário do que ocorre com Swift e Objective-C. Inclusive, a transição do Objective-C para o Swift ainda não foi concluída e tem sido realizada com parcimônia. Deixemos essa história para outro artigo.

Voltando à adoção da Kotlin, não seja ingênuo de pensar que tudo fica apenas na alçada técnica. Quando a Google resolveu colocar uma JVM no Android para rodar apps, lá no início da sua criação, o alvo era bem claro: desenvolvedores Java. Essa linguagem, criada pela Sun Microsystems nos anos 1990, era e ainda é usada para desenvolver aplicações para muitos dispositivos.

Bilhões.

Controles remoto, micro-ondas, televisores, aparelhos de DVD, de Blu-Ray, de home theater, máquinas de lavar, ar-condicionado, impressoras, mouse, teclado, rádios, painéis de carros, telefones fixos, celulares antigos (feature/dumb phones) e uma infinidade de outros equipamentos eletrônicos se valem diariamente das amplas capacidades da linguagem Java para executar todo tipo de operação e programa. Uma pequena parte da sua vida tem sido gerenciada em Java, e você nem sabia disso — admita.

Com tanta demanda vindo de todo tipo de fabricante de eletrônicos, somente uma enorme e consolidada comunidade de desenvolvedores poderia dar conta do recado. E foi pensando nessa legião de programadores que a Google criou “do zero” a Dalvik, uma ferramenta de compatibilidade própria para rodar no Android aplicações em Java.

E com tantos desenvolvedores usando a criação da Sun Microsystems, era questão de tempo para que alguém tentasse adquirir a empresa, fato que se concretizou em 2009 quando a Oracle a comprou. E a gigante de software não demorou para logo em seguida processar a Google por uso não autorizado de propriedade intelectual: o primeiro litígio foi registrado em 2010, por infrações no uso de patentes de 37 API’s no desenvolvimento da Dalvik.

Desde então, vários capítulos dessa longa novela já se passaram, conforme previam especialistas da época, sem que um veredito final e inapelável tenha sido anunciado. Desde então, os júris têm se dividido sobre o fair use (uso justo) do emprego das citadas API’s em Java que a Google faz.

Num primeiro julgamento, a Google foi considerada culpada por uso indevido de tais API’s, mas o juiz William Alsup concluiu que API’s não são contempladas pelas leis de proteção de direito de uso (o famoso copyright ©) dos Estados Unidos. A Oracle recorreu à corte de apelações e conseguiu reverter a decisão de Alsup, o que levou a Google até a Suprema Corte, que se recusou em julgar o caso. O processo está novamente na corte de Alsup, para o julgamento do fair use – ou não – das API’s. Uma verdadeira novela, vai dizer.

Independente de qualquer intenção minimamente leviana da Oracle em processar a Google em razão do sucesso obtido pelo Android já em 2010, a verdade é que a gigante de buscas parece admitir internamente que infringiu mesmo as patentes. Um advogado especialista em danos por uso indevido de propriedade intelectual foi contratado pela Google para calcular em quanto a Oracle foi prejudicada pelo uso das API’s na JVM no Android. Ou, talvez, a Google esteja apenas tentando calcular o quanto terá que pagar à Oracle, já que há grandes chances da atual proprietária do Java ganhar a causa. A verdade é que o processo ainda parece estar longe de ter um fim… Uma possível derrota da Google nos tribunais poderia render à Oracle uma fortuna inimaginável, já que a empresa reclama dos U$ 8,8 bilhões que a Google lucrou com o Android até meados de 2016. Publicamente, a Google nega qualquer irregularidade, batendo na tecla do fair use, e afirmando — ainda com razão — que Android é bem mais do que apenas 37 API’s.

Tamanhas cifras mostram porque a Google resolveu apostar em outra linguagem, além da questão técnica. A Kotlin talvez não seja tecnicamente a melhor escolha e não era a primeira opção — houve, até, rumores de que o Swift poderia ser usado como linguagem oficial. Independente de quanto a Google possa perder no processo movido pela Oracle, o futuro do desenvolvimento para Android – e quem sabe até para o Fuchsia – está garantido com a Kotlin.

*Ricardo “Jack” S. Santos é designer gráfico, estudante de programação e leitor do Manual do Usuário. 

Cadê os anúncios?

O Manual do Usuário é um projeto independente, que se propõe crítico e que respeita a sua privacidade — não há scripts de monitoramento ou publicidade programática neste site. Tudo isso sem fechar o conteúdo para pagantes. Essas características são vitais para o bom jornalismo que se tenta fazer aqui.

A viabilidade do negócio depende de algumas frentes de receita, todas calcadas na transparência e no respeito absoluto a você, leitor(a). A mais importante é a do financiamento coletivo, em que leitores interessados sustentam diretamente a operação. A assinatura custa a partir de R$ 5 por mês — ou R$ 9/mês para receber recompensas exclusivas:

Assine no Catarse

Newsletter

Toda sexta-feira, um resumo do noticiário de tecnologia, indicações de leitura e curiosidades direto no seu e-mail, grátis:


Nas redes sociais, notícias o dia todo:
Twitter // Telegram