Definição de uma stack do contra
- Uma filosofia de desenvolvimento que escolhe deliberadamente tecnologias alternativas em vez das tecnologias dominantes
- Um conceito nomeado pelo autor como o oposto da stack padrão
- As escolhas do autor:
- Ruby: Rails → Sinatra + DataMapper
- JavaScript: Prototype → MooTools
- Python: Django → Werkzeug + SQLAlchemy
- Atualmente: React/Next.js → Solid/SolidStart
O crescimento trazido pelas dificuldades da stack do contra
- Como não havia respostas no Stack Overflow, foi preciso analisar o código-fonte diretamente → compreensão profunda da tecnologia
- Base de usuários pequena e pouco suporte da comunidade → crescimento como contribuidor de open source, com a satisfação de ter PRs aceitos
- Experiência do autor:
- Baixo nível de abstração do Werkzeug → aquisição da capacidade de construir frameworks in-house
- O processo chamado de "sofrer na unha" → conhecimento fundamental aplicável em qualquer stack
- Vantagem: insights técnicos profundos obtidos durante o processo de resolução de problemas
A vantagem de quem chega depois
- Experiência de design que reconhece os problemas da stack padrão e os melhora
- Exemplo: fine-grained reactivity do Solid (evita o overhead do DOM virtual do React)
- Ganho inesperado: entender o "porquê" da tecnologia e adquirir senso para projetar arquiteturas melhores
O valor oculto de uma stack montada por peças
- Stack padrão: um pacote completo e conveniente
- Rails(CoC), Django(Batteries Included), Next.js(full stack)
- Stack do contra: escolha de cada componente e montagem manual
- Exemplo do autor: Sinatra + DataMapper + Haml + Sass
- O trabalho árduo de configurar cada peça e conectar os middlewares
- Vantagem: compreensão completa do funcionamento interno da tecnologia e das interações entre camadas
Lição histórica
- O padrão de hoje também já foi o do contra no passado (Rails → alternativa ao Java, React → alternativa ao Backbone.js)
- Vantagem: posição de pioneiro para experimentar e entender primeiro as tecnologias que serão dominantes no futuro
A oportunidade paradoxal na era dos LLMs
- Reforço da vantagem das stacks padrão (o ChatGPT domina Next.js, mas conhece pouco SolidStart)
- Vantagem: especialização em áreas em que os LLMs não conseguem atuar bem se torna um diferencial competitivo ainda maior
- Um caminho de crescimento para se tornar um engenheiro de verdade, e não apenas um usuário de frameworks
2 comentários
Nunca achei que o SQLAlchemy fosse do contra, mas é curioso.
Acho que você provavelmente estava se referindo ao Werkzeug, e não ao SA. Normalmente usam Flask ou FastAPI, né? Ir na contramão até no ORM não é tão fácil assim.