Comecei minha carreira como um “desenvolvedor web” por volta de 2007. Eu havia me envolvido anteriormente com JavaScript, enquanto fazia sites em HTML/CSS bem cedo, no ensino médio, mas esse foi meu primeiro emprego de verdade como um desenvolvedor de software. Naqueles dias, LAMP (Linux/Apache/MySQL/PHP) era a única maneira sensata para construir uma aplicação web. Claro que você poderia usar servlets Java, ou construir aplicações usando CGI, mas quando o PHP se tornou estável, disponível e simples, ele rapidamente se tornou a escolha óbvia para uma enorme gama de aplicações.
Eu estou dizendo isso porque outro dia me deparei com esta pergunta no Quora, de um velho desenvolvedor PHP/MySQL que estava voltando para o jogo, e queria saber o que estava sendo usado no momento. Havia um grande número de respostas diferentes (das quais a minha resposta foi, obviamente, a melhor), mas o que visivelmente se repetiu foi a ideia do stack “MEAN”.
Então, por que MEAN?
MEAN é uma stack que consiste em MongoDB para armazenamento de dados, Express.js para backend, Angular.js para frontend e Node.js para servidor/plataforma. É uma stack de tecnologia perfeitamente boa, tenho certeza, mas para mim não parece tão excepcional. Afinal, MongoDB tem drivers para praticamente qualquer linguagem que você gostaria de usar, Express.js também tem equivalentes, e Angular não se importa nem um pouco com a linguagem que você usa no backend. Realmente, todo o esforço só parece uma maneira de tornar o desenvolvimento Node.js mais fácil e/ou mais padronizado, mas parece ter emperrado por algum motivo.
Então, por que MEAN? Eu sinto que MEAN é um meme que nasceu de desenvolvedores confrontados com um paradoxo de escolha. Há muitas formas populares, comprovadas e aceitáveis para a construção de uma aplicação web no momento, cada uma com seu próprio conjunto de vantagens e desvantagens, mas todas plenamente aplicáveis a casos em geral.
Na última edição do Web Framework Benchmarks, Techempower testou 162 frameworks, distribuídos entre 25 linguagens de programação e rodando em 69 plataformas. Todas essas são maneiras como as pessoas estão realmente usando para escrever aplicações web. Não é que Express ou Node seja a opção com mais alto desempenho (eles são ok, tendendo a acabar perto do meio do bloco em torno de 10% da opção mais performática) e definitivamente não é o mais expressivo (compare express.js com flask, que tende a ter a performance aproximadamente tão boa).
Para a maioria dos projetos que estão começando, antes que os verdadeiros gargalos de desempenho da aplicação estejam perto de serem entendidos, MEAN é apenas uma de um verdadeiro universo de escolhas perfeitamente boas. Destaca-se por nenhum motivo, salvo o número de artigos (e respostas no Quora, aparentemente), divulgando-o como a próxima grande coisa. MEAN é a próxima coisa aceitável. No momento em que a sua aplicação está começando a ter problemas, você deve ter conhecimento suficiente sobre a natureza dos seus problemas, para que você possa fazer uma escolha acertada de armazenamento de dados/linguagem/plataforma/arquitetura do aplicativo.
Três anos atrás, quando comecei a Tapstream, o produto era totalmente uma aplicação Django/Postgres. Agora, o núcleo é implementado em Java com Cassandra como um armazenamento de dados canônico, utilizando uma variedade de big-data e web frameworks para diferentes componentes, com uma única página (ha! isso é grande) dashboard Ember.js rodando com um backend Flask REST (embora ele ainda esteja usando o mesmo banco de dados Postgres como sempre (ignorando as questões Ship-of-Theseus no uso da palavra “mesmo”)). Se a sua aplicação durar até 3 anos de crescimento, eu garanto que você vai experimentar uma transformação similar.
Então, o que eu faço?
Se você precisa manter as aparências, na minha opinião, esta é a próxima grande coisa em desenvolvimento web. Caso contrário, você deve experimentar as opções disponíveis e encontrar algo que funcione para você! Quanto mais coisas você tentar, melhor a decisão que você vai tomar quando realmente tiver que tomar uma com base em trocas técnicas reais.
A escolha é, e sempre será, sua!
***
Adam Bard faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://adambard.com/blog/the-web-is-a-mature-platform