domingo, agosto 13, 2006

La importancia en la claridad del código

No soy un experto programador. Simplemente me apasiona el oficio y sólo me considero un aprendiz en tal arte. Hace poco hice unas pequeñas modificaciones sobre una aplicación llamada moregroupware, escrita en php. Eso no es del otro mundo y fue relativamente fácil. Pero precisamente fue fácil, debido a que la aplicación ha sido programada muy claramente; de hecho el código no está muy comentado pero está escrito de forma clara. Cada nombre de variable, función o clase tiene nombres que permiten deducir su rol dentro del sistema. Además los nombres de las tablas en las bases de datos permiten entender su uso. Todo ello me llevó a pensar en la importancia de escribir código de forma que se entendible por otros. En el caso del Software Libre, es algo muy importante. Cuando un proyecto de desarrollo está disponible para el que quiera y se espera la colaboración de los interesados, mucho del éxito de dicho proyecto dependerá en gran medida de la claridad en el código y de la flexibilidad con la cual haya sido provista la aplicación. Muchas aplicaciones han sido concebidas desde el principio como entes monolíticos en los cuales añadir una nueva característica es un trabajo muy complicado. Ejemplos como GIMP, TeXmacs, Maxima, YaCAS, Gnome, KDE, Emacs y tantos otros proyectos han demostrado que la modularidad y la claridad en el código escrito son una buena manera de atraer colaboradores y de permitir el crecimiento del proyecto. Muchos de los proyectos nombrados anteriormente empezaron como pequeñas piezas de software que cumplian con propósitos muy básicos, o acaso no se acuerdan cuando Richard M. Stallman hablaba sobre los inicios de Emacs ?. Esto es algo que considero muy importante y no lo digo yo, lo dicen los creadores de Unix: elabore programas que hagan una sóla cosa, pero que la hagan bien. Les recomiendo que lean: The Art of Unix Programming by Eric S. Raymond, para profundizar mucho más sobre la filosofía Unix. La flexibilidad y claridad de un software determinan en gran medida su éxito o fracaso. Es increíble que siendo yo un aprendiz, pudiera entender en menos de dos horas cómo se agregaba un módulo a moregroupware y después pudiera entender de forma clara como estaba concebida la construcción de la interfaz, la generación de menúes y otras tantas cosas. Definitivamente da gusto leer bueno código.

2 comentarios:

Camilo dijo...

Pablito, muy interesante lo que comentas, espero ayudar en lo que pueda con tu blog y que el apoyo sea reciproco con el mio
amilonova.blogspot.com

Camilo.

Nelson Castillo dijo...

Si. El código mismo debe ser documentación. Estoy de acuerdo con eso. De hecho, cuando siento la necesidad de poner un comentario, lo que hago primero es tratar de cambiar el código para que sea más claro. Si ya toca, pues se adiciona el comentario.