segunda-feira, 22 de dezembro de 2008

O Futuro do Java

Estive nestes últimos dias entretido com o(s) artigo(s) de capa da revista Mundo Java, onde diversos especialistas e pessoas notórias arriscam suas idéias sobre o futuro e as tendências do Java no mercado. Não posso negar que é um excelente apanhado de opiniões, varrendo as principais tecnologias Java, desde Javacard e J2ME até SOA e desenvolvimento orientado a serviços, trazendo as mais recentes novidades de cada área.
No entanto, uma coisa me parece que fugiu aos assuntos da revista, e por isto resolvi discriminá-la aqui, pois também me parece uma tendência que tem se fortalecido aos poucos e tem ganhado muito fôlego: a programação gráfica. O que vem a ser isto?? Bom, é mais um termo pajetiano para algo que está surgindo devagarinho e tende a ganhar grande impulso!
Programação Gráfica é todo o tipo de geração de código feito indiretamente, através de uma ferramenta gráfica; ou seja, ao invés de o programador escrever seu código, comando a comando, linha a linha, ele abre mão de uma IDE sofisticada onde, a partir de componentes iconográficos, pode arrastar objetos, definir suas propriedades, configurações, relacioná-las umas com as outras (meio que como se montasse um diagrama) e a ferramenta, dando-se por satisfeita com as informações prestadas, gerará automaticamente o código correspondente, podendo vir a compilá-lo e executá-lo, caso necessário.
Para quem programa em Java, isto há muito não é novidade... o Netbeans, por exemplo, gera dezenas de linhas de código em Swing automaticamente, a partir de uma interface amigável facilmente configurada (ou melhor, "desenhada") pelo programadores. Para quem usa o Eclipse, um bom plugin de funcionalidades semelhantes seria o Visual Editor Project (que inclusive suporta SWT), ou o Jigloo, que também tem versão para o Websphere Studio. Estes plugins não se limitam somente à interface gráfica, mas também comportam tratamento de eventos, dentre outras funcionalidades sofisticadas, costumeiramente desenvolvidas apenas via códigos e linhas intermináveis.
Para quem acha que isto só existe para interfaces gráficas de programas locais, aconselho que invista algum tempo examinando a sofisticação deste plugin: GWTDesigner, que faz exatamente a mesma coisa, porém para o desenvolvimento web com o Google Web Toolkit.
Bom, parece que a era da programação exclusivamente via texto realmente está no fim, e uma grande transformação está por vir!! Para quem ainda não acredita, vou deixar soar as trovoadas, citando rapidamente apenas mais uma ferramenta que veio para derrubar qualquer opinião contrária: o JasperETL, uma IDE de programação de manipulação de arquivos construída a partir do Eclipse, pelo time da Jaspersoft (o mesmo que mantém o Jasper Reports e o iReports), gratuita e disponível para qualquer plataforma. O JasperETL é uma IDE de programação diferente: nela você não escreve código, apenas arrasta os componentes para o diagrama central e os relaciona com ligações pertinentes (Iterator, para laços, etc...), configurando o fluxo do programa e todas as propriedade desejadas. Ao passo em que você faz isto, ele gera automaticamente o código. Também compila, coloca breakpoints, roda, inspeciona, etc, como o Eclipse faria normalmente.
O objetivo do JasperETL é ser uma IDE completa de geração relâmpago de programas processadores de arquivos. Ela suporta arquivos em diferentes dispositivos, faz acesso a banco de dados, lê e valida XML contra Schemas, extrai dados dos XMLs, converte nos mais diferentes formatos (gera até planilha do Excel!), é capaz de tomar decisões e modificar o fluxo, etc... tudo programado apenas num "simples" diagrama gráfico. Com o JasperETL, é possível fazer programas sofisticados que demorariam semanas em apenas 1 dia, e sem risco de erros.
Explorando a idéia da geração automática de código a partir de uma ferramenta gráfica, sob um prisma bem mais conhecido, pode-se citar ainda dezenas de programas para criação de diagramas UML, como o editor gratuito JUDE Community, que são também versáteis geradores de códigos a partir de seus diagramas (e vice-versa!). Com eles, você gera um diagrama de classes em UML 2.0, por exemplo, e o programa é capaz de interpretá-lo e criar as classes correspondentes, automatizando este penoso e braçal ofício.
Com este artigo, procurei mostrar uma tendência do Java, como também do mercado e do desenvolvimento em geral: a invasão de ferramentas e super bibliotecas de automatização de código, configuradas e manipuladas graficamente. Acredito que esta é uma tendência séria e que, ao logo dos próximos anos, vai modificar em muito a nossa maneira de produzir software. O pessoal do Mundo Java me desculpe, mas isto ficou faltando e não poderia ser deixado de lado...
Concorda, discorda?? Comente!!

Nenhum comentário: