sexta-feira, 25 de maio de 2007

A casa caiu - o início

Este blog será dedicado a parte técnica da minha vida, ou seja, trabalho. Ou coisas relacionadas, como nerdices ou geek-ices.

A apresentação inicial:

Sou um maluco que fez Ciência da Computação na boa e velha Maringá, na UEM, que na época tinha lá seus problemas, mas era muito boa. Hoje em dia, parece que os problemas aumentaram, mas não estou lá pra afirmar nada, então considere isso só boato.

Fiz mestrado aqui na UFSC, Florianópolis, ilha que muita gente acha que é o paraíso, mas que eu acho mais próximo é das profundezas abissais. Fiz no departamento de engenharia elétrica, que apesar do nome, mexe muito com computação. Por que não fiz em Computação? Porque na elétrica tinha mais bolsas XD

Logo antes de defender a tese (uma semana antes, na verdade), entrei na Celesc, empresa de distribuição de energia de SC (ou companhia de luz, como alguns preferem =D ).

E hoje aqui estou, trabalhando, morcegando, trabalhando, morcegando, não necessariamente nesta ordem, nem nestas proporções.

É isso, vamos começar.

Caché - problemas

Só pra contextualizar: aqui eu trabalho (também) com a plataforma de integração Ensemble, que por sua vez é construída em cima do BD Caché.

Copiando de um post que fiz no fórum da Intersystems (a criadora das duas ferramentas acima citadas), alguns dos (muitos) problemas:

/****************************

Bem, não vou afirmar nada quanto a parte de gerenciamente de dados do Caché, pois Banco de Dados não é a minha área de atuação/pesquisa, nem fiz testes relevantes a esse respeito. Mas quanto a outras questões, vou colocar alguns pontos aqui.

Primeiro estou me baseando na versão que utilizo, a versão do Caché que vem junto ao Ensemble 4, creio que seja a versão 5 alguma coisa XD

Quanto a parte de documentação, já vi piores (as inexistentes, por exemplo). Mas a documentação da Intersystems está muuuuito longe do nível das documentações da Sun com o Java, por exemplo, ou no âmbito de BDs, da Oracle. A documentação além de ser fraca, é estruturada de maneira confusa, e parece que os técnicos não dão muita manutenção nos documentos.

Só pra citar um exemplo, nesta versão que utilizo, os webservices têm opção de implementação de segurança, possivelmente a parte ws-security do stack ws-*. Possivelmente, você pergunta? Sim, porque não encontrei nada nas referências, nem nos tutoriais, só na listagem de classes (que não diz nada e que por sinal, é horrível - por favor, inspirem-se nos javadocs da sun e cia) [EDIT: pra quem não sabe, a listagem de classes do Caché é uma espécie de 'javadoc'], e creio que implemente o ws-security por causa das mensagens de erro que ele joga, quando não utilizo nenhum esquema de segurança (como era padrão na versão anterior).

Anteriormente [em outro post no fórum] foi citada a migração de ferramentas de administração do Caché para a web, como o Sql Manager. Posso dizer que apesar da roupagem nova, com interface web, as funcionalidades continuaram praticamente as mesmas. Ou seja, na minha opinião, piorou, já que a interface web é mais lenta e exige mais hardware, só pra ter uma interface bonitinha (e nem tão mais funcional que a antiga). Do ponto de vista de desenvolvedor, piorou. Se eu fosse usuário comum, talvez a opinião fosse outra.

Concluindo, como banco de dados, não tive problemas com o Caché, apesar de não usá-lo extensivamente com esse fim. A performance foi boa, mas no volume de dados com que trabalho, isso já é esperado de qualquer BD decente. Agora afirmar que ele tem performance semelhante a outros bancos, é no mínimo ingênuo, sem um trabalho muito grande de comparação, com uma metodologia bem definida e parâmetros claros. Neste sentido, nunca vi trabalho nenhum, e se alguém souber de algum, por favor, indique. Mas veja bem, quero um trabalho com metodologia clara, que eu possa simular ou replicar pra comprovar os resultados. "Papers" das empresas fabricantes normalmente passam longe disso.

Agora, o Caché como arquitetura para desenvolvimento de aplicações, deixa muito a desejar. Muito mesmo. Fora os pontos que eu citei acima, a linguagem também não ajuda. Pra uma ferramenta que se gaba de ser OO, não ter um tratamento de exceções decentes (como é o caso - try catch? pra que isso, não?), é no mínimo, decepcionante. (Ouvi dizer que isso já está sendo melhorado nas versões mais novas, mas não fui conferir.)

Terminando: como desenvolvedor, eu escolheria o Caché? Não. A ferramenta tem seus prós e contras, como outras. Mas para mim, os seus contras pesam muito mais que os prós.

************************/

Como diz o meu amigo "Cleiton", a casa caiu, mano