Este é um post disponível para assinantes MVPArtigo Java Magazine 65 - Java: Uma perspectiva
Artigo da Revista Java Magazine Edição 63.

Java: Uma perspectiva
A natureza da plataforma Java, hoje e amanhã
Uma profunda investigação das plataformas Java SE e ME, uma visão do seu futuro próximo... e uma porção de curiosidades
De que se trata o artigo:
Exploramos uma diversidade de aspectos da plataforma Java: os motivos do seu sucesso, sua natureza, potenciais de evolução... damos uma olhada em novidades do Java SE 7 e do OpenJDK, investigamos o suporte a novas linguagens, fazemos comparações com a plataforma .NET. Por fim, começamos a especular sobre as plataformas Java FX e Java FX Mobile.
Para que serve:
Quem programa em Java mas é antenado em outras tecnologias, acompanhando o noticiário técnico, pode estar sempre numa grande confusão vendo o grande número de direções nas quais o Java (bem como outras linguagens plataformas) parece seguir. Linguagens dinâmicas, plataformas móveis, Java FX, novos frameworks, paradigmas, competidores (de linguagens nativas às da .NET)... Neste artigo, procuramos jogar alguma luz sobre todo este panorama, focando nas plataformas Java e nas suas evoluções para o futuro próximo.
Na busca por novos temas para escrever, volta e meia me inspiro em eventos relevantes, como as últimas conferências que apresentam novidades de produtos, tecnologias ou pesquisas. Assim, recentemente ‘digeri’ as apresentações da JVM Language Summit, que aconteceu no final de Setembro, no campus da Sun (e tratando não só de Java, mas abrindo espaço para plataformas como .NET e Perl). Embora esta seja uma conferência técnica avançada, dirigida ao pessoal que cria linguagens e VMs, os temas discutidos me pareceram muito relevantes por revelar uma série de avanços e tendências que já vêm sendo “sentidos” pelos desenvolvedores de aplicação. Neste artigo, vamos fazer um mergulho na essência da plataforma Java, do desenvolvimento de software em geral, de hoje e amanhã.
A maior parte do artigo trata das plataformas Java SE / EE ou do Java como um todo. Mas aproveitamos para fazer um “Quick Update” também no Java ME, veja o quadro “O Java FX e o novo Java ME”.
The Feel of Java
Começando pelo título do clássico paper de James Gosling (1997), e aproveitando a polêmica recente das closures do Java SE 7 (ver Edição 62), gostaria de dar minha contribuição do debate sobre a “natureza” ou o “estilo” do Java. Na questão das closures, a reclamação de alguns é que esta nova facilidade não seria compatível com o Java que conhecemos hoje: tornaria a linguagem mais complexa, ou mais funcional, ou de alguma outra forma, diferente da linguagem atual. Em menor proporção, o mesmo bate-boca sempre acompanha qualquer proposta de alteração da linguagem: como decidir quais novas características combinam harmoniosamente com a linguagem (e APIs) existente? Como mensurar o equilíbrio entre o tamanho da linguagem (que em geral, só pode crescer e ficar mais complexa com novas sintaxes) e os benefícios de novos recursos?
Que espécie de linguagem é Java... qual é o seu DNA?

Figura 1. O “quadrante das linguagens” pré-Java, na visão de James Gosling.
Um slide da keynote de James Gosling na JVM Language Summit (Figura 1) complementa esta visão, mostrando o estado de coisas que incomodava os criadores do Java no início dos anos 90. Num extremo, linguagens eficientes, mas de baixo nível como C; do outro, linguagens de scripting produtivas, dinâmicas e modernas, mas com baixo desempenho. Já havia soluções que poderiam combinar o melhor destes dois mundos – mas estas são representadas, no canto superior direito, por “linguagens malucas de pesquisa” que jamais fizeram sucesso no mundo real.
O slide não cita nomes, mas eu apontaria para os suspeitos mais óbvios como Self ou ML: linguagens simultaneamente dinâmicas e avançadas e (pelo menos relativamente) eficientes; porém, muito “malucas” para fazerem sucesso fora do mundo acadêmico, pelo menos na sua época.
Em seguida, Gosling revela o plano do Java de ser um “lobo em pele de cordeiro”: uma sintaxe parecida com C para manter os desenvolvedores confortáveis, e por trás disso, um design baseado em linguagens como “Lisp, Simula, Smalltalk e Mesa... para dar conta do serviço”.
Não é uma idéia original. Desde que o C se tornou a linguagem dominante nos anos 80, vários candidatos à sua sucessão seguiram o mesmo plano, como C++ (também com sucesso) e Objective-C. A diferença é que estas linguagens fizeram muito poucos avanços, pelo menos em características valorizadas por Gosling. Não possuem runtimes dinâmicos, mantendo o modelo de compilação estática. Não são “gerenciadas”, carecendo de typesystems fortes e outras salvaguardas. Não adotam alocação automática (GC), um recurso ainda polêmico na época em que o Java surgiu, mas hoje em dia dado como obrigatório em qualquer linguagem moderna e de nível de abstração acima do C.
Pragmatismo = Desempenho
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Space do autor


0
0
