goncin@wordpress.com:~$ _

Linux, programação e toda sorte de nerdices

Arquivos Mensais: outubro 2011

Java: a hora e a vez do OpenJDK

Antes de mais nada, corrijam-me se eu estiver errado. Não sou desenvolvedor Java, sou antes um usuário da plataforma.

Com a aquisição da Sun Microsystems pela Oracle, em janeiro de 2010, o rumo do desenvolvimento da plataforma Java, e de outros projetos open source antes patrocinados pela empresa adquirida, foi radicalmente alterado. Em linhas gerais, pode-se dizer que a Oracle subiu o tom com as comunidades e ecossistemas formados em torno daqueles projetos, levando-os a redefinir sua forma de colaboração. O fato mais notável decorrente dessa nova conjuntura, sem dúvidas, foi o surgimento da The Document Foundation, criada especificamente para gerir o LibreOffice, um fork do OpenOffice.org. A comunidade da suíte de escritório concluiu que não poderia continuar nos termos que a Oracle passou a impor, e preferiu iniciar um novo projeto, baseado no primeiro, mas sem esperar nada de Larry Ellison – nem patrocínio, muito menos ordens.

Em relação ao Java, a postura da Oracle foi ainda mais pedante. Acreditando que números de alta cifra (milhões de desenvolvedores e bilhões de dispositivos, segundo ela mesma) lhe conferem autoridade para tanto, a empresa arrogou para si – e somente para si – o direito de distribuir sua versão “proprietária” do Java, tanto o SDK (para desenvolvimento) o JRE (para executar as aplicações). Com isso, as inúmeras distribuições Linux ficam proibidas de distribuir o Java da Sun Oracle.

Num momento em que até a Microsoft, a partir do Windows 8, está adotando o conceito de app store no sistema operacional, é uma contratendência e tanto. A ideia, já adotada há anos pelas distros Linux e mais recentemente pelas plataformas móveis, é que o usuário não tenha que “correr atrás” das aplicações de que precisa, visitando inúmeros sites e fazendo downloads nem sempre confiáveis. Com as centrais de aplicativos, a instalação da solução está a um clique (ou dois, ou três…), dentro do próprio ambiente do SO. Nesse contexto, a Oracle obrigará quem precisar de sua versão do Java a visitar o respectivo site para baixá-lo. No mundo Linux, suspeito, só agirá assim quem realmente necessitar do Java “proprietário”.

A partir dessa (controversa) decisão, as distros passarão a entregar somente o OpenJDK/OpenJRE, a versão do Java 100% livre. O que muda com isso? Para o usuário médio, quase nada. O OpenJDK parece estar maduro o suficiente para a maioria dos usos. Desenvolvo em PHP utilizando Netbeans como IDE, e posso afirmar que o ambiente integrado funciona tão bem com o OpenJRE quanto era com o JRE proprietário.

Vale lembrar que a versão 7 da plataforma Java também já está disponível em implementação open source, e será padrão na próxima versão do Ubuntu, a Oneiric Ocelot (11.10), que será disponibilizada ainda este mês. Para aqueles que não quiserem ou não puderem esperar, é possível instalar o OpenJDK/OpenJRE no Natty utilizando um PPA, assim:

sudo add-apt-repository ppa:dlecan/openjdk
sudo apt-get update
sudo apt-get install openjdk-7-jdk

(No último comando, basta substituir openjdk-7-jre para instalar somente o JRE. Para instalar o código fonte, acrescente openjdk-7-source.)

Mas, por óbvio, nada é perfeito. Há aplicações (ou deveria eu escrever “internet banking de bancos brasileiros”?) que foram feitos com e somente para para o Java “proprietário”. Quem projeta e desenvolve essas soluções que ignoram o OpenJDK deve, agora, rever suas concepções. A alegação de suportar somente o Java da Oracle, no mais das vezes, é calcada nos termos “segurança” e “homologação”. Pode-se contra-argumentar que a Oracle, sentada sobre os impressionantes números que já citei, sente-se confortável o bastante para relegar as falhas de segurança da plataforma Java a segundo plano, não se empenhando em saná-las. Tanto é assim que a Fundação Mozilla está considerando seriamente desativar o plugin do Java nas próximas versões do Firefox. Isso sem mencionar as frequentes críticas que são feitas à arquitetura da plataforma, às quais a empresa parece não querer oferecer uma resposta à altura.

Por tudo isso, creio que poderemos ver, num médio prazo, o futuro do Java sendo decidido exclusivamente pela comunidade Java, num cisma semelhante àquele que deu origem à The Document Foundation. A chave para que isso aconteça é a adoção maciça do OpenJDK, entregue pelas distribuições Linux e, quiçá, pelos próprios desenvolvedores Java, em conjunto (bundled) com suas aplicações. Só assim, vendo diminuída sua base de usuários, a Oracle venha a sair de sua zona de conforto e mude de atitude.

Anúncios

Ubuntu Mono: uma nova e ótima fonte para programar

