A aquisição da Sun pela Oracle fez com que as pessoas se preocupassem com o futuro do Java. Se a Oracle pode continuar a manter a abertura do Java, e diante do surgimento de uma série de linguagens leves, como Ruby, Python ou PHP. , se o Java pode continuar a manter sua popularidade no desenvolvimento na área?
Há 14 anos, quando um gênio do marketing da Sun mudou o nome de uma linguagem experimental multiplataforma de Oak, que simboliza solidez, para Java, que é cheio de fragrâncias, ele pode não ter pensado que essa linguagem teria potencial para se tornar uma linguagem popular. Na verdade, se a Sun quiser agora mudar o nome desta linguagem para refletir com precisão a sua posição na indústria de computadores, parece que Oak é mais vívido. Hoje, embora a linguagem Java não esteja florescendo em todos os lugares, ela apareceu em muitas ocasiões e dispositivos e goza da reputação de operação estável e código Java bem projetado, pode não dominar todos os computadores ou plataformas, mas está perto de; tornar-se Uma linguagem universal está ao nosso alcance.
James Gosling, o pai do Java, destacou isso quando subiu ao palco para falar na conferência OpenWorld organizada pela Oracle. Ele exibiu uma apresentação de slides JavaFX com uma ladainha de estatísticas: mais de 850 milhões de desktops habilitados para Java e cerca de 10 bilhões de dispositivos habilitados para Java. Na verdade, as máquinas virtuais Java são comuns em dispositivos eletrônicos: leitores de e-books Kindle, reprodutores de discos Blu-ray e smartphones (incluindo menos smartphones), etc. Os aplicativos para iPhone são executados em milhares de iPhones, mas o Java está incorporado em 2,6 bilhões de telefones, desde telefones não tão inteligentes que você pode comprar por US$ 20 até os telefones BlackBerry e Android de última geração. Nada está incluído.
Convidar Gosling para falar na conferência OpenWorld é apenas uma das maneiras pelas quais o chefe da Oracle, Larry Ellison, espera garantir aos engenheiros que a linguagem tem um futuro brilhante. A Oracle quer adquirir a Sun Microsystems, mas ainda tem de esperar que os reguladores europeus aprovem a decisão. O governo dos EUA deu luz verde, mas as autoridades do governo europeu ainda não concordaram com o acordo devido a preocupações sobre o desenvolvimento do MySQL. Tanto Gosling quanto o presidente da Sun, McNealy, disseram que assim que a fusão e aquisição forem concluídas, Java receberá mais atenção e recursos da Oracle do que antes.
No curto prazo, o sinal transmitido por Ellison pode não ser muito importante, porque agora que Java se tornou um clima, não é fácil mudar a direção do desenvolvimento. É claro que algumas pessoas acreditam que o modelo de negócios da Oracle é tão diferente que inevitavelmente fará grandes mudanças em todas as partes do ecossistema Java. No geral, para todos os motivos pelos quais o Java pode mudar, há motivos igualmente bons pelos quais a Oracle pode querer manter o status quo.
Os aplicativos de nível empresarial são o principal campo de batalha
Java encontrou seu lugar pela primeira vez no lado do servidor, e esta área ainda é o principal local onde se espera que as máquinas virtuais Java sejam vistas no futuro. Para todos os produtos da Oracle, os grandes servidores também são o lar principal, por isso faz sentido que esse par apareça. Embora os programadores PHP prefiram o MySQL, para aplicações empresariais com uso intensivo de dados, muitos dos projetos mais críticos ainda usam Java envolto em arquitetura baseada em Oracle, e esta situação não deve mudar tão cedo.
Sun disse que o servidor de aplicativos GlassFish é baixado mais de 1 milhão de vezes por mês, e plataformas mais antigas, como o Tomcat, ainda são comuns. Como a tecnologia é altamente conceituada, rápida e verdadeiramente multiplataforma, grandes empresas (como bancos e seguradoras) têm alta demanda por desenvolvedores Java.
No entanto, Java não é mais considerada a sintaxe mais recente e interessante. Alguns programadores reclamaram da estrutura das linguagens de tipo estaticamente e mudaram para linguagens mais novas ou mais simples, como Ruby, Python ou PHP. Muitas das aplicações web mais simples de hoje são desenvolvidas nessas linguagens porque o código que elas escrevem é fácil de modificar e pode ser prototipado rapidamente. No entanto, essas novas linguagens fáceis de usar geralmente dependem de Java: os desenvolvedores Ruby costumam usar JRuby (uma linguagem Ruby baseada em Java) porque a máquina virtual Java pode lidar melhor com tarefas pesadas e liberar vários threads. Jython (linguagem Python baseada em Java) é semelhante.
Java agora está incorporando algumas das mais recentes técnicas de programação para conter a intrusão dessas novas linguagens. Grails imita claramente muitos dos padrões declarativos simples do Ruby on Rails; a estrutura Grails combina plug-ins de script como Groovy com um middleware de banco de dados chamado Hibernate. O próprio Groovy adiciona inúmeras opções dinâmicas para facilitar a interpretação do código e pode ser diretamente vinculado a qualquer parte da Java Application Programming Interface (API). Não há necessidade nem de pensar em Python ou Ruby, porque o Groovy, com uma sintaxe moderna e elegante, dá aos programadores Java acesso a uma variedade aparentemente infinita de vastas bibliotecas e a uma máquina virtual subjacente sólida.
Vá para dispositivos móveis
O número de telefones Java (estimado em cerca de 2,6 bilhões) é impressionante, já que muitos dos telefones mais simples do mercado executam Java Platform Micro Edition (Java ME). Isso permite que empresas como Wattpad.com construam plataformas de leitura de documentos que funcionem perfeitamente em todo o terceiro mundo.
No entanto, o número de smartphones rodando Java é relativamente pequeno. O enorme sucesso do iPhone inspirou muitas pessoas a reaprender o Objective C. Essa linguagem permite aos programadores melhorar seu controle sobre alguns problemas do sistema, como o uso de memória. Java esconde a maioria dos problemas subjacentes dos programadores, o que é uma vantagem, mas a premissa é que não há necessidade de gerenciar recursos como memória, pois se houver um pequeno erro na coleta de lixo, alguns jogos não rodarão. Infelizmente, como a duração da bateria é um fator tão importante, os smartphones exigem um gerenciamento de recursos mais rigoroso do que quase qualquer outra plataforma.
Ainda assim, os programadores Java estão em demanda, já que o BlackBerry continua a usar Java ME em sua nova plataforma: adiciona suporte para telas sensíveis ao toque e sensores de orientação aos perfis do telefone. Existem fatores imprevisíveis no Android. Desde que o Google abriu o uso do Android, muitos fabricantes de telefones celulares aderiram ao movimento do Android.
O Android do Google é construído no Apache Harmony de código aberto e suas classes, em vez do Java Development Kit (JDK) desenvolvido pela Sun e do Java ME. Para alguém que escreve código no Eclipse, eles parecerão quase idênticos. Em muitos outros casos, isso não importará porque o desenvolvimento Android usa muitos formulários XML, mas se as duas estruturas de desenvolvimento se afastarem, essa divisão poderá se tornar um grande problema.
Recupere o terreno da área de trabalho
A maioria das pessoas ainda pensa que o Java nunca teve sucesso no desktop e isso é passado. Hoje, o Java está penetrando lenta mas continuamente em todos os cantos dos sistemas operacionais modernos. Embora os aplicativos padrão escritos em Swing continuem sofrendo ao tentar atingir as partes mais básicas de cada plataforma, com plataformas e estruturas de desenvolvimento mais recentes, como JavaFX e Web Start, é possível implantar software de maneira eficaz pela Web. A plataforma nativa lida com todo o cache de Java Archives (JARs). Ao clicar em um link, às vezes seguido de alguns cliques em uma caixa de diálogo de concessão de permissão, o software pode ser instalado e atualizado e executado a qualquer momento.
JavaFX ainda é uma verdadeira incógnita. Os recursos gráficos agora são competitivos com o Flash da Adobe; o mecanismo de computação suporta a maior parte da API Java, mas a linguagem é um estranho híbrido de Java genuíno, JavaScript e outras linguagens de marcação. O código é mais simples que o Java normal, então os programadores Java precisam aprender coisas novas. No entanto, para uma ferramenta de desktop muito interativa, pode valer a pena aprender a nova aula de animação. O Web Start continua melhorando lentamente a capacidade de implantar software diretamente no desktop por meio do navegador.
Aproveite o campo incorporado
Java também prospera em lugares onde as pessoas menos esperam. Embora os programadores C talvez nunca reconheçam os recursos inteligentes de armazenamento e execução rápida da Java Virtual Machine, o sucesso do Java em não-smartphones, decodificadores, chips incorporados, Kindles e outros dispositivos de baixo consumo de energia mostra: Totalmente capaz de se exibir em aplicativos incorporados. A popularidade do Java também ajuda os programadores a migrar de plataformas grandes para plataformas pequenas. Embora não seja fácil passar do desenvolvimento de aplicativos de nível empresarial para mainframes para o desenvolvimento de pequenos códigos incorporados, o padrão Java torna essa transição muito mais fácil do que muitas outras ferramentas podem.
Os pacotes Java também estão se tornando cada vez menores. Gosling usou poeira para descrever um computador do tamanho de uma moeda compatível com Java. JavaCard, uma máquina virtual e API para pacotes tão pequenos, está prestes a lançar a versão 3.0, uma versão marcante que adicionará recursos de conectividade de rede. Embora esses pequenos pontos ainda não sejam pequenos o suficiente para caber no olho humano, a capacidade de falar diretamente com a Internet os torna muito tentadores.
Os parceiros se separarão?
A maior preocupação para todos os desenvolvedores é: que tipo de conflitos de interesse mudarão se a aquisição da Sun pela Oracle for finalizada? A Oracle cresceu cobrando altas taxas de licenciamento de software, e seu software pode ser executado em qualquer hardware que os clientes queiram comprar. A Sun, por outro lado, geralmente distribui software gratuitamente e depois ganha algum dinheiro com a venda de servidores. Essas estratégias de distribuição podem não mudar imediatamente porque há muita inércia, mas ninguém sabe quais decisões a Oracle tomará no futuro.
Alguns acreditam que o facto de a Oracle não ter cobrado grandes taxas de licença no passado apenas encorajará Ellison a adoptar tácticas semelhantes com a Sun. Talvez a equipe de vendas da Oracle esteja cobiçando esta oportunidade agora: aumentar gradualmente as taxas de licenciamento onde o Java costumava ser gratuito. Para evitar reescrever aplicativos Java Platform Enterprise Edition (Java EE), muitas empresas provavelmente prefeririam pagar US$ 100, US$ 200 ou até US$ 1 milhão por CPU.
Os críticos apontam que a Oracle pode facilmente desenvolver novas versões da máquina virtual Java com diferentes níveis de desempenho para diferentes mercados. As máquinas virtuais de desktop podem permanecer gratuitas, a Oracle pode até pagar fornecedores de computadores para comercializar Java e JavaFX, e as melhorias de desempenho no tratamento de multi-threading extremo podem ter um custo muito alto. Há muitas maneiras de ganhar dinheiro com os usuários, e as taxas de licenciamento costumam ser muito mais baratas: é muito mais caro fazer com que programadores recalcitrantes primeiro aprendam uma nova linguagem e depois reescrevam a base de código.
Mas algumas pessoas pensam que a Oracle pode não adotar esta medida. Uma fonte próxima à Sleepycat, empresa de banco de dados de código aberto adquirida pela Oracle em 2006, disse que a Oracle praticamente dobrou o tamanho de sua equipe técnica, enquanto todos os modelos de licenciamento duplo permanecem intactos. O software ainda vem em formato de licença comercial ou de código aberto. Se a Oracle tratasse o Java como o Sleepycat, as licenças comunitárias e outras opções ainda seriam tão gratuitas e amplamente disponíveis como sempre, e mais engenheiros estariam disponíveis para melhorar o código.
Permanecem questões mais profundas sobre relacionamentos de longo prazo com outros grandes parceiros Java. O Google continua a apoiar o Apache Harmony, um projeto com mais de 1,25 milhão de linhas de código que parece determinado a minar o status da Sun como centro do mundo. A IBM perdeu a guerra de lances pela Sun e agora encontra a rival Oracle mais forte. A IBM projetou as ferramentas de desenvolvimento Eclipse e também pode começar a levar a plataforma Java em outra direção.
Outros parceiros foram mais agressivos. O diretor de tecnologia da SAP, Vishal Sikka, pediu repetidamente à Sun que lançasse o Java Community Process (JCP), concentrando-se no plano proposto pela Oracle em 2007: entregar o controle a uma organização de padrões aberta, independente e neutra em relação ao fornecedor, e a todas as organizações de padrões Os membros participam com base na premissa de oportunidades iguais. Embora a Oracle tenha mantido silêncio sobre os detalhes, é seguro assumir que a empresa recuperará o respeito por algumas das ideias que herdou da Sun.
No entanto, embora outros parceiros possam envolver-se em intimidação, podem considerar a questão do grau, porque todos estão efectivamente contidos uns dos outros, e qualquer comportamento excessivo é susceptível de ser bloqueado, porque todos percebem que uma vez escritos, em todo o lado Vantagens dos conceitos operacionais. Se o código escrito para um telefone Android não puder ser facilmente migrado para um reprodutor Sony Blu-ray ou servidor Glassfish, há uma oportunidade para surgir outra linguagem. Na verdade, várias empresas já estão escrevendo kits de ferramentas que permitem aos usuários executar facilmente software Ruby on Rails ou Python no iPhone.
Além disso, muitas dessas linguagens mais novas podem se tornar concorrentes sérios, e muitas brigas internas apenas as ajudarão a ganhar terreno. Existem dezenas de pacotes de código aberto muito bons e menos conhecidos que geralmente podem ser portados para todas as plataformas com um pouco de conversão por entusiastas dedicados. Por exemplo, Python já é a linguagem principal em alguns campos científicos, e o Google escolheu Python em vez de Java como a primeira linguagem suportada por seu App Engine. Embora a IBM, a Oracle e a Google possam espremer-se mutuamente na corrida pelo domínio, devem reconhecer que todos beneficiam da normalização e não do monopólio. Se alguém se atrever a excluir demais os outros e tentar controlar o Java, outros fornecedores poderão correr para seus concorrentes.
Java também abre uma loja de aplicativos?
O fato de a base de código Java permanecer relativamente coesa e relativamente padronizada gerou especulações sobre como a Sun (e a Oracle, se a fusão for concretizada) poderiam explorar a onipresença do Java para fazer fortuna sem aumentar as taxas de licenciamento e eliminar a pressão sobre todos? E se alguém desenvolvesse uma App Store para todo o ecossistema Java, vendendo widgets escritos em Java, assim como aplicativos para iPhone. Eles poderiam estar em desktops, telefones, reprodutores de Blu-ray ou se pudessem rodar em qualquer outra plataforma usando Java? ?
Recentemente, houve um número considerável de aplicativos para telefones Android, e a Sun também está planejando uma loja Java para que as pessoas possam simplesmente arrastar o aplicativo para a área de trabalho ou apenas escrever um pouco mais de código para adicionar cada aplicativo à área de trabalho combinada. , eles podem ser executados em quase todos os cantos do mundo Java. Ainda assim, lidar com telas e interfaces de usuário muito diferentes pode ser um desafio.
Imagine o quão atraente é esse cenário: um aplicativo escrito por um desenvolvedor roda em um celular Android, ele realiza uma tarefa em sua mesa e, quando chega em casa, roda perfeitamente no Blu-ray player da sala.
Trazer aplicativos Java para pessoas sentadas no sofá é até um pouco inesperado, porque a linguagem Java foi originalmente planejada para ser executada em decodificadores em seus primeiros dias, quando era chamada de Oak. Essa visão dependerá das maiores vantagens da plataforma Java: popularidade e estabilidade entre plataformas. Talvez essas vantagens ajudem o Java a gerar renda contínua para seu inventor.