O significado de tecnologia chata (boring tech)
- Dizer que o NetBSD é "chato" é o maior elogio possível
- O que administradores de sistemas querem é previsibilidade, não surpresas
- Dizer que uma tecnologia é chata significa que ela é altamente confiável
- Resultado de muita gente ter testado e otimizado
- Baixa probabilidade de comportamento inesperado ou problemas por falta de documentação
- Em caso de problema, existe comunidade ou material para pedir ajuda
A complexidade do ambiente tecnológico
- A tecnologia não existe isoladamente e interage com diversos sistemas
- Quanto mais componentes houver, maior a chance de surgirem problemas inesperados
- Tecnologia nova nem sempre é a melhor opção, e tecnologia estável e comprovada pode ser uma escolha melhor
- Há casos em que um cluster Kubernetes foi substituído por algumas máquinas virtuais, aumentando a estabilidade
Contra-argumentos e interpretações sobre "tecnologia chata"
- Argumento de Robert Roskam
- A suposição de que tecnologia "chata" = tecnologia que existe há muito tempo pode estar errada
- Popularidade não garante compreensão
- Tecnologia antiga nem sempre é fácil de manter (ex.: sistemas COBOL)
- Refutação
- Ser antiga não a torna chata (ex.: Oracle é complexa e difícil de manter)
- BSD é uma tecnologia chata, mas não é tão popular quanto Linux
- O importante não é a idade, e sim a maturidade (
maturity)
Conclusão: tecnologia chata = tecnologia madura
- Tecnologia antiga ≠ tecnologia madura
- Tecnologia madura = tecnologia com acúmulo de código, documentação, comunidade e experiência operacional
- Dizer que o NetBSD é chato é o maior elogio, no sentido de alta confiabilidade e estabilidade
5 comentários
A expressão “tecnologia chata” pode soar um pouco negativa, então “madura” parece uma boa forma de dizer isso.
A Oracle é complexa e difícil de manter :(
Um relacionamento entediante não é um relacionamento antigo, e sim um relacionamento maduro
Lembrei deste texto que saiu no GeekNews antes
Depois de 10 anos na indústria, tópicos de desenvolvimento de software sobre os quais mudei de opinião (https://pt.news.hada.io/topic?id=19081)
Java é uma linguagem excelente justamente por ser sem graça
Opinião do Hacker News
Acho que tecnologia entediante é boa porque permite focar na tecnologia real do produto. Ao operar um app SaaS, considero que estou fazendo trabalho de ponta em várias áreas relacionadas ao produto. As coisas que funcionam "nos bastidores", como banco de dados ou framework de backend, prefiro manter o mais entediantes e estáveis possível. Quando trabalho sozinho em um projeto, meu tempo é muito limitado. Em vez de mexer em partes com as quais o cliente não se importa, quero gastar esse tempo desenvolvendo novos recursos interessantes do produto. O cliente não sabe nem se importa se eu uso Deno ou Bun em vez de Node, ou pnpm em vez de NPM. O que ele sabe é o quão bem meu app funciona e quais recursos ele tem
Concordo com essa opinião, mas quero apresentar a perspectiva oposta com base na minha experiência pessoal. Em muitas situações, alguém chama de escolha "entediante" quando quer que a organização adote o seu jeito, isto é, suas preferências pessoais de software. Ao chamar de entediante, essa pessoa caracteriza sua preferência como uma decisão madura e óbvia, amplamente aceita pela maioria, e trata qualquer alternativa como se fosse apenas engenheiros de software correndo atrás de novidades brilhantes. A verdade quase sempre é mais complexa. As duas soluções têm vantagens e desvantagens. Elas trocam valores que ressoam mais ou menos com pessoas diferentes. Devemos tomar cuidado com a afirmação de que "é entediante, portanto obviamente é melhor". Isso não deve virar uma forma de substituir a preferência dos outros pela sua sem uma discussão aprofundada. Caso contrário, não passa de mais uma tentativa arrogante de vencer um debate sem apresentar argumentos substanciais
Eu gostaria de acrescentar "estável" à ideia de tecnologia "entediante". Especialmente no sentido de que "estável" não significa "não trava", mas sim "não muda". Em geral, vemos isso em coisas antigas e já estabelecidas. Mas nada garante isso. Muitas vezes, isso é resultado de certas decisões tomadas pelos mantenedores da tecnologia. Isso frequentemente pode ser explicado em termos de compatibilidade retroativa. É uma ação clara que se pode perseguir para obter estabilidade. No entanto, também pode ser vista como algo que limita bastante o escopo. Por exemplo, gostamos de falar sobre escala, mas não precisamos projetar e construir para uma escala que talvez nunca veremos
O debate eterno não é entre velho e novo, nem entre entediante e empolgante. Maturidade é maturidade, independentemente da idade. Um sistema que quebra quando você atualiza dependências, introduz comportamentos inesperados por causa de padrões ambíguos ou obriga você a navegar por camadas de abstração não é maduro... (estou olhando para Spring e o ecossistema Java), é velho e instável. Estabilidade, previsibilidade e simplicidade bem projetada definem maturidade, não a idade por si só. Python é maduro e entediante? Há problemas de toolchain e vários tipos de dor de cabeça... Linguagens mais novas como Go ou Rust resolvem todos esses problemas de toolchain e as tornam verdadeiramente entediantes da melhor forma possível
O entediante só é bom enquanto você não estiver procurando emprego. Se você se apega demais a tecnologias entediantes, corre um grande risco de se excluir gradualmente do mercado de trabalho. O próximo empregador não vai se importar que você tenha entregado excelente valor de negócio. A maioria quer novidades brilhantes. Quando leio os anúncios do meu empregador atual, não acho que eu seria contratado
No GitHub, é difícil distinguir se um projeto está maduro ou morto. Commit, seja para o que for, é um sinal de que alguém está olhando, mantendo e provavelmente resolverá novos problemas rapidamente. Isso significa que o novo sempre terá vantagem nesse aspecto
Ninguém foi promovido ou contratado por usar tecnologia entediante. Acho que a razão de eu não receber resposta para muitas candidaturas é que a maior parte do que fiz era "entediante", e a maior parte do código open source que escrevi era shell script. Tudo funciona muito bem, sem bugs e praticamente sem custo de manutenção, mas não é atraente. O elitismo intelectual definiu meu papel ("DevOps Engineer" é literalmente "administrador de sistemas na nuvem", mas não podemos dizer isso porque deveríamos <i>ter vergonha</i> de administrar sistemas); tenho certeza de que, se meu currículo tivesse mais "Go e Rust" do que "Python e Shell", eu seria contratado imediatamente
Tecnologia entediante faz o trabalho ser concluído e nos permite focar no problema que estamos tentando resolver, em vez de nos fazer trabalhar em coisas desnecessárias
Eu ia fazer um Ask HN sobre esse tema, mas acho que este post é um ótimo lugar para fazer minha pergunta. Qual tecnologia é tão entediante para você que se tornou impossível não usar? Há quanto tempo você a usa? Para mim, são coisas como Vim, C, Python, Fedora e mutt, que uso há 25-30 anos. E você?
Uso tecnologia nova se os benefícios superarem os riscos. O desafio é avaliar as evidências. Tecnologias novas alardeiam suas vantagens, mas as desvantagens não são divulgadas com a mesma força e muitas vezes só são descobertas depois do investimento. "Entediante" ou "empolgante" é um enquadramento errado