DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Artigo Java Magazine 54 - A nova versão do Java 6 para aplicações ricas

Editorial publicado pela Java Magazine 54.

Esse artigo faz parte da revista Java Magazine edição 54. Clique aqui para ler todos os artigos desta edição 

Java Update N

A nova versão do Java 6 para aplicações ricas

Conheça em detalhes o Java Kernel, Nimbus, QuickStarter, e outras novidades que aperfeiçoarão a plataforma Java SE para clientes ricos

Há poucos assuntos no universo Java tão controversos quanto sua história como plataforma para desktop – ou modernamente, “clientes ricos”. Nascido na forma de Applets para browsers, o Java rapidamente se deslocou para os datacenters com tecnologias como Servlets e EJB, e até mesmo para dispositivos como celulares, praticamente tomando conta do mercado em vários segmentos. Menos o desktop: neste caso, aparentemente o Java só definhou, pelo menos para os mais críticos.

A tecnologia do Java para desktop nunca ficou parada. Nesta coluna já examinamos melhorias na Swing, no desempenho da JVM, na funcionalidade do Java Web Start e outros fatores. Mas estas melhorias têm sido insuficientes. O Java obteve um sucesso apenas modesto para aplicações desktop em geral – embora seja bastante usado em alguns segmentos, como projetos que realmente precisam de GUIs ricas e portáveis entre várias plataformas, ou front-ends para aplicações corporativas. Mais grave é a situação do Java como plataforma para GUIs distribuídas via web: as applets foram varridas do mapa e não foram substituídas em massa por aplicações Swing, mas sim, por outras opções como Flash ou mesmo a tecnologia HTML renovada pelo AJAX.

A partir da JavaOne 2007, a Sun anunciou um contra-ataque: vários aperfeiçoamentos no JRE, que viriam resolver de um só golpe uma boa lista de reclamações históricas dos desenvolvedores que usam Java, especialmente com a Swing, para criar aplicações desktop. Esta promessa se tornou realidade, já estando disponíveis builds preliminares do “Java SE 6 Update N”. O release final estará pronto em agosto de 2008, portanto, este é um bom momento para começarmos a examinar esta atualização, que pode ser uma nova injeção de ânimo para o Java em um front que tem sido seu ponto fraco.

Problemas do Java para desktop

Começaremos fazendo uma revisão das dificuldades do Java no desktop, não só reclamando de tudo que está errado, mas procurando entender por que está errado. Esta seção nos ajudará a julgar se as melhorias do Update N resolvem o problema e também nos dará uma visão mais aprofundada dos problemas, não só do Java, mas também de outras plataformas modernas. (Em especial, a plataforma Microsoft .NET, que enfrenta muitos dos mesmos problemas discutidos aqui.)

Tempo de Carregamento

Um dos problemas mais perceptíveis de aplicações Java complexas é o tempo de inicialização. O administrador de um servidor de e-commerce não se incomoda em esperar um minuto ou dois para o boot de um cluster de servidor de aplicações paquidérmico. Mas para o usuário final de uma aplicação desktop, é irritante esperar até mesmo cinco segundos para carregar qualquer aplicação.

O tempo de carga é resultado da arquitetura de Virtual Machine do Java. Em uma aplicação nativa, os arquivos binários (como .exe e .dll no Windows) são estruturados de uma forma extremamente eficiente para determinada plataforma. Tanto o código quanto os dados são específicos para certa arquitetura de hardware & SO, e praticamente só precisam ser lidos do disco para a RAM[1]. Já os arquivos .class portáveis do Java precisam ser lidos, convertidos, e organizados (o layout em memória pode ser muito diferente do usado nestes arquivos). E depois, cada método será ou lentamente interpretado, ou compilado para código nativo – uma operação custosa, apesar de toda a avançada tecnologia de compiladores JIT dinâmicos como o HotSpot.

Alguns desenvolvedores se surpreendem ao ver que linguagens com runtimes menos sofisticados, como Perl, Python ou Ruby, não têm nenhum problema com tempo de inicialização. Mas isso ocorre devido à falta de desempenho destas linguagens, tipicamente interpretadas. É uma troca: o seu código Ruby pode começar a rodar imediatamente, mas tente escrever qualquer algoritmo complexo e você verá que o Java roda dezenas ou até centenas de vezes mais rápido. Se o tempo de inicialização é muito mais importante para você, experimente usar java –Xint, que executa a JVM em modo puramente interpretado. Para utilitários de execução breve, isso elimina o custo da compilação JIT e pode até melhorar o desempenho total.

Tamanho do JRE

O download do JRE pode ser um problema para quem distribui aplicações via web. O JRE 6.0 Update 3, por exemplo, tem quase 14Mb na versão internacionalizada para Windows. É quase 10 vezes maior que os 1,5Mb do Flash 9. Sem falar em HTML/AJAX, que não exige download algum.

Podemos dizer em defesa do Java que seu runtime não é grande demais: pelo contrário, é pequeno, para tudo que ele faz. Não há prova maior disso que compará-lo ao redistribuível do .NET 2.0, que mesmo evitando os custos da portabilidade, com seus 22Mb é quase 60% maior que o JRE (parte da diferença é justificada por algumas capacidades server-side, como ASP.NET).

"



ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
Yara M. H. Senger

É formada em Ciências da Computação na USP em São Carlos, especialista em desenvolvimento web; possui as certificações Sun : SCJA (Associate), SCJP (Programmer), e SCWCD (Web Component Developer) e CSM (Scrum Master).


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
1   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03