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

