Me he encontrado con muchas personas que están dogmáticamente en contra de cualquier cosa que pueda considerarse "optimización" en el sentido general de la palabra en el idioma inglés, y muy a menudo citan textualmente la cita (parcial) "la optimización prematura es la raíz de todo mal". como justificación de su postura, lo que implica que interpretan lo que estoy hablando como "optimización prematura". Sin embargo, estas opiniones a veces están tan ridículamente arraigadas que descartan casi cualquier tipo de desviaciones algorítmicas o de estructura de datos de la implementación "ingenua" más pura ... o al menos cualquier desviación de la forma en que han hecho las cosas antes.¿Cómo puede uno acercarse a las personas de esta manera para que vuelvan a "abrir los oídos" después de dejar de escuchar sobre "rendimiento" u "optimización"? ¿Cómo discuto un tema de diseño / implementación que tiene un impacto en el rendimiento sin que la gente piense instantáneamente: "Este tipo quiere pasar dos semanas en diez líneas de código?"
Ahora, la postura de si "toda la optimización es prematura y, por lo tanto, malvada" o no ya se ha cubierto aquí , así como en otros rincones de la Web , y ya se ha discutido cómo reconocer cuándo la optimización es prematura y, por lo tanto , mala , pero desafortunadamente todavía hay personas en el mundo real que no están tan abiertas a los desafíos a su fe en Anti-Optimization.
Intentos anteriores
Algunas veces, he intentado proporcionar la cita completa de Donald Knuth para explicar que "la optimización prematura es mala" ↛ "toda la optimización es mala":
Deberíamos olvidarnos de las pequeñas eficiencias, digamos alrededor del 97% del tiempo: la optimización prematura es la raíz de todo mal. Sin embargo, no debemos dejar pasar nuestras oportunidades en ese crítico 3%.
Sin embargo, al proporcionar la cotización completa, estas personas a veces se convencen más de que lo que estoy haciendo es Optimización Prematura ™ y profundizan y se niegan a escuchar. Es casi como si la palabra "optimización" los asustara: en un par de ocasiones, pude proponer cambios reales en el código para mejorar el rendimiento sin que fueran vetados simplemente evitando el uso de la palabra "optimiz (e | ation)" ( y "rendimiento" también, esa palabra también da miedo) y en su lugar usa alguna expresión como "arquitectura alternativa" o "implementación mejorada". Por esta razón, realmente parece que esto realmente es dogmatismo y no ellos, de hecho, evalúan lo que digo críticamente y luego lo descartan como no necesario y / o demasiado costoso.