Eu encontrei muitas pessoas que são dogmaticamente contra qualquer coisa que possa ser considerada "otimização" no sentido geral da palavra em inglês, e elas frequentemente citam literalmente a citação (parcial) "otimização prematura é a raiz de todo mal" como justificativa para a posição deles, o que implica que eles interpretam o que estou falando como "otimização prematura". No entanto, essas visões às vezes são tão ridiculamente arraigadas que descartam praticamente qualquer tipo de desvio algorítmico ou de estrutura de dados da mais pura implementação "ingênua" ... ou pelo menos qualquer desvio da maneira como fizeram as coisas antes.Como alguém pode abordar pessoas como essa de maneira a fazê-las "abrir os ouvidos" novamente depois que elas ficam impedidas de ouvir sobre "desempenho" ou "otimização"? Como discuto um tópico de design / implementação que afeta o desempenho sem que as pessoas pensem instantaneamente: "Esse cara quer passar duas semanas em dez linhas de código?"
Agora, a posição de "toda otimização é prematura e, portanto, má" já foi abordada aqui e em outros cantos da Web , e já foi discutido como reconhecer quando a otimização é prematura e, portanto , má , mas infelizmente, ainda existem pessoas no mundo real que não são tão abertas a desafios quanto à sua fé na antit Otimização.
Tentativas anteriores
Algumas vezes, tentei fornecer a citação completa de Donald Knuth para explicar que "a otimização prematura é ruim" ↛ "toda a otimização é ruim":
Devemos esquecer pequenas eficiências, digamos, 97% das vezes: a otimização prematura é a raiz de todo mal. No entanto, não devemos desperdiçar nossas oportunidades nesses 3% críticos.
No entanto, ao fornecer a cotação inteira, essas pessoas às vezes ficam mais convencidas de que o que estou fazendo é Premature Optimization ™, desenterram e se recusam a ouvir. É quase como se a palavra "otimização" os assusta: em algumas ocasiões, fui capaz de propor alterações reais no código para melhorar o desempenho sem que elas fossem vetadas, simplesmente evitando o uso da palavra "otimização (e | ação)" ( e "desempenho" também - essa palavra também é assustadora) e, em vez disso, usa alguma expressão como "arquitetura alternativa" ou "implementação aprimorada". Por essa razão, realmente parece que isso é realmente dogmatismo e não eles, de fato, avaliando o que digo criticamente e depois descartando-o como desnecessário e / ou muito caro.