Para la mayoría de usuarios, lo más importante en un ordenador es “que sea rápido”. No hace tanto, los ordenadores se anunciaban casi exclusivamente a golpe de megahercio. Y lo último que suele escuchar un ordenador antes de irse al cementerio digital es “va muy lento, hay que cambiarlo”.

Pero la realidad es que el software también juega un papel muy importante en el rendimiento de un ordenador.  Niklaus Wirth, padre de lenguajes de programación como Pascal o Modula, se lamentaba en 1995 (en un artículo titulado “A Plea for Leaner Software“)  de dos tendencias que apreciaba en los productos de software:

  • El software se expande para ocupar todo el espacio disponible.
  • El software se ralentiza a mayor velocidad de lo que se acelera el hardware.

La segunda de estas afirmaciones resultaba un contrapunto simpático a la Ley de Moore, que observó en 1965 que el número de transistores en un circuito integrado se dobla aproximadamente cada 24 meses. Quizás por eso, la segunda afirmación fue bautizada popularmente como “Ley de Wirth“.

Test informático: Quién es la persona de la foto? Wirth, Moore, Dijkstra o Lamport?

Test de culturilla informática: Quién es la persona de la foto? Wirth, Moore, Dijkstra o Lamport? La respuesta al final de la entrada.

Casi 20 años después, lo acertado de estas observaciones resulta evidente para cualquiera. Cuando pasas de instalar un sistema operativo en diskettes, a hacerlo en CD y luego en DVD… empiezas a sospechar que algo está pasando. También sería un curioso experimento coger a un usuario de 1994 y enseñarle el tiempo que tarda en arrancar un ordenador actual: ahora está acabando de instalar un parche que se instaló ayer, ahora está cargando mi configuración, ahora ya está todo pero todavía no puedo ni mover el ratón, … Después de esto, intentar explicarle que nuestros ordenadores actuales son mucho más potentes que el suyo… bueno, sería complicado como poco.

Y es una pena, porque a la vez que los ordenadores se hacen más potentes… cada vez usamos dispositivos más y más pequeños. Un teléfono tiene una fracción de la potencia de un equipo de sobremesa, y los dispositivos wearable (¿computadoras corporales o vestibles? que alguién se invente un término mejor, por favor) tienen menor potencia todavía. No iría mal que el software supiera sacar partido a recursos de cálculo, memoria y energía muy limitados.

Dada esta diferencia de tendencias tan importante, no falta quién afirma que el desarrollo de software tiene mucho que aprender del desarrollo de hardware. En la misma línea, también hay quién dice que los desarrolladores tienen mucho que aprender de los arquitectos… y no lo dice una persona cualquiera, sino Leslie Lamport, ACM Turing Award de 2014. Pero claro, los arquitectos no trabajan en las mismas condiciones que los desarrolladores. De verdad que no. Y lo mismo puede aplicarse a los médicos y otros profesionales.

En un tono más serio y meditado, Edsger W. Dijkstra (sí, ése Dijkstra) hizo una reflexión sobre por qué desarrollar software es complicado, con el título “Why is software so expensive? An explanation to the hardware designer. Recomiendo encarecidamente su lectura*, aunque para los impacientes me quedo con esta perla:

“algunos programadores no saben cuán dañiña es la complejidad, ni cuánta complejidad puede llegar a evitarse si te preocupas por ello”

Y ahora disculpen, Doctores Lamport, Wirth y Dijkstra. Les dejo que tengo que descargar unos 2 Gb de parches del sistema operativo…

* Así como del resto de sus escritos, porque siguen todavía siguen vigentes. Al parecer, hay verdades que no tienen fecha de caducidad.

** La persona de la foto es Niklaus Wirth, enhorabuena a l@s que habéis acertado. L@s que no, me hacéis un “HelloWorld” en Pascal y una lista doblemente encadenada en Modula-2 como deberes.

via iNFoRMáTiCa++ http://ift.tt/1oV4gyH

Advertisements