Migrando de desktop (Delphi) para web: que framework(s) usar?

6 respostas
vitorh.campos

Olá,

A empresa aonde trabalho está em processo de migração dos sistemas para a web, com Java. Atualmente, temos duas equipes completamente distintas: uma, com cerca de 20 programadores Delphi (a maioria não conhece nada de desenvolvimento web), e outra, bem menor, com 5 programadores PHP + Zend.

Como analista de sistemas, e o único conhecedor da plataforma Java na empresa, fui encarregado de definir as metodologias e ferramentas de desenvolvimento a serem usadas nas futuras aplicações. Sei que não posso definir uma única ferramenta a ser usada por todas as aplicações, já que as equipes de desenvolvimento têm conhecimentos bem distintos, além de as aplicações terem finalidades diferentes (intranet e internet), terei que escolher pelo menos 2 frameworks web.

Para a equipe PHP é mais fácil: acredito que o melhor é escolher um framework action-based, como o VRaptor, Struts 2 ou o Mentawai. Tenho uma tendência maior a escolher o VRaptor, já que ele evita o uso de XML e conheço pessoas em outras empresas que o utilizam, o que facilita o intercâmbio de conhecimento. Se tiverem alguma sugestão, agradeço.

Para a equipe Delphi é que a coisa complica: para diminuir a curva de aprendizado, tenho que escolher uma ferramenta que seja mais próxima do desenvolvimento desktop, ou seja, component-based. Sendo assim, minhas principais opções seriam o JSF (com algum pacote de componentes AJAX, como PrimeFaces ou RichFaces), ou usar o GWT (Google Web Toolkit).

A vantagem que eu vi no GWT foi que ele possui um plugin do Eclipse para desenvolvimento visual, o que facilita bastante a vida de quem está acostumado a “jogar” componentes numa tela e já ver como ficará a “cara” da aplicação final. No caso do JSF, o único editor visual que consegui encontrar foi o do JDeveloper + ADF, mas sinceramente essa dupla não merece ser usada: além de o JDeveloper consumir horrores de memória e travar muito, o ADF tem uma carência muito grande de documentação (ao que me parece, somente os Oracle Partners utilizam esse framework) e ainda usa o JSF 1.2, ou seja, corre o risco de ser migrado para a versão 2.0 do JSF e nós termos que reescrever muita coisa, ou simplesmente a ferramenta ser descontinuada e ficarmos a ver navios.

O que vocês acham? Favor levar em consideração as 2 “classes” de programadores que mencionei.

Ainda sobre JSF: existe alguma outra IDE para desenvolvimento visual, usando PrimeFaces, RichFaces, IceFaces ou algum outro *Faces? Eu lembro que o NetBeans tinha um editor visual desses, para pelo visto ele foi retirado (pelo menos não encontrei). Estou pegando meio pesado nessa coisa de desenvolvimento visual, porque, com a equipe já tendo que aprender uma linguagem nova, com Orientação a Objetos e com as diferenças da estrutura web em relação ao client-server, se eu forçar a equipe a desenvolver usango tags logo de cara, corro o risco de as pessoas ficarem com (muito) medo e as coisas não correrem como deveriam.

Grato.

6 Respostas

leonardobhbr

Amigo sinceramente já trabalhei com uma equipe assim onde tentei fazer a migração de Delphi para Java, só que não deu muito certo não, pois o maior erro é exatamente esse tentar diminuir a curva de aprendizado, fazendo com que ninguem soubesse a linguagem e fizesse só porcaria.

No meu caso a solução foi contratar uma equipe menor com o conhecimento já em Java.

Até porque a maioria dos programadores Delphi só conhece Drag and Drop e não tem o menor conhecimento em OO

M

Trabalhei e trabalho com o Delphi desde sua primeira versão, ultimamente tenho dividido meu tempo entre novas aplicações utilizando Java e mantendo outras legadas em Delphi, particularmente não tive muitos traumas em migrar entre as linguagens, isso porque sempre fui um entusiasta pela OOP e ja praticava seus conseitos com o Delphi (sério, o delphi é orientado a objeto).
Existem vários conseitos novos em uma aplicação web com java que programadores delphi terão que entender, ex:

protocolo HTTP não mantem estado;

A mudanção de paradigma, procedural para OOP;

Separar em camadas a aplicação (na maioria das equipes, a regra do negócio esta misturado com as regras do form);

etc;

Também ja trabalhei com alguns times que precisaram mudar, e como conheço as duas linguagens sempre fazia uma comparação porque em Delphi era desta forma e em Java deve ser dessa forma, e tentar fazer com que eles esqueçam os malditos ClientDataSet´s da vida, rsrsrs.

Para tentar minimizar a curva de aprendizado, normalmente eu elaborava as classes e seus relacionamento e passava para a equipe trabalhar nos metodos das mesmas, tentando esconder ao máximo as complexidades quando não eram necessárias, por exemplo trabalhamos primeiramente no desenvolvimento das regras de negócios (essa parte o pessoal de delphi ja conhecia) e só então passando para a parte da view e controlller.

Uma coisa que me ajudou bastante foi utilizar desde o começo testes unitários, auxiliou bastante nas validações das novas rotinas.

De qualquer forma não tem como evitar a queda de produtividade e o tempo necessário para a adaptação e a pessoa encarregada por fazer essa transição vai ficar bem sobrecarregada no começo.

fabiofalci

Considere esse tb: http://www.playframework.org/

R

Fabricio,tenho ouvido falar bem desse Play Framework,vc já está usando em produção?

fabiofalci

Fabricio,tenho ouvido falar bem desse Play Framework,vc já está usando em produção?

Sim, em duas pequenas aplicações. Estão se portando muito bem.

alias

Pensando no seu comentário a respeito da “curva de aprendizado” (que será inevitável, como sabe), a princípio penso que o GWT seria indicado. Estou utilizando o plugin visual do Eclipse (WindowBuilder) para construir as telas e estou satisfeito.

Na minha humilde opinião, o GWT envolveria uma curva de aprendizado maior para desenvolvedores Java acostumados aos frameworks “comuns”, pois de fato o GWT é bem diferente destes (Struts, JSF, etc). Mas me parece que a sua equipe não teria esse “problema”, e sim apenas as dificuldades naturais de aprender uma tecnologia nova. Creio que o GWT é algo indicado para voce, sim. Sem falar que o visual gerado pelos Widgets do GWT é mais parecido com uma app desktop.

Talvez o JSF tambem se enquadre no seu cenário, mas trabalho com ele usando o Eclipse e particularmente nao gosto do editor visual. Dizem que o do Jboss Tools até é legal… mas nunca nem o abri pra ver.

A proposito, trampei com o Delphi com as versoes 5 e 6…faz tempo :lol:

Criado 29 de outubro de 2011
Ultima resposta 31 de out. de 2011
Respostas 6
Participantes 6