Fellipe Henrique wrote:
> Olá João,
> 
> Seguinte, me falaram muito mal do IO, e além dele estar descontinuado, pesa
> na hora de fazer algo oficial com ele, e já me falaram (não sei se foi você
> :o)) que ele é muito lento também. Não posso dizer quanto a isso, pois ainda
> não consegui fazer nada em nenhum deles, a não ser o IO. Tentei achar na
> internet sobre esses frameworks, e não vi ninguém usando ele, deduzi o
> seguinte: ou tem muita gente usando, e não fala ou comenta. Ou realmente
> programação OO deste tipo não é usada ou não é boa para com Delphi.

Eu diria que é por comodidade. A maioria dos desenvolvedores Delphi está 
habituado com arrasto de componente, e nisso inclui projetos fáceis de 
aprender e usar. IO por exemplo é muito fácil, até o momento que você 
precisa de algo peculiar. Daí você tem que aprender um pouco mais sobre 
o framework e sobre oo, e boa parte dos programadores Delphi não têm 
paciência pra isso.

Pessoas como o Marcos, Cesar, Peter, Grahame, Nando e eu somos exceções. 
Todos aqueles que sentem falta de mapeamento OR e um pouco mais de 
orientação a objetos em pascal acabam trocando de time e partem para 
Java ou alguma ferramenta da moda. Como eu sou meio teimoso, preferi 
escrever minhas próprias classes do que esperar que alguém fizesse algo 
da forma que eu gostasse. E como tenho um caso extra conjugal com pascal...

Quanto aos problemas do IO tem um pouco de exageiro nessa história. 
Falar mal é fácil, dizer que é pesado é relativo. Na verdade ele é bem 
leve, mal possui 40 mil linhas de código. No entanto você pode acreditar 
em 3 coisas sobre ele quando te falarem: 1. é difícil de aproveitar base 
legada -- ele precisa de alguns campos de controle que não tem como 
tirar; 2. a persistência dele não é bem polida -- ou você usa 
containeres embedded ou você tem certa lentidão em modelos com algum 
grau de complexidade; 3. apresentação apenas via dbware -- ou seja, um 
raio de um tdatasource e outro raio de tinstantexposer ou selector para 
cada relacionamento (o que não é novidade pra quem vem do tdataset). Por 
outro lado você tem uma grande vantagem com ele: eu sou um dos 
mantenedores do projeto, se você encontrar um bug e conseguir criar um 
projeto que reproduza o problema, eu removo esse bug em algumas horas e 
atualizo o repositório -- o que mostra que ele está meio parado mas não 
está morto.

> O que quero na realidade, é algo que eu não precise ficar procurando erros,
> debungando, descrobrindo se usou o OnExit ou OnValidate pra validar algum
> campo, entende onde quero chegar? Queria algo mais forte, no sentido de
> priorizar as mudanças e facilitar elas, mesmo que não seja tão produtivo
> quanto ao DataSet, mas que quando um cliente pedir uma coisa, eu não ficar
> igual doido procurando onde tem amarrações e rezar pra não mudar algo que vá
> atrapalhar algo em outro lugar.

Entendo, você quer exatamente o que a orientação a objetos propõe. Saiba 
que isto tem um preço a ser pago: abrir mão do que você conhece como 
tdataset, e uma curva de aprendizado relevante. A propósito olha a sua 
contradição: você quer algo mais produtivo do que tdataset, mesmo que 
não seja tão produtivo quanto tdataset.

Vale destacar o fato de que um sdk possuir um expert não o torna nem 
melhor nem mais fácil de usar. A produtividade real virá com o fato de 
você conhecer como o produto funciona, bem como o produto ser flexível 
suficiente para conseguir concretizar os seus projetos, e não com o fato 
do produto escrever algumas classes por você.

E então comece escolhendo por eliminação. Como eu havia colocado antes, 
ninguém além de você, e talvez mais algum colaborador que trabalhe 
junto, poderá decidir o que é melhor. Isso é opinião pessoal, e elas são 
tão divergentes quanto a quantidade de opções que existem. Eu posso 
tirar suas dúvidas em IO e Press, estou certo de que o Marcos e o Cesar 
poderão te ajudar com Infra e Jazz respectivamente. Bold eu conheço 
lhufas, e talvez o Marcos ou o Cesar conheçam tiOPF suficiente para 
fazer alguns comentários também, mas suporte pra valer que eu saiba, só 
em inglês. Risque alguns, tire alguns dias para testar outros. Isso não 
é tão difícil, diga-se de passagem é até bem divertido. Depois não 
esqueça de contar para a lista como foi a experiência.

--
Joao Morais

Responder a