Coluna do Alexandre COLUNA Java não é lento O novo colunista da Linux Magazine explica com total propriedade por que a ideia de que Java é uma linguagem lenta não procede. T enho programado por muito tempo usando linguagens como C e Assembly, principalmente em segmentos nos quais tais escolhas são fundamentais, como o kernel e drivers de dispositivos, e tenho, de algum tempo para cá, me aprofundado muito em Java. Algo que não acredito ser tão simples é julgar uma tecnologia sem conhecê-la bem, o que, infelizmente, tenho percebido em alguns grupos de programadores. Não é incomum ouvir a afirmação de que Java é lento. Tenha certeza: não, não é. As variáveis de desenvolvimento ignoradas pelas pessoas que fazem essa afirmação são as mais diversas, sendo factível questionar sempre os mesmos pontos para o programador: ➧V ocê usa a versão mais recente da JVM? ➧V ocê faz uso da programação multithread de maneira eficiente? ➧ Você está usando os frameworks (EJB, JSF, Struts, Hibernate) apropriadamente, evitando suas armadilhas? ➧V ocê conhece os detalhes das evoluções do Java 6, como melhorias no gerenciamento de locks, evolução na alocação de registradores e o mecanismo de Escape Analysis? ➧V ocê já tentou fazer tuning do sistema operacional anteriormente ao processo de ajustar a aplicação (OpenSolaris, por exemplo)? ➧V ocê já experimentou fazer ajustes de parâmetros no stack, heap e no Garbage Collector? ➧V ocê está levando em conta o tipo de arquitetura de processador em que o código está sendo executado? Programar em processadores padrão (com somente um núcleo) é uma coisa, programar em processadores multicore (ou ainda multithread) é outra bem diferente. ➧Q ual servidor de aplicação você está usando para fornecer e facilitar a infraestrutura de suas aplicações? Não adianta preocupar-se com a aplicação se o servidor não ajuda. 18 É fácil verificar que a geração anterior de linguagens, como Visual Basic e Delphi, acostumaram muito mal os aprendizes, pois, em virtude do uso de interfaces IDE muito bem concebidas, muitos esqueceram de pensar na melhor forma de programar e resolver problemas, levando em conta a manutenção, a reusabilidade futura de trechos de código e também a escalabilidade da aplicação. Toda linguagem é submetida a melhorias, o que também aconteceu (e ainda ocorre) com o Java. Nas primeiras versões da JVM, realmente faltavam recursos fundamentais como o JIT, e isso fazia com que a JVM apresentasse péssima performance. Contudo, a Sun resolveu todos estes inconvenientes e tem se esforçado para melhorar todos os pontos de performance a cada nova versão do Java. Quando ainda me deparo com questionamentos sobre produtividade e adequação ao mercado, acredito nem precisar comentar sobre a difusão do Java no mercado, sendo que os maiores usos dessa linguagem encontram-se no lado servidor (imbatível) e em dispositivos portáteis como celulares, PDAs etc. Para se ter uma pequena ideia de quanto a linguagem Java é importante (e confiável), ela está presente em uma das três camadas principais utilizadas para construir o middleware Ginga (em específico na camada Ginga-J), usado no sistema de televisão digital brasileiro. O Java é uma escolha espetacular e completa, talvez a melhor, entretanto serão os desafios do seu dia a dia que guiarão suas decisões, pois o fato é que a melhor linguagem é aquela que atende sua empresa da melhor maneira possível em determinado momento, e realmente existem excelentes opções, mas lembre-se: o mundo é dos lobos, não das ovelhas. n Alexandre Borges é Especialista Sênior em Solaris, OpenSolaris e Linux. Trabalha com desenvolvimento, segurança, administração e performance desses sistemas operacionais, atuando como instrutor e consultor. É pesquisador de novas tecnologias e assuntos relacionados ao kernel. http://www.linuxmagazine.com.br