¿Es el software un arte?
Este post fue migrado de un blog hecho con Wordpress. Si se ve mal, dejame un comentario y lo arreglo.
Con esta pregunta empieza el primer capítulo de un libro llamado Programando como es debido, es parte de una colección publicada a mediados de los 80' llamada Biblioteca Básica Informática. La primera vez que me crucé con estos libros estaba en la escuela secundaria, el padre de un amigo los tenía y también estaban en la biblioteca de mi escuela. Era entretenido hojearlos, una especie de paleontología de la informática :-)
En Santa Fe, en una casa de canje de libros en el centro (25 de Mayo, entre Crespo e Hipólito Irigoyen) pueden conseguirse algunos de los libros de esta colección por $2. Tengo algunos en mi biblioteca. Mientras estudiábamos, un amigo tomó uno y empezó a leer. Es muy interesante prestar atención, sobre todo en los tiempos que corren, a lo que se pensaba hace 20 años:
"¿Es el software un arte? Esta pregunta, realmente crucial, afecta hoy en día no sólo a los usuarios, sino también a una gran cantidad de empresas interesadas en transformar esta actividad artesanal en indutria. The art of programming: así se titula el talismán para el programador, una monumental enciclopedia del Software, escrita por Knuth, uno de los genios en esta materia. En sus muchos tomos el autor pasa lista, explicándolos y clasificándolos, a la mayor parte de los tipos de algoritmos usados en la programación. Muchas veces ocurre que principiantes y semiexpertos copian un procedimiento de una revista o un libro, que a su vez, está recogido de esta fuente sagrada del software.
No hay que escandalizarse por ello. Además, auqneu esto sirva desde un punto de vista general. Es muy difícil, cuando se tiene un problema particular, encontrar una receta adecuada precisamente para nuestro caso. Quizá exista en algún sitio (casi está ya todo inventado en este mundo), pero ¿dónde? En estos casos no queda más remedio que arreglárselas solos. Por desgracia, a menudo surge la inquietante pregunta: si, estoy dispuesto, ¿por dónde empiezo?
En la programación, efectivamente, hay ocasiones en las que la flexibilidad y la libertad de acción se traducen en tragedia, peor incluso que la del célebre asno que, puesto delante de dos montones de heno, se murió de hambre por no saber por cuál decidirse. En el caso del software, más que de dilema se debería hablar de multidilemas (dilemas super ramificados); las reglas (sentencias, bucles, GOTO) en realidad son pocas, pero ¿cómo se pueden combinar adecuadamente? Que nosotros sepamos, hasta ahora nadie ha conseguido hacer otra cosa que no sea proporcionar ejemplos, recomendando que, en casos semejantes, se procesa "por analogía" [...]
En definitiva, ¿quiere todo esto decir que el software es un arte? Según nuestro punto de vista sí, a pesar de los desesperados esfuerzos para producirlo de manera, incluso, "automática", mediante los más dispares métodos [...]
En los casos inéditos o, lo que es lo mismo, en nuestros problemas reales, estamos otra vez como al principio: la pantalla (o la impresora) permanecen inactivas: necesitan una idea, lo mismo que nos ocurre a nosotros.
Como muchos ya saben, la idea de partida, ésa que puede llegar mediante la intuición creativa, por obra y gracia de la meditación trascendental, o por cualquier otro medio por raro que pueda parecernos, se llama algoritmo, término que deriva del nombre del matemático árabe Al-Khuwarizmi. Un algoritmo es un conjunto de reglas o formas de actuar para la resolución de un problema.
[...]
Los especialistas ofrecen infinidad de variantes de este esquema (N del R: algoritmos para pensar algoritmos), pero en todas ellas hay un punto en común: el comiendo es buscar un Algoritmos Resolutorio, y éste es el punto más delicado de todo el proceso.
Sin embargo, no queremos desanimar a los que se acercan por primera vez a un ordenador. El sogware es un arte, pero también se puede aprender; para las personas con fuerza de voluntad se trata de un desafío exitante y estimulante."
Comentarios
Comments powered by Disqus