João, as vezes acho que estamos tentando plantar estas coisas em terreno infértil, o pessoal ainda nao acordou para reuso nem orientação a objetos, poucos faculdades e professores sabem realmente sobre o assunto e quando sabem, nao conseguem demostrar na prática como ficaria, nem quais os benefícios reais que OO pode trazer.
1) OO é solução para tudo? Não, mas ajuda e muito no desenvolvimento, virtualização do negócio do cliente com mais eficiência e acima de tudo na manutenção do sistema. Não que nao se consiga boa parte disso usando RAD com dataware (que eu particularmente acho produtivo tambem, mas infelizmente faz com que a maioria dos programadores acoplem as camadas, alem do problema de não ter controle sobre a sincronia dos dados) 2) Você utiliza OO? Ainda não, trabalho em um framework OO chamado Infra similar ao Press mas nao posso utilizar ainda pela falta da persistência (poderia usar o jazz, depo, tiopf, IO para isso, mas acho que nenhum deles segue o projeto que já tenho em mente para o Infra). Alem disso sei que usar agora seria aumentar o trabalho pela falta de uma ferramenta, expert ou wizard que facilite o desenvolvimento (acho que com estes recursos, desenvolver de forma OO vai dar um banho no desenvolvimento tradicional). Esta coisa de ser mais produtivo é bem relativo. Vc pode jogar os componentes no form, enfiar código em eventos ligar tudo visualmente e gastar um dia ou dois montando uma tela. Foi prodivo? sim foi. Se fosse fazer em OO com o que temos hj disponível poderia levar 3 dias. mas na próxima tela nao seria necessário mais 2 dias. E nao estou falando aqui de CTRL+C e CTRL+V como muito programador faz com suas telas hj em dia. Já tive muitos problemas em se fazer isso na minha empresa. Pessoal pega telas complexas cheias de código e simplesmente duplicava para montar um form similar, perdendo tempo demais procurando erros de ter componentes ou código fazendo ou apresentando coisas indevidas. Perdiamos muito mais tempo do que se tivessemos pegado o form do zero e montado. Alem disso tem a questão de testes. Automatizar testes é muito fácil em OO mas no desenvolvimento tradicional... hummm. uma desgraça. Segue-se o velho modelo: compila - testa - não funciona - compila - testa.... Alem disso, quando se muda alguma coisa no código vc dificilmente faz todos os testes que já fez manualmente até hj, isso com testes automatizados nao aconteceria e vc teria a certeza (ou quase) que seu software nao está sendo entregue com novos bugs ou bugs que já havia sido corrigidos. Depois de toda esta discussão joão eu percebo que o pessoal só vai se interessar quando pudermos mostrar que será mais eficaz (RAD) do que a forma que é feita hj. E isso é uma pena, por que acho que a galera não deveria ficar esperando não, deveria investir um pouco nisso por que a tendência é geral. Veja o Java e .Net, estas linguagens já forçam os programadores a programar de forma OO, claro que os programadores podem misturar as camadas? sim podem, tem ameba pra tudo. Mas o Java e o .NET já nasceram focados em OO, enquanto a Borland para poder espalhar (vender) o Delphi, focou no desenvolvimento RAD estruturado, e se pegarmos os livros de delphi então, puts. A bíblia do Delphi por exemplo, Cantú sabe tanto e ainda nao mudou a abordagem daquele livro. A comunidade sabe pouco sobre OO, pouco sobre seus benefícios, etc... Estão todos esperando para ver no que vai dar. E quem espera sempre alcança né mesmo? Talvez, Só que estará absoleto e anos atrás de quem já começou a experimentar a OO. Eu hj programa datasnap estruturado, e depois que comecei o Infra eu olho para meu código e falo, poxa se fosse OO.... nao estaria fazendo isso. Mas, cada cabeça seu guia. Espero que o povo acorde. Para de ficar falando que é produtivo ou não e tente realmente entender o porque das coisas. Ah! já ia me esquecendo. Quanto a produtividade, que tal esta: O Infra pretende ser inteligente o suficiente para poder montar as telas sozinho com base em algorítimos de IA que vão aprendendo com os ajustes feitos pelo programador. A partir da segunda tela o bicho já vai começar a entender a estrutura que o programador utiliza e já propoe a nova tela. se o usuário nao gostar ele ajusta, e o infra guarda estas novas informações para a próxima tela, acredito que da 3 tela em diante vc nem precise mais ajudar nada! E nao precisou por nenhum componente no Form, ou colocar qualquer codigo em seus eventos. hehehe, quer produtividade? Engula isso. E isso só será possível com uma boa base OO, tente fazer isso com RAD estruturado pra ver.... É isso