Java Livre 1
Paloma Costa
[email protected] http://
[email protected]
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/