Novidades NetBeans

Em 18 de dezembro saiu a versão final do NetBeans 5.5 Multilingual Release, agora disponível inclusive em Português do Brasil. Conforme citado aqui no blog, o release candidate deste pacote de idiomas foi lançado dia 4 passado.

Em 15 de dezembro, foi disponibilizado para download também o Portal Pack NetBeans Portlet Plugin 1.0, que inclui um plug-in para o componente Portlet Container 1.0 Beta (implementação derivada do projeto open source em java.net portlet-container). Este plug-in provê suporte, com assistentes, para desenvolver e visualizar portlets baseados na especificação genérica JSR-168, fazendo deployment no Portlet Container.

De Sun Java Studio Creator a NetBeans Visual Web Pack

No artigo Using Sun Java Studio Creator 2 IDE or Visual Web Pack for NetBeans 5.5, por Winston Prakash e Beth Stearns (em inglês, dezembro 2006), os autores fazem um interessante histórico do ambiente de desenvolvimento visual para web da Sun, Java Studio Creator, e seu paralelo com as sucessivas versões do IDE NetBeans, software livre que é a base para as ferramentas de desenvolvimento Java da Sun.

NetBeans 5.5 Visual Web Pack Se você acompanha as novidades do NetBeans, já deve ter notado que a versão 5.5 oferece a extensão Visual Web Pack, e que esta se parece muito com o IDE Sun Java Studio Creator 2. De fato, o Visual Web Pack essencialmente é o Java Studio Creator 2 existente, construído sobre uma dissidência (fork) da plataforma NetBeans, apenas sem suporte a web services e desenvolvimento portal, ainda.

Percorrendo o histórico e a evolução do desenvolvimento dos IDE NetBeans e Sun Java Studio Creator, o artigo mostra que o Java Studio Creator 1 era uma bifurcação (com quebra de compatibilidade) do NetBeans 3.5.1, desenvolvida separadamente para adicionar e adaptar recursos funcionais e interativos. Partiu do IDE para desenvolvedores com conhecimentos avançados em Java — que era o NetBeans — para construir um IDE mais fácil e amigável, voltado para os desenvolvedores web iniciantes no mundo Java, especialmente desenvolvedores VB/ASP migrando para Java.

O novo IDE tinha aparência e comportamento familiares ao que os desenvolvedores VB/ASP encontravam no Microsoft Visual Studio, adicionando importantes recursos que não existiam no NetBeans 3.5.1: sistema de janelas acopláveis (dockable); paleta “arrastar-e-soltar” de componentes; painéis de navegação no projeto, de navegação no servidor e de estrutura do documento; ajuda dinâmica etc.

Aproveitando as evoluções do NetBeans 3.6 e 4.1, o Sun Java Studio Creator 2 partiu da base de código do NetBeans 4.1 e modificou menos de 5% para seu uso. Apesar das diferenças e incompatibilidades, o Java Studio Creator 2 era quase como o NetBeans 4.1 acrescido de módulos (plug-ins).

O IDE NetBeans 5.5 de hoje é muito mais versátil e fácil de usar que as versões anteriores, e inclusive tem recursos desejáveis que faltam ao Java Studio Creator 2, como suporte a Java SE 5 e 6. Então, perto de 90% dos recursos do Java Studio Creator 2 foi implementada/portada como o pacote adicional Visual Web Pack para o NetBeans 5.5, atualmente deixando de fora apenas o suporte a web services e ao desenvolvimento para portal. O time de engenheiros da Sun pretende resolver isto, de forma que os usuários do Java Studio Creator possam ter um caminho de migração 100% compatível para uma próxima versão (release) do Visual Web Pack.

Assim, é provável que no futuro não haja um Sun Java Studio Creator 3, mas sim uma incorporação total (merge) deste no Visual Web Pack do NetBeans IDE, tornando este uma ferramenta de desenvolvimento Java cada vez mais versátil, poderosa e abrangente.

Atualização: Realmente, o portal da informa que o próximo passo para o Java Studio Creator é o NetBeans 6.0, incorporando todos os recursos em um único IDE. Há inclusive artigo sobre o caminho de migração: Tips for Migrating Java Studio Creator 2 Update 1 Projects to NetBeans IDE 6.0 Preview (M9) (em inglês), Joe Silber, maio 2007.

