Cada programa se escribe para implementar requisitos funcionales que están fuera del programa, ya sea escritos o simplemente en la cabeza de alguien.
Creo que la función más esencial de los comentarios es establecer un mapeo entre los requisitos y el código. La razón por la que se necesita el mapeo es para permitir cambios incrementales. Cuando se produce un cambio en los requisitos, es necesario realizar los cambios correspondientes en el código, para que el código siga siendo una solución a los requisitos. Los comentarios sirven como una hoja de ruta para los cambios.
Si el lenguaje es un lenguaje específico de dominio (DSL) ideal perfectamente adaptado al problema que se está resolviendo, entonces el mapeo debería ser un simple isomorfismo y no serían necesarios comentarios. El código fuente simplemente indicaría el problema, y no sería necesario decir nada más. La solución del problema estaría enterrada en la implementación del lenguaje.
Dado que los idiomas en los que trabajamos no son DSL, y lo seguirán siendo durante algún tiempo, aún necesitamos comentarios . Es una cuestión de grado. A veces, el problema es una buena coincidencia con el idioma en cuestión, pero generalmente no.
Ver también...