Uma epifania de software
Uma postagem pessoal de blog sobre “programação como construção de teoria” argumenta que o verdadeiro trabalho do desenvolvimento de software é construir e manter modelos mentais ricos de um sistema, o que explica por que código legado é difícil de alterar, por que desenvolvedores solo às vezes podem superar equipes e por que reescritas frequentemente parecem mais fáceis do que o onboarding em uma base de código existente. Os leitores, em grande parte, concordam com a ideia central, relacionando-a a conceitos como modelos mentais, integridade conceitual, qualidade da documentação, conhecimento de domínio e até como o código gerado por IA pode virar uma “caixa-preta” sem uma teoria correspondente. No entanto, muitos se incomodam com um widget animado de notificação no site que rastreia visitantes ao vivo, o que provoca fortes críticas à experiência do usuário, soluções alternativas como modo leitor e filtros de bloqueio de anúncios, e acaba levando o autor a remover o recurso e explicar a intenção original por trás dele.
UX do site e pop-up de notificação
- A maioria dos comentários se fixa em um fluxo de notificações de “visitantes ao vivo” na parte inferior da página.
- Muitos o descrevem como distrativo, indutor de “enjoo”, até um risco de epilepsia; alguns se recusam a ler o artigo por princípio.
- Soluções sugeridas: modo leitor do navegador, regras do uBlock/NoScript, cobrir fisicamente a parte inferior da tela.
- Alguns argumentam que os usuários não deveriam ter de “consertar” a UX de um blog; outros dizem que o artigo é bom o suficiente para justificar pequenos contornos.
- O autor mais tarde aparece no fio, explica a intenção (fazer o site parecer “vivo” e destacar implicações de privacidade) e relata que o recurso foi removido após a reação negativa.
Debate sobre terminologia: “teoria” vs “modelo”
- Vários comentaristas acham “teoria” confuso e sugerem “modelo”, “modelo mental”, “abstração” ou “compreensão” como termos mais claros.
- Outros defendem “teoria” no sentido de Ryle/acadêmico: uma estrutura interna, parcialmente inexprimível, que permite ação habilidosa.
- Há alguma troca semântica sobre se uma teoria precisa ser comunicável e como ela difere de intenção ou conhecimento de domínio.
Software como teoria / meio de conhecimento
- Muitos se identificam com a ideia de que o ativo crucial é a teoria mental compartilhada por trás do código, não o código sozinho.
- Isso é usado para explicar:
- Por que sistemas legados são difíceis de mudar.
- Por que desenvolvedores solo, com compreensão de todo o sistema, podem superar equipes maiores.
- Por que reescritas parecem mais fáceis do que o onboarding em código desconhecido.
- Alguns discordam, argumentando que o “produto” real é o resultado/saída de negócio, com a teoria como um ativo importante, mas secundário.
Código legado, documentação e compreensão coletiva
- Vários descrevem experiências reais de reconstruir a teoria a partir de sistemas legados mal documentados.
- Alguns insistem que boa documentação e histórico de versões podem capturar grande parte da teoria ausente; outros dizem que a teoria nunca pode ser totalmente externalizada.
- Ênfase de que a compreensão costuma ser coletiva, distribuída entre equipes, e não concentrada em uma única mente.
Codificação assistida por IA
- Um fio relaciona o conceito de teoria ao desconforto com geração de código por IA: a saída da IA parece uma “caixa-preta” sem uma teoria interna.
- Outros sugerem um padrão de interação em que a IA ajuda a construir código e explicações iterativamente, de modo que o humano ainda forme uma teoria funcional.