Na última semana, os designers do Ubuntu atualizaram a família de fontes homônima, atualizando a variante monoespaçada. Essa variante, que já existia nas versões anteriores do pacote, foi bastante aperfeiçoada, tendo sido feito o trabalho de hinting, essencial para que a fonte seja legível em tamanhos menores e que ela não pareça “embaçada” na tela. Eis como ficou:

Ubuntu Mono, 24pt

Ubuntu Mono, 24pt

Ela tem caracterísiticas interessantes para os programadores, como o zero ponteado (para ser distinto do “O” maiúsculo), e é bastante compacta, de modo que a tela exibe mais linhas de código, comparada com outras fontes.

Ubuntu Mono no Netbeans

Ubuntu Mono no Netbeans

Ubuntu Mono no GEdit

Ubuntu Mono no GEdit

Certamente, a variante monoespaçada virá como padrão na próxima versão do Ubuntu, a Oneiric Ocelot (11.10), que sairá do forno ainda esse mês. Para quem não aguenta esperar e usa Ubuntu ou distros derivadas pode instalar a nova versão da Ubuntu Mono mediante um PPA:

sudo add-apt-repository ppa:webupd8team/ubuntu-font-family
sudo apt-get update
sudo apt-get install ttf-ubuntu-font-family

Já aqueles que usam outra distribuição (ou Windows 😦 , ou Mac 🙂 ) pode baixar as fontes num pacote ZIP aqui.

Aproveitem! 🙂

Google Chrome vs. Chromium: onde estão as diferenças

Creio que muitos de nós, usuários do Linux, já tivemos a dúvida entre optar pelo Google Chrome ou pelo Chromium. Em termos práticos, não há realmente muita diferença entre eles, mas, se existem dois “sabores”, é porque há distinções. Movido por minha curiosidade, fui pesquisar essa questão e acabei me deparando com um quadro comparativo no wiki do projeto Chromium, o qual tomei a liberdade de traduzir e comentar logo abaixo.

Google Chrome Chromium Observações
Logotipo Colorido Tons de azul
Relatório de falhas Sim, se habilitado Nenhum Por favor, inclua rastreamento de erros com símbolos em ao relatar bugs, caso não tenha um relatório de falha
Métricas de uso Sim, se habilitado Não
Tags de vídeo e áudio AAC, MP3, Vorbis e Theora Vorbis e Theora por padrão Varia de acordo com as distribuições: no Ubuntu, o Chromium vem com os dois formatos; no Fedora, o suporte é completamente removido
Adobe Flash Plugin personalizado (não-livre) incluído no pacote Suporta plugins NPAPI, inclusive o fornecido pela Adobe
Suporte a PDF Plugin personalizado (não-livre) incluído no pacote Baixa e exibe documentos usando o visualizador PDF do sistema O plugin de PDF do Chrome usa código não-livre de terceiros; não existe nenhum plugin de PDF em software livre que suporte todos os recursos que gostaríamos (como o preenchimento de formulários). 😦
Código Testado pelos desenvolvedores Modificado pelas distribuições Modificações adicionais pelas distribuições têm sido uma contínua fonte de problemas para os usuários; ao relatar bugs, por favor inclua infomações sobre a distribuição
Isolamento de processos (sandbox) Sempre habilitado Pode estar desabilitado, dependendo do distribuidor Ubuntu e Gentoo: sempre habilitado; alguns pacotes não oficiais do Slackware o removem!
Empacotamento Um único deb/rpm Depende da distribuição, às vezes dividido em diversas partes (dados de locale, inspetor, v8) O Ubuntu disponibiliza l10n e o inspetor (opcional) e 2 conjuntos de codecs (1 obrigatório), seja para as compilações noturnas, para o canal de desenvolvimento ou para o canal beta, mas com os mesmos nomes de pacotes em cada canal
Perfil Armazenado em ~/.config/google-chrome Armazenado em ~/.config/chromium
Cache Armazenado em ~/.cache/google-chrome Armazenado ~/.cache/chromium
Garantia de qualidade Novas versões são testadas antes de serem distribuídas aos usuários Às vezes, compilações noturnas não testadas Depende da distribuição: por exemplo, o Chromium do Ubuntu mantém os mesmos números de versão do Google Chrome, mas outras distribuições às vezes disponibilizam compilações “noturnas” instáveis

É notório que o quadro acima, apesar de pertencer à documentação do Chromium, foi escrito por alguém ligado ao Google. Além de destacar as vantagens do Chrome sobre seu irmão 100% livre, a comparação não deixa de fazer certo terrorismo quanto ao código “não testado” e “modificado pelas distribuições” do Chromium. Isso sem falar no ícone “azul sem graça” do Chromium 😛 .

Ideologias e mercadologias à parte, o Chrome é a escolha óbvia de quem prefere uma experiência de navegação na Internet out of the box, sem se preocupar com codecs, plugins e outros detalhes. Por outro lado, o Chromium é mais adequado àqueles que gostam de ter um controle maior sobre o que instalam, e aos ciosos de terem somente software livre em suas máquinas.

Concluindo, a escolha é sua 😉 .

%d blogueiros gostam disto: