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

Responder a