1
Paloma Costa
1paloma.costa@gmail.com
http://javawoman.objectis.net1paloma.costa@gmail.com
Abstract. This article shows to the new trends and the ways of Java and free
Software, in the market showing the divergences between the two communities
and of more current. The diverse existing projects are boarded that are being
created for the communities Java and Free Software amongst the standards
and the compatibility under free license.
Resumo. Este artigo mostra as novas tendências e os caminhos de Java e
Software livre, no mercado mostrando as divergências entre as duas
comunidades e de mais atual. São abordados os diversos projetos existentes
que estão sendo criados pelas comunidades Java e Software Livre dentre os
padrões e a compatibilidade sob licença livre.
1. Introdução
Pessoas, grupos e empresas que tornam forte o Java no País passam a centralizar os seus
projetos, abrem espaço para outros projetos brasileiros entre os quais estão eGen,
ambiente de desenvolvimento rápido com Java e Jbanana, framework MVC baseado em
XML.
Através desta troca por códigos, conhecimentos e principalmente a rede networking
serão abordadas as novas tendências e divergências sobre as compatibilidades e padrões
reconhecidos pelas comunidades Software Livre que fazem com que mais
desenvolvedores se fortaleçam.
O artigo abordará mais detalhadamente a seguir.
2. Padrões de compatibilidade
Nossa liberdade de escolha na tecnologia Java é garantida pelo Java Community
Process(JCP), organização que rege a criação e a evolução das especificações e exige
que as diferentes implementações de Java e de suas APIs sejam compatíveis. Várias
implementações de Java existem, Sun, IBM, BEA e Apple e as desconhecidas. A
criação do J2SE5.0 foi o maior esforço colaborativo da comunidade Java até hoje. Mais
de 160 experts de diversas empresas e países cooperaram em 15 JSRs. O que garante
que as implementações existentes sejam compatíveis são os conhecidos testes de
compatibilidade, agrupados no JCK – Java Compatibility Kit. Nenhuma implementação
pode ser chamada de Java até que passe nesses testes. Buscando ampliar a
compatibilidade , para o Tiger foram adicionados cerca de 13 mil testes ao JCK,
chegandose a mais de 45 mil. Essa sofisticação cada vez maior reflete o compromisso
da tecnologia: garantir a compatibilidade e o foco multiplataforma.
3. Ferramentas de desenvolvimento
Java por sua caracteristica multiplataforma e seu peso nas corporações, é uma excelente
opção para incentivar e suportar o uso de software livre.
3.1 Eclipse
Um dos projetos mais importantes está o lançamento da nova versão do mais popular
IDE Java Livre, trazendo o suporte ao J2SE5.0 , novas guias de retoração e quick fixes
para migrar as novas sintaxes do Java5. Entre muitas outras características que ajudarão
na produtividade do desenvolvedor como os plugins.
3.2 Web Tools Plataform
WTP inclui suporte a edição de arquivos HTML, XML, JSP, CSS e SQL, alémde
assistentes para a criação web services, conexão de banco de dados, criação de EJBs e
deployment de aplicações.
3.3 Capivara
Sua finalidade é sincronizar diretórios locais e remotos. São suportados os protocolos
FTP, SFTP ou SSH(configurar o serviço). Mais detalhes http://capivara.sf.net
3.4 HSQLDB 1.8
Versão estável, melhorias feitas pela equipe de desenvolvimento OpenOffice2.0.
Possível colocar todos os arquivos de uma mesma base num jar. Suporta maior volume
de dados. Testes realizados com PolePosition(polepos.org) colocam HSQLDN em amior
velocidade em relação a outros bancos 100% java como por exemplo Apache Derby ou
McKoi, One$DB e até mesmo MySql. Http://hsqldb.org
3.5 Apache Xerces – J2.7.0
A nova versão parser xml xerces(xml.apache.org/xerces2j), traz compatibilidade com
vários novos padrões: JAXP1.3, SAX2.0.2, DOM level 3 Core, xml1.1, Xinclude1.0 e
nd
XmlSchema1.0 Structures and Datatypes 2 Ed. Foram corrigidos os bugs quando
executado por múltiplas threads.
4. Práticas recomendadas
A biblioteca padrão de classes do J2SE não inclui componebtes no estilo DataControl,
DBGrid etc, que aumentam inicialmente a produtividade, mas torna “código espaguete”
misturando lógica, visualização e regras de negócio. A prática recomendada em
aplicações Java é ou construir classes DAO para acesso a dados via JDBC ou utilizar
um framework de objeto relacional como o Hibernate. Código escrito completamente
orientado a objetos.
5. A JVM como Software Livre
Existem muitas iniciativas para implemetar uma JVM livre, entre elas estão Kaffe, GCJ,
e Classpath que são projetos bem adiantados e que precisam de um apoio maior. A JVM
por si só já é muita complexa e não é fácil criar uma que seja performática e estável.
Mais difícil que criar a máquina virtual é desenvolver o conjunto de biliotecas. São
milhares funcionalidades que vão de um simples Integer a sofisticados componentes de
criptografia, de APIs de tratamento de sons e gráficos a tecnologias didtribuídas de
acesso a dados. As bibliotecas Java cobrem uma área muito extensa do conhecimento
em desenvolvimento de software. Por isso é importante o esforço voluntário.Poucas
pessoa estão trabalhando efetivamente nos projetos para a criação de uma
implementação livre da JVM, e a maior parte destas tem maior interesse em pesquisa do
que em criar uma versão de produção que possa realmente substituir uma das
implementações proprietárias existentes.
5. Licença da Sun – SCSL
A Sun já disponibilizava o código fonte de Java desde a versão alfa, em 1995, antes
mesmo de existir a definição formal do que é uma licençade software livre definida em
1998, quandofoi criada a OSI – Open Source Initiative. A licença de java teve sempre o
objetivo de garantir a compatibilidade, e evitar que empresas usassem o códigopara criar
implementações incompatíveis. Por tudo isso, a licença da Sun, a Sun Community
Source License(lêse “scazel”) é uma licença muito fechada. A SCSL é uma licença
muito restrita e complexa que chega a colocar como propriedade intelectual da Sun
qualquer iniciativa relacionada às especificações Java de alguém que tenha aceito o
SCSL. Afinal, a Sun nunca tomou nenhuma atitude contra as implementações livre da
JVM.
5. Licença do Tiger
Java5 permite que tenhamos uma implementação de Java completamente independente
do código Sun e , portanto, sob a licença que se quiser, sem limitações. O teste de
compatibilidade está disponível, separadamente do código da Sun, e cobrindo todas as
APIs do J2SE. Isso torna possível certificar as implementações open source que estão
sendo criadas.
5. Projeto Javali
Sendo o principal objetivo do Projeto Javali a geração de tecnologia e conhecimento no
país, suas principais atividades voltamse à definição e ao desenvolvimento de projetos
de importância nacional – mas que tenham respaldo da comunidade internacional –,
focando em projetos que sejam importantes para o Brasil, e que utilizem ou criem
tecnologia de ponta promovendo a pesquisa, tenham relevância imediata para o governo
e empresas, e estejam alinhados com iniciativas internacionais.
O Projeto Javali reúne as características necessárias para engajar a comunidade de
desenvolvedores nacionais em um esforço que trará benefícios imediatos ao país. Para
isso, o Projeto Javali está centrado em algumas iniciativas de desenvolvimento de
software: Máquina Virtual, Conjunto de Bibliotecas, Ambiente de
desenvolvimento(IDE), Soluções de integração de aplicações clientes, Componentes
Visuais pela eGov, Tecnologia para a TVDigital e Geração de documentação. O projeto
poderá ser acessado em hhtp://javali.org.br e veja também em http://java.net
Figure 1. O mascote do Java
6. Conclusão
Estamos trabalhando para envolver mais desenvolvedores na criação de uma JVM livre e
as bibliotecas básicas, além de educálas sobre o que já existe, incentivando a
utilizaçãodos projetos existentes. Criar uma implemetação é mais difícil do que pedir
para a Sun liberar a deles, mas é a responsabilidade daqueles que acreditam nas
liberdades oferecidas pelas licenças livres. O Sou Java vem liderando um esforço no
Brasil e em âmbito internacional, através do Porjeto Javali, buscando aumentar a
visibilidade das implementações livres, além de canalizar esforços de desenvolvedores
para a sua finalização.
References
Máquina Virtual Kaffe http://kaffe.org
GNU Classpath http://gnu.org/software/classpath
SCSL e princípios por trás da licença http://sun.com/981208/scsl/principles.html
Mauve Kit de compatibilidade Open Source http://sources.redhat.com/mauve
Javali http://javali.org.br
JCP http://jcp.org/en/home/index
NetBeans http://netbeans.org
Banco de Dados HSQLDB http://hsqldb.sf.net
Tomcat http://tomcat.apache.org/
Java NET http://java.net
Jboss http://www.jboss.org
Projetos Java NET http://community.java.net/projects/
Tiger http://java.sun.com/j2se/1.5.0/