Wheeler's aphorism

expressão

programação

'Todos os problemas da ciência da computação podem ser resolvidos com mais um nível de indireção', com o corolário popular: exceto o problema de níveis demais de indireção.

Atribuído ao pioneiro de Cambridge David Wheeler, coinventor da sub-rotina, o aforismo nomeia o movimento universal da área: interponha uma camada, um ponteiro, um proxy, uma máquina virtual, e o incompatível se torna compatível. O corolário não oficial traz a conta, já que cada camada adiciona latência, opacidade e um novo lugar para as abstrações vazarem. As pilhas modernas são o aforismo de Wheeler aplicado algumas dezenas de vezes, seguido de ferramentas de observabilidade vendidas para enxergar através do resultado.

Todos os problemas em ciência da computação podem ser resolvidos por mais um nível de indireção, atribuído a David Wheeler, que teria acrescentado a segunda metade crucial: exceto o problema de níveis demais de indireção.

A primeira metade é genuinamente verdadeira e é a ideia mais reutilizável da área. Memória virtual é indireção entre endereços e armazenamento, o DNS é indireção entre nomes e endereços, uma interface é indireção entre quem chama e a implementação, e um balanceador é indireção entre um serviço e as máquinas que o fornecem. Cada uma transforma um acoplamento rígido em algo que pode mudar sem coordenação.

A segunda metade é por que os sistemas ficam incompreensíveis. Cada camada custa desempenho e, mais importante, custa entendimento: uma requisição que atravessa oito abstrações é uma requisição cuja falha pode ter origem em oito lugares, e depurá-la exige segurar os oito modelos ao mesmo tempo. Esse é o limite real, e ele é cognitivo, não computacional, e é por isso que a disciplina útil é perguntar o que uma camada adicional compra antes de acrescentá-la, em vez de supor que mais uma sai de graça.

Também conhecido como: fundamental theorem of software engineering, another level of indirection

Todos os verbetes do glossário