Pages Menu
Categories Menu

Posted by on Ene 3, 2013 in General | 4 comments

Lo que le contaría a Dijkstra. La columna de los jueves

Como novedad para este año, desde la próxima semana tengo idea de sacar todos los jueves un post, tipo columna, de carácter divulgativo, analizando la actualidad relacionada con el mundo de la creación de software y tecnología. No sé si serán unos cuantos jueves o será para todos los jueves del año, lo iremos viendo.

Como seguramente serán post de crítica y desahogo, he querido titular a la nueva columna del jueves “Lo que le contaría a Dijkstra”. ¿Por qué? Porque si pudiera, lo que escribiré los jueves, sería a Dijkstra a quien me gustaría contárselo, bien para compartir felicidad o desahogo, pero seguro que él me entendería y daría sabios consejos.

¿Y por que a Dijkstra? Porque si ha habido grandes profesionales en la historia del software, él estaria entre los primeros. Brillante, innovador, visionario, polémico y sin “pelos en la lengua” hasta el punto que Alan Kay dijo que “en informática, la arrogancia se mide en nanodijkstras”.

A Dijkstra debemos el término “crisis del software”, sobre la incapacidad de la industria de hacer buen software. La calidad software y la programación estructurada le estarán eternamente agradecidos por haber sentenciado el GOTO, que “debe ser abolido ya que complica la tarea de analizar y verificar la exactitud de los programas”. Del lenguaje BASIC llego a decir que «mutilaba la mente más allá de toda recuperación».

Lo anterior y otras muchas aportaciones, que de citarlas todas extenderían mucho este post, como su algoritmo para calcular el camino más corto en un grafo, la notación polaca inversa, los semáforos para coordinar procesos, el “programador humilde”, etc.

Prueba de lo anterior, y para terminar este post, os dejo algunas famosas frases de Dijkstra que de verdad os recomiendo leer, extraídas de volver a leer su “On the Cruelty of Really Teaching Computer Science” (1988), aquí en español:

– Si la economía es conocida como “La Ciencia Miserable”, la ingeniería de software debería ser conocida como “La Disciplina Condenada”,

condenada porque ni siquiera puede acercarse a su meta, dado que en sí misma es contradictoria.

Medir la «productividad del programador» en términos de la «cantidad de líneas producidas por mes» […] anima a escribir código insípido, pero hoy estoy menos interesado en qué tan tonta es esa unidad. Mi punto hoy es que, si deseamos contar líneas de código, no deberíamos verlas como «líneas producidas», sino como «líneas gastadas”.

– Han pasado ya dos décadas desde que se señaló que el testing de programas puede convincentemente demostrar la presencia de errores, pero nunca puede demostrar su ausencia.

– Un profundo malentendido es el término «mantenimiento de software», como resultado del cual muchas personas siguen creyendo que los programas están sujetos a desgaste.

– En el mismo sentido debo llamar la atención sobre la sorprendente facilidad con que se ha aceptado la sugerencia de que los males de la producción de software de deben, en gran medida, a la falta de “herramientas de programación” apropiadas.

A las universidades les seguirá faltando el coraje de enseñar ciencia dura, continuará orientando mal a los estudiantes, y cada nuevo escalón de infantilización del currículum será exaltado como progreso educativo.

– Podemos, por ejemplo, comenzar limpiando nuestro lenguaje no denominando a un bug un bug, sino denominándolo un error. Es mucho mas honesto porque pone la culpa donde corresponde, es decir, en el programador que cometió el error. La metáfora animada del bug […] disfraza el hecho de que el error es creación del programador.

Un programa no es más que la mitad de una conjetura. La otra mitad de la conjetura es la especificación funcional que se supone que satisface el programa.

Si has llegado hasta aquí es porque las anteriores te han gustado, y como te habrás quedado con ganas de más, te dejo dos frases más, extraídas de una entrevista a Dijkstra:

– Las prácticas […] sufren, mayoritariamente, debido al conservadurismo e incompetencia técnica de los gerentes de estos proyectos. Sin embargo, si se pudiera cambiar la organización interna y jerarquía de las organizaciones de la industria de la programación, habría lugar para grandes progresos.

El tremendo costo de programación es consecuencia de la mano de obra barata, que la vuelve muy costosa, y porque la gente se apresura a codificar.

Javier Garzás

Javier Garzás

Ph.D. en informática, Postdoctorado en la Carnegie Mellon (EE.UU) e Ingeniero en Informática.

Primera vez que me tocó hacer una gestión Ágil en una empresa... año 2001. Desde entonces he trabajado en, o para, más de 90. Y he formado a más de 2000 alumnos.

También soy profe de la Universidad Rey Juan Carlos.
Javier Garzás

4 Comments

  1. Hace mucho tiempo ví una frase en inglés que resume bastante el trabajo de la gente que nos dedicamos a la creación de aplicaciones.

    Computing is a race between the universe and engineers. Engineers trying to develop better idiot proof software, and the universe trying to make better idiots.

  2. Gracias por el artículo Javier! Creo que hace falta más gente que dé a conocer la sabiduría de grandes personajes. Parece que todos tenemos que empezar desde cero, cometiendo los mismos errores, porque nadie nos cuenta experiencias en la carrera. Aporto la frase: «Aquellos que no recuerdan el pasado, están condenados a repetirlo» de George Santayana.

  3. Gracias Carmen por el comentario y la frase.

Trackbacks/Pingbacks

  1. Bitacoras.com - Información Bitacoras.com... Valora en Bitacoras.com: Como novedad para este año, desde la próxima semana tengo idea de sacar todos…

Post a Reply

Tu dirección de correo electrónico no será publicada.

Share This