Os comentários do Phillip no blog do Vitor só me fazem rir de alguém considerar o prevayler para nada que brinquedos. Digo isso por duas razões, pela experiência dos projetos que passei e pelo fato de Java ser uma das piores linguagens possíveis para se implementar prevalencia. Pelos projetos eu eu passei, sempre existiram requisitos que inviabilizam seu uso e quanto a Java, bom, basta olhar para o lado para entender.
Curiosamente volume de dados nunca foi a razão pelo qual o prevayler não tinha razão. Uma delas foi latência e tempo médio de resposta, mas como pode isso ocorrer se o prevayler é tão super mais rápido nas consultas? Simples, o enorme uso de heap tornava o tempo de garbage collection proibitivo, um SGBD usa memória de maneira muito mas eficiente sob o viés do tempo para dar manutenção nela, esse sistema terminou com uma JVM usando 64Mb e a base toda dentro do cache do banco de dados. Outro problema foi confiabilidade, o log do prevayler não é protegido de partial writes e usa statement based logging, que não permite recuperação parcial, então se tua controladora corromper o meio do teu log, você se lascou. Porém o maior problema do prevayler é o desenvolvimento com equipes distribuídas ou de médio porte em uma estrutura matricial de projetos, isto é, o esforço de coordenar schema evolution é massacrante, não existe como compartilhar facilmente uma base de dados e a integração entre projetos é infernal.
Quanto ao fato de Java ser uma péssima escolha, primeiro pelo fato de não ser uma linguagem baseada em imagem, como smalltalk ou factor, na qual salvar a imagem da heap toda é tão difícil quanto chamar um único método, você não tem que se preocupar com criar toneladas de Commands e transações com rollback são possíveis de ser criadas usando STM(Software Transactional Memory) ou simplesmente alguns become(). Outro problema é que criar buscas complexas com Java é um desastre, muito difícil de bater álgebra relacional ou simplesmente SQL nisso, nesse ponto linguagens funcionais dão um show no Java que beira a humilhação, aplicar predicados e transformações sobre coleções, criando e processando tuplas é super simples, é arroz-com-feijão.
No geral, eu vejo o prevayler com um brinquedo educacional para se aprender sobre serialização e só, usar profissionalmente não é interessante do aspecto que vai significar muito provavelmente trabalhar em projetos desintessantes ou mentalmente castrantes. Klaus e companhia que me desculpem, mas esse tipo de problema eu passo adiante, prefiro ficar com os mais divertidos e interessantes.
0 responses so far ↓
There are no comments yet...Kick things off by filling out the form below.
Leave a Comment