quinta-feira, fevereiro 16, 2006

Gerentes querem linguagem dinâmica e não sabem.

Ando trabalhando com Java e Ruby pra web recentemente e não dá pra evitar notar certas coisas. Em Ruby, posso alterar o servidor de produção sem parar nada. Em Java, se altero uma classe, toca reiniciar o servidor pra pegar alterações. Meu chefe fica muito P da vida toda vez que preciso subir uma correção e tenho que fazer isso. Ele fica me torrando pra usar JSP ao invés de classes Java pra não ter que reiniciar :| (Acho que ele gostaria que eu usasse uma linguagem de script e não sabe disso...) Em Ruby, se eu restarto o servidor de produção por algum motivo, ninguém perde sessão. No máximo a página fica fora alguns segundos. Tem gente que nem percebe... Em Java, tenho que ter o maior cuidado com isso :| Se restarto com muitos usuários online a aplicação redireciona todo mundo pra tela de login... Não que não dê pra fazer um esquema para persistir, o Tomcat até tem um. Mas não é default, tem que configurar e tudo que tem na sessão tem que ser serializable. Meu chefe, DE NOVO, me torra as paciências pra eu evitar restartar... (Continuo achando que ele quer é uma linguagem de script e não sabe). O que eu acho mais engraçado é que você vai procurar por session persistence e a primeira coisa que você acha é cluster de servidores. Será que ninguém pensou que serializar sessão é muito útil por si só? Vai ver, como sempre, sou simplista demais. Isso sem falar em regras dinâmicas muito loucas que apareceram em um projeto. Tive que usar o BeanShell (muito bom, aliás, bom MEEESMO), senão ia ficar maluco... O chefe adorou! (É... tenho _realmente_ a impressão que ele gostaria de usar uma linguagem de script) Não me entenda mal, eu gosto de Java, é uma boa linguagem. Mas é muito mais complicada do que poderia ser. Questões de design da linguagem, eu acho... Só sinto realmente falta de três coisas no Java: Closures, reflexão de verdade e um pouco menos de "estupidamente" tipado... Cansa ficar falando a mesma coisa o tempo todo pro compilador (Usuario usuario = new Usuario(); por exemplo.). Com generics então, que eu achei que ia facilitar isso, só deixou a coisa mais insana: Map<String, List<String>> map = new HashMap<String, List<String>>(); Experimente um Map de Map, então :D. Too much fun!

Nenhum comentário:

Postar um comentário