Java Livre

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   e­Gen,  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,  chegando­se 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 plug­ins.

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/xerces2­j), 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 voltam­se à 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 e­Gov, 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/

Sign up to vote on this title
UsefulNot useful