Cada vez mais, o NetBeans se torna um ambiente de desenvolvimento IDE mais atrativo para o desenvolvedor Java iniciante, enquanto desenvolvedores mais avançados continuam preferindo se basear no poderoso software livre Eclipse ou nos ambientes comerciais, baseados neste último como IBM Rational Developer, Borland JBuilder, BEA Workshop e MyEclipse, ou independentes como IltelliJ IDEA e Oracle JDeveloper.

Para saber mais:

Oracle SQL Developer 1.1

Em 15 de dezembro, saiu a versão de produção do Oracle SQL Developer 1.1 (1.1.0.23.64), que pode ser obtido gratuitamente no portal de Tecnologia da Oracle (OTN). SQL Developer pode se conectar a qualquer banco de dados Oracle Server versão 9.2.0.1 (9i Release 2) e posterior. Escrito em Java, roda em Windows, Linux e Mac OS X.

Oracle SQL Developer é uma ferramenta gráfica gratuita de desenvolvimento para banco de dados Oracle. SQL Developer permite navegar por objetos da base de dados, executar comandos SQL e scripts SQL, editar e depurar instruções PL/SQL. Você pode também executar os relatórios fornecidos, ou criar e salvar os seus próprios. SQL Developer melhora produtividade e simplifica tarefas de desenvolvimento em banco de dados.

Para quem acha o Oracle SQL Developer muito pesado, uma alternativa de terceiros para Windows, igualmente gratuita, é o SQL Tools, uma ferramenta gráfica leve e robusta de desenvolvimento em banco de dados Oracle, desenvolvida por Aleksey Kochetov. Consiste em um poderoso editor de texto para código SQL e PL/SQL com coloração de sintaxe, console SQL para execução de DML e DDL, um navegador de objetos e diversos recursos utilitários.

Para saber mais:

Vamos aumentar nosso salário?

E se você pudesse um dia acordar e pensar: “Hmmm, acho que vou aumentar meu salário hoje!” ? Bem, se você for um deputado ou senador do Brasil, você pode. Não só pode como aconteceu, anteontem mesmo.

Em um simples acordo, Congresso e Senado do Brasilei resolveram reajustar os salários dos parlamentares, dos atuais R$ 12,847,20, para R$ 24.500, um aumento de 91% que equipara aos salários dos ministros do STF (Supremo Tribunal Federal). A decisão não foi em plenário, mas em uma simples reunião de líderes partidários liderada pelos presidentes da Câmara — Aldo Rebelo (PC do B-SP) — e do Senado — Renan Calheiros (PMDB-AL). Na reunião, foi derrotada proposta anterior de reajustar os salários “apenas” para R$ 16.500, que seria de acordo com a inflação acumulada desde o último reajuste (há 4 anos).

Tirando os deputados Henrique Fontana (PT-RS) e Chico Alencar (PSOL-RJ) e a senadora Heloísa Helena (PSOL-AL), 20 deputados e 6 senadores votaram a favor na reunião de líderes. Lembre-se dos nomes dos parlamentares favoráveis ao decidir sobre seu voto em futuras eleições!

A farra salarial política não para por aí. Como deputados estaduais podem receber até 75% do salário de parlamentares federais, e os vereadores municipais, até 75% do salário do deputado estadual, o aumento é em cascata nos legislativos estaduais e municipais Brasil afora. Apenas dois dias após a decisão federal, 19 Assembléias estaduais já tinham confirmado a propagação do reajuste. E provavelmente as restantes seguirão breve, já que isso sim é uma questão de interesse urgente do legislativo em todo país.

Lembro que só estamos falando aqui dos salários. Já existem inúmeras e vultuosas verbas adicionais que complementam em muito os salários de parlamentares, como auxílio para ternos, moradia, veículos, viagens etc., salários de assessores e verba de gabinete. Isso sim que é “Bolsa Família”!

Justificativas para o aumento? Só com muito “óleo de peroba”, diz a senadora Heloísa Helena. Realmente, haja cara de pau para suprir a total ausência de bom senso, racionalidade e sensatez ante à realidade do Brasil, onde o salário mínimo acabou de ser reajustado para R$ 375. Ou seja, o novo salário dos parlamentares é mais de 65 vezes o salário mínimo atualizado. É… nem tudo que é legal é moral.

Não pense que os absurdos são apenas da política brasileira. Nos Estados Unidos, os parlamentares estão revoltados com a proposta de se aumentar a carga de trabalho de dois para 5 dias semanais. Realmente, um absurdo!

