search
top

El primer “meme” del software, o el primer catálogo de malas practicas creando software

Seguramente muchos conocéis catálogos de “bad smells” (si no te recomiendo este post una lista de malos olores), listas de malas prácticas, anti patrones, etc., a la hora de crear software. Pero, aunque en informática tenemos muy mala memoria y tenemos la costumbre de reinventar viejos conceptos poniéndoles otro nombre, el primer nombre que agrupo malas prácticas fue “harmful” (dañino).

Allá por el 1964, durante una conferencia, un señor llamado van Wijngaard explicaba la manera de deshacerse de todas las declaraciones GOTO utilizando recursividad. Lo cual dejó muy preocupado Dijkstra (que además trabajaba para él) porque aunque él sabía que el GOTO era peligroso… la recursividad que lo reemplazaba era peor. Dijkstra se pasó la noche reescribiendo programas para que no tuvieran GOTOs y sin usar la recursividad.

La manera en que Dijkstra eliminó los GOTO ahora parece evidente, pero entonces no lo era. La idea fue simplemente usar bucles, estructuras DO-LOOP. Dijkstra deshizo del GOTO sin añadir nada peor.

Al día siguiente, en la conferencia, Dijkstra pasó la mayor parte del tiempo tratando de convencer a todos de que su nuevo estilo de programación era la manera correcta de hacer las cosas. Y en 1968, Dijkstra escribió sus ideas para el resto del mundo y las publicó en ACM, en una carta de las influyentes dela historia de la programación: “The GOTO considered harmful”, donde decía cosas como:

“Desde hace años, me he familiarizado con la observación de que la calidad de los programadores decrece en función de la densidad de “GOTOs” que producen. Recientemente he descubierto por qué el uso del GOTO tiene tan desastrosos efectos, y me convencí de que debe ser abolido de todos los lenguajes de alto nivel (excepto, tal vez, del código máquina)” (si quieres leer más te recomiendo esta joya de link que analiza la carta de Dijkstra párrafo a párrafo).

Con ello, Dijkstra acuñó los términos “goto-less programming” y “programación estructurada” comenzando una revolución en los métodos de programación.

Pero además, creó el primer “meme” de la historia del software, ya que un montón de gente se puso a escribir “xxx considered harmful”, creándose auténticos catálogos de malas prácticas (muchos de ellos tristemente olvidados hoy), como por ejemplo:

1973. Wulf and M. Shaw “Global Variable Considered Harmful”.

1983. Rob Pike and Brian Kernighan). “UNIX Style, or cat -v Considered Harmful”. USENIX.

1996. Tom Christiansen. “Csh Programming Considered Harmful”.

1998. Peter Miller. “Recursive Make Considered Harmful”.

2002. Jonathan Amsterdam. “Java’s new Considered Harmful”. Software Development Magazine.

2002.  Ian Hickson. “Sending XHTML as text/html Considered Harmful”.

Y hasta un…

2002.  Eric A. Meyer. “”Considered Harmful” Essays Considered Harmful”.

 

 

Latest posts by Javier Garzás (see all)

Dejar una respuesta

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

top