Acelerando o desenvolvimento com o GreenBox

Entrevista com Edgar Silva, criador do projeto

Produtividade em Java, tem sido uma meta perseguida por programadores, como se fosse ouro, e nos últimos anos, a comunidade Java vem sendo agraciada por boas opções de IDE’s e  FrameWorks que aumentam a produtividade em projetos que usam a tecnologia java. 

Um dos paradigmas interessante dentro do conceito de produtividade em desenvolvimento de software é a automação de tarefas que podem ser tornar repetitivas, e que de tanto nós fazermos, acabamos aprendendo a tarefa por osmose.

Tendo isso como um dos fatores de propulsão, que foi desenvolvido o GreenBox, um framework free para geração de códigos, baseado em Velocity e técnicas de Metamodel, permitindo ler modelos estáticos como Banco de Dados e XMI e gerar códigos para qualquer linguagem.

Eu, como bom Paraense, comedor de maniçoba, tenho o orgulho em dizer que o GreenBox, teve suas raízes aqui no Pará,  e hoje já conta com time de bons  desenvolvedores de várias partes do Brasil  para evoluir seu desenvolvimento.

O GreenBox, tem ganhado notoriedade na comunidade Java,  devido a sua versatilidade e produtividade que oferece ao projeto de desenvolvimento, inclusive  recentemente  o GreenBox foi incluído como plugin a IDE do NetBeans(veja figura 01 

greenbox.JPG
Figura 01 –
Tela do GreenBox rodando como plugin para NetBeans.

Entrevistamos Edgar Silva, criador e um dos coordenadores do projeto Greenbox e  abaixo, temos na integra a entrevista que ele gentilmente  cedeu :

Manoel Pimentel:
 O que é o projeto GreenBox e qual a sua aplicação em um projeto  de desenvolvimento?

Edgar Silva: O Greenbox é um framework de geração de códigos, baseado em Velocity e
técnicas de Metamodel, permitindo ler modelos estáticos como Banco de
Dados e XMI e gerar códigos para qualquer linguagem, porém o foco
atual hoje é a linguagem Java, mas já ouvi falar que haviam pessoas
utilizando-o para geração em PHP.

A Engenharia de Software ainda que evoluída, no meu ponto de vista
ainda nem chegou a uma era Ford, se formos comparar a Industrialização
mundial. Sendo assim, Gerentes, Arquitetos e Projetista de Software
sempre se deparam com vários problemas:

1 - Escolher os frameworks mais apropriados para a solução.

2 - Com os frameworks bem escolhidos é resolvido 50% do problema,
porém 20% é disciplinar, treinar e fazer com que o time se acostume
com as escolhas.

3 - 30% é gerar os códigos.

O Greenbox lhe ajuda em todas estas fases, fazendo com que seu
desenvolvimento passe de 1 a 2 dias pra um caso de uso simples de
listagem, cadastro, edição e exclusão para horas ou até minutos,
fazendo com que o desenvolvedor tenha muito menos preocupações, e
foque seu trabalho muito mais em regras de negócios do que em códigos
que são super repetitivos.


Sendo assim deixamos a máquina fazer o trabalho "braçal" e os
artistas(Desenvolvedores) podem ter muito mais atenção nas suas
criações(Software).


MP:  Basicamente, como funciona o GreenBox?

ES: Em resumo ao conectar ao Banco, o Greenbox extrai o que chamamos de
Metamodel(metamodelo), que é uma instancia da classe chamada "Clazz", esta por sua
vez têm os seguintes atributos:

  • packageName - Que representa um namespace para a Classe
  • className- Nome da Classe
  • attibutes - Uma coleção de atributos
  • methods - Uma coleção de Métodos


Com isto você tem a infra-estrutura necessária, seja para criar
aplicações Java, ou até mesmo .Net, isto porque o Greenbox usa o
Velocity como engine de template, então se os templates atuais forem
"traduzidos" para outras linguagens, isto é possível e real.

Com base na sua arquitetura e infra-estrutura de desenvolvimento você
cria os templates, por exemplo, se você usa Hibernate, você precisa de:

  • POJO
  • HBM
  • DAOs
  • Commands

Então você vai criar templates para representar sua arquitetura, você
pode criar novos, ou se basear nos que existem já no projeto.


MP: De onde baixar e como é o procedimento de instalação/configuração do GreenBox?

ES: Uma coisa é importante ressaltar aqui, o Greenbox Framework é
OpenSource, GPL, este framework pode ser usado sem qualquer problema,
o projeto é super simples de configurar em qualquer IDE com a ajuda do
CVS. Com o framework você pode ajustar as suas necessidades de criação
de códigos.


Outra coisa, é que existem os IDEs, e ai cada empresa pode
personalizar da forma que achar melhor, hoje há dois disponíveis, um
em Thinlet, e o outro como Plugin do NetBeans 5 que está em
desenvolvimento.

Fabiano Franz, um dos desenvolvedores do Projeto está preparando algumas documentações pro site https://greenbox.dev.java.net , onde você pode encontrar maiores informações assim como o CVS também. Se você quiser ver um mini-tutorial veja:
https://greenbox.dev.java.net/nonav/site/english/index.html


MP: Para quem é recomendado usar o GreenBox?

ES: Empresas que queiram desenvolver softwares melhores e de forma mais
rápida, desde que tenham uma Arquitetura e infra-estrutura muito bem
definida, a nível de Frameworks e padrões de desenvolvimento e
codificação.


MP: O que lhe impulsionou a iniciar o desenvolvimento dele ?

ES: Minha antiga empresa estava num grande dilema comercial, como fornecer serviços de desenvolvimento em Java, se meus clientes falavam que
Delphi ou VB eram infinitamente superior? Então pensei, vou criar algo
super simples, mas que eu consiga ser tão ou mais rápido que qualquer
outro ambiente, pensei em criar algo como o RubyOnRails, mas na época
(2002), seria complicado para essa porção de mercado deixar sua
ferramenta sofisticada para um utilitário de linha de comando. Na
época avaliei fazer algo com o Middlegen, que é uma ferramenta
fantástica, porém tem uma arquitetura fechada, você só usa o que eles
dizem pra você usar, na época Struts, EJB(CMP) e etc. Eu queria
fornecer liberdade para escolha pros meus clientes, e ai concebi o que
hoje conhecemos como Greenbox, um framework que tem 14K, e com a ajuda
de Velocity faz um trabalho enorme.

O Greenbox é muito mais que um projeto opensource, e sim uma
oportunidade de negócios, pois ele é apenas um ponta-pé inicial,
alguém que conheça Eclipse por exemplo, pode criar um super Plugin e
ganhar dinheiro, mapeando processo ou fornecendo consultoria em como
pode se criar uma arquitetura de software para desenvolver sempre com
menos tempo e uma maior qualidade.


MP: Desde quando ele é open-source?

ES: Boa pergunta, tenho que checar no CVS, mas acredito que seja Fevereiro
de 2004.(Época do meu aniversário) :)