Agora, voltemos à nossa realidade.

Substituir JDK no NetBeans

Se você atualizou ou substituiu a versão de Java (JDK) no seu computador, excluindo a versão anterior com a qual havia instalado o IDE NetBeans, provavelmente ocorrerá um erro ao tentar iniciar o NetBeans com o novo JDK. Em Windows, é exibida uma janela de diálogo com o erro “Cannot find java.exe” e o programa é interrompido.

Isto ocorre porque o NetBeans armazena em um arquivo de configuração qual é o caminho para o Java SE que ele utiliza como padrão, escolhido durante a instalação. A solução é editar o arquivo etc/netbeans.conf dentro do local de instalação do NetBeans, com um editor de texto-puro (como o Bloco de Notas/Notepad), e localizar no arquivo o trecho a seguir:

# default location of J2SE JDK, can be overridden by using --jdkhome <dir> switch
netbeans_jdkhome="C:\\Arquivos de programas\\Java\\jdk1.5.0_09"

Substitua então o caminho entre aspas após netbeans_jdkhome pelo local de instalação do novo JDK, por exemplo:

netbeans_jdkhome="C:\\Arquivos de programas\\Java\\jdk1.6.0"

Pronto. Salve e feche o arquivo. Agora você deve conseguir abrir o NetBeans utilizando o novo JDK.

Referência:

  • Cannot find java.exe (em inglês), tópico no Fórum da Sun sobre Desenvolvimento Java, agosto de 2005.

Genéricos sim, simples nem sempre

O recurso de tipos genéricos em Java permite soluções interessantes de economia de código ao definir classes e métodos de manipulação ou utilitários genéricos, mas que ao serem instanciados e usados podem ter um tipo específico definido. os tipos genéricos trazem a flexibilidade e generalidade da classe Object, porém com permitindo usos com verificação de tipo mais restrita, em tempo de compilação.

Em um artigo de 2004 em que eu falava das novidades que o Java 5 “Tiger” trazia, Prepare-se para o Tigre, havia um exemplo de uso básico de genéricos.

Existem casos complicados, em que a compreensão do funcionamento e uso dos tipos genéricos é mais difícil. No artigo Wildcard Generics (em inglês, por Marco, 17/11/2006), o autor ressalta um dos pontos menos intuitivo do recurso de tipos genéricos em Java, conforme indica o próprio Tutorial da Sun Generics in the Java Programming Language (PDF, em inglês, 5/07/2004), por Gilad Bracha:

“Em geral, se Foo é um subtipo (subclasse ou subinterface) de Bar, e G é alguma declaração de tipo genérico, não é correto afirmar que G<Foo> seja um subtipo de G<Bar>. Esta provavelmente é a coisa mais difícil que você deve aprender sobre genéricos, porque vai contra nossa mais profunda intuição.”

Outra situação que merece atenção é código que utiliza APIs mais antigas — sem genéricos — ou com tipos apagados (“erased”), com código compilado dentro da validação de sintaxe de Java 5 ou superior, com genéricos. Um exemplo de como evitar o aviso de compilação de verificação de tipo insegura sobre tipos apagados pode ser visto neste tópico do Fórum da Sun sobre Desenvolvimento Java: Checking against the erased type List.

Java 6

Depois de dois anos de desenvolvimento, Sun Microsystems liberou hoje o Java SE 6 final, mais novo grande lançamento da plataforma Java Padrão, cujo projeto de desenvolvimento teve codinome “Mustang”.

Segundo a nota de lançamento, há os seguintes recursos de destaque:

  • Novos e melhores recursos de segurança, como integração nativa com GSS/Kerberos, módulo de login JAAS com autenticação LDAP e nova API de E/S para Smart Cards (JSR 268);
  • Web Services integrado, incluindo nova API de serviços de assinatura digital (DSig) XML (JSR 105) para web services seguros, cliente e núcleo para API de WS baseada em XML (JAX-WS) 2.0 (JSR 224) que estende a JAX-RPC 1.0 existente, novo suporte à Arquitetura para XML Binding (JAXB) 2.0 (JSR 222) e à Streaming API for XML – StAX (JSR 173), e WS Metadata (JSR 181);
  • Suporte a Linguagens de Script (JSR 223), com o mecanismo Mozilla Rhino para JavaScript embutido na plataforma;
  • Melhor gerenciamento e disponibilidade, com melhorias na API de Monitoramento JMX e na análise de uso e detecção de desperdício de memória, e suporte runtime para dTrace (sistema operacional Solaris 10+);
  • Aumento da produtividade do desenvolvedor, com suporte a JDBC 4.0 (JSR 221), melhorias significativas de bibliotecas, da Java Platform Debug Architecture (JPDA) e da JVM Tool Interface;
  • Experiência mais agradável para o usuário, com atualizações de visual e comportamento (look-and-feel) para mais similaridade com o sistema operacional, melhor desempenho e integração com o ambiente desktop (inclusive o Windows Vista) e mais suporte a internacionalização;
  • Java DB 10.2 JDBC4 Early Access, baseado no Apache Derby, incluído na distribuição do Java SE.

O detalhamento dos recursos e melhorias do Java SE 6 estão agrupados na especificação “guarda-chuva” do Java SE, JSR 270, a qual estão ligadas outras 13 JSRs implementadas.

O ciclo de desenvolvimento da nova versão foi um marco na história do Java. A Sun se esforçou para promover o mais alto nível de transparência e colaboração com a comunidade Java através do Projeto JDK 6 no portal colaborativo java.net, com participação de cerca de 330 desenvolvedores, de mais de 160 companhias para garantir compatibilidade, estabilidade e alto desempenho.

O portal JavaFree.org ressaltou que, assim como aconteceu com a versão 5, a adoção deve ser gradual, especialmente por causa da demora de grandes fornecedores em certificar seus produtos para funcionarem com essa nova versão. Entretanto, a maior parte das aplicações existentes muito provavelmente funcionará com o Java 6, já que os testes feitos durante o desenvolvimento garantem backward compatibility na grande maioria dos casos. Agora é esperar pelas novidades que virão com o Java 7 “Dolphin”.

Para saber mais:

Mozilla Firefox rules

Fantástico! Nas estatísticas de acesso ao meu site em novembro/2006, das 42.774 visitas (sessões de usuário) registradas no mês, a distribuição por navegadores web foi assim:

  • 53,5% Internet Explorer
  • 40% Mozilla/Firefox
  • 1,5% Opera
  • 5% outros navegadores e robôs de pesquisa.

Me deixa impressionado e feliz o grande crescimento da participação dos navegadores da família Mozilla, especialmente o Firefox. Há um ano atrás, essa participação era praticamente a metade, pouco mais de 20%, enquanto Internet Explorer dominava quase 76% das visitas.

É bem verdade que boa parte do público do meu site tem um perfil mais técnico e/ou ligado a tecnologia, devido ao conteúdo aqui disponibilizado. Mas é sinal que as pessoas, em ritmo acelerado, estão descobrindo que a modernidade, segurança e flexibilidade do Firefox estão anos-luz à frente do Internet Explorer e estão migrando.

Interface simples e clara, navegação em abas, proteção contra fraudes, pesquisas a múltiplas fontes, RSS, suporte aos padrões e tecnologias mais modernos, suporte a diversos sistemas operacionais e idiomas, infinidade de recursos de personalização e extensão (opções, temas e plug-ins), controle total sobre opções e informações, incentivo ao software aberto e livre. São vantagens do Firefox.

Alguns desses recursos o Internet Explorer ainda vai começar a oferecer, na próxima versão 7 que por enquanto está em Beta. Quem deve ter mais fôlego, uma grande corporação como a Microsoft, ou “corpo e coração” de uma grande comunidade aberta, como o projeto mozilla.org?

Aproveito para desmentir um mito: Há quem fale que o Firefox “ainda não funciona com alguns sites”. Embora isso seja verdade, observe o seguinte: estes sites quase sempre são feitos em tecnologias ASP ou dotNET (aspx) da Microsoft e usam algum recurso proprietário que acaba só funcionando com o Internet Explorer. Mas sempre há um outro meio mais correto de se fazer as mesmas coisas, seguindo os padrões abertos mundiais do W3C e garantindo a compatibilidade com os diversos navegadores. Então, quem está errado é o site que está “na contramão”, e não o Firefox que segue os padrões. O correto é a regra, não a exceção. Nestes casos, você deve entrar em contato com os administradores do site e exigir correção do problema! No Firefox, pode usar também a opção de menu Ajuda » Reportar site como incompatível.

Mudar para o Mozilla Firefox é redescobrir a web e ter o controle!