Revista Do Linux
 


    
EDIÇÃO DO MÊS
 CD do Mês


 Capa
 Entrevista
 Distro
 Redes
 Utilitários
 Software
 Entrevista
 Estudo de Caso 1
 Estudo de Caso 2
 Programação
 Tecnologia
 Sistema
 Desenvolvimento
assinantes
 

Java e Linux

É possível desenvolver aplicativos em Java no Linux e continuar sendo produtivo. Ferramentas não faltam, conheça algumas das opções disponíveis, tanto livres quanto comerciais

No início, o Java e o Linux não eram bons amigos, apesar de serem as duas tecnologias com o maior potencial de revolucionar o mercado de Informática na era Internet. O “dono” do Java, a empresa Sun Microsystems, no fundo via a linguagem, com sua promessa de “Write Once, Run Anywhere”, como a grande chance de ocupar o lugar da Microsoft como dominante monopolista do mercado. Em parte para atingir seus objetivos comerciais e em parte com objetivos mais nobres, como o de evitar a fragmentação da linguagem e destruir assim a sua portabilidade para aplicações do mundo real, a Sun manteve um estrito controle sobre a tecnologia, que era em certo ponto “aberta” mas não livre, e uma política de licenciamento que impediam a sua inclusão em um sistema operacional livre.

Figuras influentes da comunidade, como Linus Torvalds, manifestaram a sua descrença no sucesso da linguagem, enquanto que outros membros da comunidade iniciaram projetos para fornecer implementações alternativas da máquina virtual como o Kaffe e o Japhar. Apesar disso, um grupo de desenvolvedores, após muita persistência e negociação, conseguiu uma licença da Sun para portar a implementação de referência para o Linux, e assim, graças aos esforços dos desenvolvedores de Blackdown.org, surgiram os primeiros JDKs (Java Development Kits) e JREs (Java Run-Time Environment) para o Linux.

A entrada de pesos pesados, como IBM e Oracle, que já apostavam fortemente no Java no mercado Linux, fez com que a Sun fosse forçada a dar suporte formal e prioritário ao sistema, mas ela não deixou de “pisar na bola” quando, ao lançar o J2SE (Java 2 Standard Edition) para o Linux anunciou o produto como resultados de sua parceria com a Inprise (ex e agora novamente Borland), fabricante do JBuilder, um dos IDEs para Java mais populares do mercado. A comunidade reagiu, lembrando que o grupo em Blackdown.org foi o responsável pela maior parte do esforço, e a Sun teve que se retratar publicamente.

Pôr o Java em Linux?

Se eu sou um desenvolvedor Linux, porque deveria me interessar por Java? Afinal, já temos ferramentas de desenvolvimento de primeira linha como o C, Perl, PHP, Kylix, toolkits como o Qt e o GTK+, bancos de dados como o MySQL e o PostgreSQL e uma infinidade de softwares, todos entre os melhores de suas respectivas categorias?

Primeiro, porque o Java, sendo a mais “moderna” das linguagens de programação populares, contém menos “remendos” e mais “features” do que as outras, o que leva à maior produtividade do programador. Em minha humilde opinião, o Java é o conjunto de linguagem de programação e biblioteca de classes mais poderoso disponível no mercado. Mesmo não tendo eclipsado o Windows, o observador atento perceberá que os sistemas corporativos, em sua grande maioria, já são desenvolvidos nesta linguagem.

Segundo, o Java tem uma ampla oferta de ferramentas livres e comerciais de primeira linha, desde IDEs até Servidores de Aplicações, todos compatíveis entre si, ou seja, você realmente pode desenvolver com/para o produto de determinado fornecedor e, quando for conveniente, migrar para outro produto, sem jogar fora meses ou anos de trabalho.

Assim, o Java é uma boa forma de ser mais produtivo no desenvolvimento para o Linux e, ao mesmo tempo, uma boa forma de atender a mercados mais tradicionais sem o esforço de desenvolver várias versões do seu aplicativo.

Existe um ponto onde realmente o Java deixa a desejar: o peso e a lentidão da sua interface gráfica, o Swing, em comparação com os toolkits nativos. Nada que um PC mais rápido não resolva. Mesmo assim, este é um ponto secundário, visto que as empresas preferem a interface web para seus sistemas de informação e, neste caso, o Java é superior a outras alternativas. Entretanto, você pode utilizar o GTK+ com o Java via o Java-GTK+ e, com ele, escrever aplicações gráficas suportando Linux e Windows.

Compiladores e máquinas virtuais

Para desenvolver e executar aplicações escritas em Java, você necessita pelo menos de um Compilador Java e de uma Máquina Virtual Java. Infelizmente, projetos livres como o Kaffe ainda não estão suficientemente maduros para suportar a maioria das aplicações comerciais. Mesmo assim, ainda existem várias escolhas:

  • O porte original de www.blackdown.org continua evoluindo e sendo atualizado. Você pode pegar a sua última versão e utilizar como, por exemplo, Java Plug-In para o Netscape Navigator e para o Mozilla.
  • O porte da IBM, é talvez a melhor implementação do Java para todas as plataformas que a IBM suporta e, geralmente, é o vencedor em benchmarks da indústria. O porte para Linux é um dos melhores, e diversos desenvolvedores recomendam que você o utilize.
  • A Sun, fornece um porte “oficial” para Linux em sincronia com as versões para Windows e Solaris, desde o lançamento do Java 2 Release 1.3 (JDK 1.3), e já tem um beta do JDK 1.4 para os mais aventureiros.