MP: Estimadamente, quantos usuários tem o GreenBox

ES: Manoel, eu confesso que não gerencio isto, as pessoas entram, fazem
downloads, fazem até Forks, mas eu não me preocupo, agora várias
pessoas me pedem alguma ajuda, e ai nesse momento eu acabo conhecendo
algumas pessoas.

Não tenho como lhe precisar um número exato, mas posso te dizer que
ele vem ganhando um respeito e atenção que me assusta, assim como
todos os commiters do projeto.

 
MP: Fale um pouco sobre a comunidade de  desenvolvedores do projeto, e como é feito o ingresso de novos membros?

ES: Hoje o Greenbox é um dos grandes motivos de alegria da minha vida,
porque posso ajudar vários amigos e suas empresas a reduzirem seu
tempo de desenvolvimento. Há pessoas em todos os lugares do Brasil, e
alguns de fora, os caras mais presentes nos dias de hoje são:
Alexandre Gomes(DF), Ricardo Ferreira(PA) Fabiano Franz(RS), Lucas Balensiefer(RS), David
Farias (PA), Felipe Santos(RJ), João Emilio (RJ), Keuller
Magalhães(PA), citar pessoas é complicado, sempre esquecemos alguém...
Mas estes são os nomes mais ativos, e que estão conduzindo o projeto,
tem gente que sabe usar o Greenbox até melhor que eu hoje em dia, e
você não tem idéia do quanto isto me deixa feliz!


MP: Qual sua expectativa sobre o futuro do projeto?

ES: Continuar opensource, porém, não sou mais adolescente que faz software
de graça para cutucar grandes empresas, hoje o Greenbox como
opensource e free nos gera uma boa receita, o que nos motiva a
continuar nesse modelo, pra mim OpenSource é um business, e fico feliz
da minha empresa (Summa Technologies), me apoiar efetivamente me
pagando para em vários momentos evoluir as coisas dentro do projeto. E
isto está trazendo uma grande lucratividade para alguns de nossos
clientes e parceiros.