Volver a citar por contexto y comprensión más fácil:
"La depuración es dos veces más difícil que escribir el código en primer lugar. Por lo tanto, si escribe el código de la manera más inteligente posible, por definición, no es lo suficientemente inteligente como para depurarlo".
Lo que Brian Kernighan escribió aquí obviamente se refiere a convolución, y utilizó la palabra ingeniosamente por error.
"La depuración es dos veces más difícil que escribir el código en primer lugar. Por lo tanto, si escribes el código lo más complicado posible, por definición, no eres lo suficientemente inteligente como para depurarlo".
Circunvolución:
A thing that is complex and difficult to follow.
Inteligente:
Showing intelligence or skill; ingenious
Los programadores educados saben que el código simple es ingenioso. El código que sea lo más inteligente posible debería ser simple por definición. Los programadores educados también evitarán trabajar y escribir código complicado como la peste. También convertirán el código complicado en código inteligente siempre que tengan la oportunidad. El código generalmente comienza enrevesado y aborda la inteligencia, ya que el conocimiento sobre el dominio y la comprensión de la capacidad cognitiva humana en la programación se entiende mejor a través de la experiencia y el conocimiento compartido.
Debido a la popularidad de esta cita y al hecho de que Brian Kernighan es bastante popular en la industria, este mal uso de la palabra tiene un impacto social negativo y, sinceramente, me gustaría ver que el hombre lo aborde. Antes de escribir este artículo, intenté ver si podía simplemente enviarle un correo electrónico, pero no pude encontrar ninguna información de contacto por correo electrónico que entendiera :(.
El impacto social negativo que he visto es que otros programadores excluyen a sus pares más inteligentes, porque ahora ven la inteligencia como un problema. El verdadero problema son los compañeros estúpidos que piensan que están siendo inteligentes al hacer las cosas de una manera unidiomática nueva, e inventando constantemente cosas nuevas cuando no hay ventaja en lugar de obtener y comprender a la comunidad en general y reutilizar las ideas inteligentes tanto como sea posible.
Sin embargo, necesito aclarar que, a menudo, obtener una comprensión es más difícil que inventar la suya. Debido al problema común en la industria de plazos poco realistas, inventar el suyo para su problema de nicho más pequeño se utilizará para ahorrar tiempo. Esto se basa en la observación de que las cosas útiles y reutilizables generalmente apuntan a un nicho más grande, o proporcionan una abstracción útil para la invención. También se basa en el hecho de que las personas se dirigen a grandes nichos para ganar más dinero, cuando a menudo esto hace que la herramienta sea extremadamente difícil de usar debido a la complejidad que implica hacer que algo sea utilizable para un área amplia de aplicaciones.
El otro impacto social negativo es que esto impide el progreso y el deseo de comprender porque en nuestro mundo egocéntrico inmediatamente negaremos nuestra propia falta de comprensión y descartaremos el código como complicado, incluso si, una vez entendida, la idea es realmente muy inteligente.
TODO Me gustaría citar algunas referencias, pero también me gustaría que la falta de referencias no impida mi capacidad de compartir información, así que citaré rápidamente lo que recuerdo como las fuentes de mi información y tal vez encontraré la información real. día (¡o puedes encontrarlo para mí! :)
- La charla de Guido Van Rossum sobre los bucles de eventos y cómo llegó a comprenderlos
- Un empleado de GitHub que declaró que evitan contratar personas inteligentes en Y-Combinator
- Gran parte de la discusión y el aprendizaje que se desarrolla en la comunidad Python. La comunidad de Python es especialmente crítica con las nuevas ideas, pero no descarta las nuevas ideas que no entienden de antemano, y normalmente puede ver las características que al principio se vieron como intrincadas, ver la luz del día como una característica / paquete de lenguaje central.
- Mi propia experiencia y opinión profesional basada en mis observaciones de 10000 pies. Sin embargo, realmente no puedo ver los detalles para iluminar desde el principio :( Espero que su experiencia y observación le digan lo mismo y alguien más pueda comentar a continuación para dar a esta respuesta algún mérito.
¡Siéntase libre de agregar sus propias citas! Además, siéntase libre de agregar comas a mi texto. No he actualizado mi conocimiento del uso de comas en inglés desde hace bastante tiempo ...