É digno de nota também o projeto CLASSPATH da Free Software Foundation, que busca fornecer uma implementação livre das bibliotecas padrão do Java para qualquer máquina virtual ou compilador. As versões mais recentes do GNU Compiler Collection (mais conhecido como GNU C, apesar de incluir também compiladores para outras linguagens) podem compilar Java para código nativo, uma possibilidade bastante interessante para o desenvolvedor mais preocupado com performance.

IDEs

As ferramentas presentes em sua distribuição do Linux fornecem um suporte ao Java bem maior do que você imagina. Embora a maioria das distribuições venha com o Kafee e o Jikes da IBM (o Jikes é apenas um compilador Java, não fornece uma máquina virtual nem bibliotecas), até onde eu sei, apenas a Caldera fornece um JDK completo em sua distribuição.

Os editores de texto populares, como Vim, Emacs, Mcedit e o KWrite são capazes de fazer realce de sintaxe em programas Java. Outros editores populares, como o Glimmer, o Moleskine e também o SciTE CLASSPATH da Free Software Foundation, também é capaz de capturar as mensagens de erro do compilador Java e posicionar o cursor no local de cada erro. O SciTE é um perfeito “IDE Leve” para o desenvolvedor iniciante ou experiente.

O popular DDD (Data Display Debugger) pode ser executado com a opção ­jdb para depurar graficamente programas em Java, e o GVD (Gnu Visual Debugger) caminha rapidamente para oferecer o mesmo suporte. Outra opção de depurador para Java é o Jswat, projeto CLASSPATH da Free Software Foundation (www.bluemarsh.com/java/jswat/), que é ele mesmo escrito inteiramente em Java.

O JUDO CLASSPATH da Free Software Foundation oferece uma abordagem diferente, apresentando uma versão “light” da linguagem para o iniciante em programação de computadores, e o meio acadêmico irá certamente apreciar muito o BlueJ da Monash University.

O BlueJ difere de todos os IDEs do mercado por ter como interface básica um diagrama de classes que lembra o UML. Você acrescenta classes neste diagrama, coloca diretamente em instância objetos (sem ter que criar um método main) e manipula essas instâncias como ícones no desktop do BlueJ, chamando métodos e exibindo/modificando atributos pelo menu de contexto dos ícones. Desta forma, o BlueJ estimula o estudante a pensar em termos de objetos e não em termos de linhas de código.

Se você deseja um IDE no estilo Rapid Application Development (RAD), experimente o NetBeans. Ele fornece todos os recursos de desenvolvimento visual, programação em três camadas, controle de versões e desenvolvimento para a web que podem ser encontrados nos IDEs comerciais como o Visual Age for Java da IBM e no JBuilder da Borland, estes dois há anos com versão Linux e também com versões gratuitas que podem ser baixadas nos sites dos fabricantes.

Servidores de Aplicação

Se você está mais preocupado com o lado servidor da informática, o Java é um grande vencedor. Todos os bancos de dados livres (MySQL, PostgreSQL, Interbase) e todos os comerciais com versões para o Linux tem drivers JDBC nativos para sua aplicação Java. Mas é a Apache Foundation que realmente faz a diferença.

Primeiro, temos o JServ, um engine de Servlets para o Apache. Ele é tão bom e escalável, que é a base do Oracle Aplication Server 9i. Acrescentando ao JServ o GnuJsp, temos um ambiente poderoso para a execução de Java Server Pages ou páginas JSP, que estão se tornando um dos meios preferidos dos grandes sites para fornecer conteúdo dinâmico.

O JServ hoje está “congelado”, recebendo apenas correções de bugs, porque os desenvolvedores estão envolvidos no Tomcat , parte do Projeto Jakarta, que oferece toda a infra-estrutura para o uso do Java em servidores Internet. A própria Sun desistiu dos seus projetos de servidores de aplicação Java em favor do projeto Jakarta, mostrando como uma empresa comercial pode colaborar com a comunidade de software livre.

[Temos que reconhecer nisso também a influência e a pressão da IBM, que antes da Sun abdicou de projetos próprios em favor do Apache e outros softwares livres.]

Como se vê, o Java acrescenta mais um rico ferramental para o desenvolvedor de software livre, sendo amplamente suportado pela comunidade e dando origem a vários projetos que contribuem para aumentar a aceitação do software livre no meio empresarial. O Java fornece uma integração única no mercado entre empresas comerciais e projetos livres, oferecendo possibilidades incríveis tanto para o pequeno desenvolvedor quanto para as grandes corporações.

E ainda nem citamos o universo de ferramentas voltadas para o Enterprise Java, o grande alvo que a Microsoft tenta atingir com o .NET, nem a integração do Java com Perl, Python e PHP.

Para saber mais

Kaffe - www.kaffe.org

Java GTK+ java-gnome.sourceforge.net

projeto CLASSPATH da Free Software Foundation - www.gnu.org/software/classpath/

BlueJ - www.bluej.org

Netbeans - www.netbeans.org

Apache - www.apache.org

JServ - java.apache.org/jserv/index.html

Gnujsp - www.klomp.org/gnujsp/

Tomcat - jakarta.apacje.org/tomcat

Projeto Jakarta - jakarta.apache.org


Fernando Lozano - fernando@lozano.eti.br


A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux