Porque eu deixei de usar node e voltei a desenvolver em Perl Catalyst

Passei há uns dois anos a desenvolver sites usando Javascript em Node. A decisão na época foi tomada com o intuito exploratório, de aprender a usar a ferramenta, já que ela trás algumas vantagens que eu não tinha usando Catalyst, como o atendimento assíncrono das requisições. De fato, Node permite que muitos hits possam ser servidos sem que o uso de memória do servidor suba consideravelmente. No entanto, o preço a se pagar por isso é a falta de produtividade. Usando Catalyst + DBIx::Class, é inegável que a produtividade é muito alta. O processo de modelagem de banco de dados, criação do esquema de objetos, e seu uso no ecossistema gera uma economia de tempo que eu não consegui parear enquanto desenvolvi na outra tecnologia. Sinto falta de algumas coisas, claro. A resposta assíncrona é uma delas. A outra são os templates Jade que são o padrão quando se usa o framework Express. Neste caso, bastaria que houvesse um módulo Perl correspondente e o preço da transição seria próximo de zero.

Para quem está em dúvida entre Perl e Javascripts para desenvolver sites do lado do servidor, eu não posso recomendar esta última tecnologia. Mais ainda, na dúvida entre Mongo e um banco de dados relacional, a escolha ainda está com esta segunda. Não que não haja uso para NoSQL. No entanto, a não ser que seu site venha a ter um volume de acessos muito alto, ainda vale a pena fazer o projeto pensando em bancos relacionais. O preço de se usar Mongo é que muitas coisas, que seriam feitas trivialmente em SQL, demandam uma ginástica de código para serem implementadas. Quando há pressão para entregar um protótipo funcional em curto intervalo de tempo, a não ser que você já seja extremanente fluente em NoSQL, não vale a pena.

A verdade é que poucos sites precisam realmente de otimização tão prematura. A melhor coisa a se fazer é colocar rapidamente a ideia em produção. Se ela sobreviver e chegar ao ponto de causar preocupações reais sobre performance, você é um felizardo!

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">