Artesanía, Ciencia, Ingeniería

Leonardo Herrera
Creado: 3/10/2002
Última Actualización: 21/9/2004

Que avanzado está el software hoy en día, ¿cierto? Despues de todo, los programas hoy en día hacen cosas que antes no habríamos soñado, y la computación ahora es fácil, si nos ponemos a pensar en los años 70 u 80. El desarrollo de software, por lo tanto, debe haber avanzado mucho, ¿no?

No.

Hagámoslo más enfático:

El desarrollo de software está en las cavernas. Nuestro arte tiene mucho más en común con las cuevas de Altamira que con una obra renacentista.

Este razonamiento es sencillo: hemos logrado aplicar método al conjunto de prácticas conocidas como Programación, pero hemos fallado en convertir a la programación en sí en una ciencia, o en procurar que los practicantes de la programación sean científicos. Suena a Dijkstra, ¿cierto?.

Ahora, voy a compensar un poco. No hay nada inherentemente malo en la manera en que desarrollamos software; de hecho, si hubiésemos dejado que la ciencia siguiese dictando la norma en el desarrollo de software y la programación, aún estaríamos demostrando los algoritmos básicos. No hay nada de malo en esto; la computación es algo nuevo, los computadores son herramientas nuevas, y sin ningún precedente comparable.

Día a día fallamos en encontrar los patrones y poder aplicarlos al trabajo diario. Día a día reconstruimos la rueda, una mejor rueda, pero una rueda al fin y al cabo. Esto es debido a que las herramientas mejoran día a día, y nuevos procesos se agregan a la línea de producción... no obstante, seguimos en las edades oscuras.

Todo esto, en conjunto con nuevos, más fáciles, "user-friendly", programas y lenguajes de programación, han hecho que cada vez existan más artesanos, en vez de menos. Este punto puede ser algo difícil de tragar, pues puede sonar a crítica hueca, pero hay un poco de seso en esto. Durante el medioevo, los artistas eran artesanos, que pasaban el conocimiento a aprendices, quienes por simple imitación lograban algún día convertirse en maestros. En la plástica se dió un fenómeno poco usual: un día, se descubrió la perspectiva, y súbitamente los viejos maestros miniaturistas se vieron sobrepasados por una nueva generación de jóvenes artistas del renacimiento que fueron capaces de lograr mejores resultados, pues aplicaron el conocimiento adquirido en vez de desarrollar pacientemente sus propios trucos.

Imaginen que hoy, súbitamente, los nuevos programadores comenzaran a aplicar técnicas y ciencia al desarrollo del software, y todos los programadores de cofradía quedaran detrás en rendimiento y calidad. Esto sería grandioso para la humanidad completa, sin exagerar; no obstante, cada día es más difícil que suceda. Los principales culpables de todo esto son quienes, precisamente, han aportado la informática y la han llevado a las masas, convirtiéndola en una rama importantísima para el quehacer mundial.

¿Qué hacemos?

El primer paso es darse cuenta que la computación es una ciencia perteneciente a la rama de las matemáticas. Sólo un verdadero científico puede imponer la rigidez necesaria para que los verdaderos progresos sean hechos. No obstante, una cierta cuota de artesanía es necesaria; esto hace que el primer paso es encontrar el justo equilibrio entre artesanía y oficio contra ciencia y técnica.

El segundo paso es encontrar un lenguaje de programación que no intente ser un lenguaje natural, sino matemático, con una representación simbólica adecuada.

El tercero... yo supongo que un tercer paso sería resolver, de una vez por todas, el paradigma de la programación orientada a objetos, y llegar a un consenso.

Y el último gran paso... el entender que el desarrollo de grandes artefactos no puede ser guiado por artesanos, si bien los artesanos pueden aportar con mano de obra. Esto, si bien puede sonar despectivo o discriminatorio, es una norma aceptada en otras ciencias o técnicas. Uno no pone a un artesano, por experto o eficiente que éste sea, a diseñar un avión. ¿Porqué poner a un profesional, cuya experiencia o conocimientos sean más cercanos a la artesanía que a la ciencia, a diseñar un producto complejo?

 

Este sitio es mantenido con ePublish