¿Por qué son importantes los comentarios en el código?

Muy interesante la explicación que he encontrado en ¿Qué es una máquina?:

El punto clave es que no hay ningún experimento imaginable que sirva para determinar cuál de estas hipótesis es la correcta. La única forma de saber con certeza cuál era la intención del fabricante, y por tanto para qué sirve el artefacto, es preguntar al propio fabricante (una forma de preguntarle es leer el manual de instrucciones o atender a otras manifestaciones públicas de su intención). Puede ocurrir, incluso, que la finalidad del artefacto fuera ser regalado como motivo decorativo, por tanto su exactitud para medir el tiempo sería irrelevante.

No es posible determinar la función prevista y deseada de un artefacto a partir de la observación de su funcionamiento efectivo, precisamente porque la mera observación no puede distinguir el funcionamiento defectuoso del correcto. Es decir, el control de calidad, que es otra de las tareas primordiales de la ingeniería, solo tiene sentido una vez conocida la finalidad del artefacto en cuestión. Una máquina solo se entiende desde su finalidad –aunque no la cumpla–, y solo desde su finalidad se puede juzgar si funciona bien o mal. ¿Qué es un abrelatas que no funciona? Para conocerlo como abrelatas no basta examinar su funcionamiento, puesto que, precisamente, no funciona bien…

[…]

Otro ejemplo bastante claro lo tenemos en el software. Si los comentarios en un programa son tan importantes, es porque declaran la intención del programador con respecto a un fragmento de código, algo que a menudo no es tan fácil de comprender examinando el código del programa en sí, ni observando la ejecución del programa.

De todo esto podemos concluir que el método científico-experimental, en sentido estricto, es insuficiente para averiguar para qué sirve un artefacto, es decir, para hacer ingeniería inversa, por mucho que la ingeniería inversa sea una parte habitual del trabajo de un ingeniero. El método científico-experimental es, por sí mismo, insuficiente para definir, comprender y construir cualquier máquina.

Profesor del Departamento de Lenguajes y Sistemas Informáticos de la Universidad de Alicante (España). Interesado en el desarrollo y la accesibilidad web.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.