Buscar este blog

miércoles, mayo 28, 2008

Prejuicios, actualización y software

El otro día, hablando con mi jefe, salió a colación el tema de las bases de datos útiles para "cosas serias". El opinaba, desde su pasado de administrador de Oracle, que Oracle era lo más, y que MySql entre otros no te permitían construir un sistema "de hombres". Yo no estaba de acuerdo, y gracias a la web de los chicos de HighScalaility, pude demostrar con hechos que MySql es un producto a la altura de Oracle para cosas gordas, quizá mucho mejor desde un punto de vista técnico si no se dispone de dinero infinito.

La arquitectura de Youtube fue el ejemplo más evidente, aunque hay otras.

Todo esto, me llevó a reflexionar sobre lo poco de fiar que puede llegar a ser la opinión de alguien, aunque haya tenido experiencia, cuando pasan uno, dos o N años desde esta, y también me hizo pensar en la necesidad de pensar en sistemas claros y abstracción en capas, antes que en sistemas optimizados (otro tema candente en la oficina) o herramientas milagrosas. Ya lo decía (entre otras cosas) el admirado y venerable Donald Knuth en 1974:
"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil."


Como lectura complementaria a todo esto, me gustó mucho el artículo de Joel Spolsky: Leaky Abstractions, donde Joel reflexiona sobre el curioso efecto que tiene la cada vez mayor cantidad de capas de abstracción existentes en el desarrollo de software y la utilidad de conocer las entrañas de los sistemas. Cito una de las frases finales de tan recomendable artículo porque me llegó adentro:
"the abstractions we've created over the years do allow us to deal with new orders of complexity in software development that we didn't have to deal with ten or fifteen years ago, like GUI programming and network programming. And while these great tools, like modern OO forms-based languages, let us get a lot of work done incredibly quickly, suddenly one day we need to figure out a problem where the abstraction leaked, and it takes 2 weeks."

2 comentarios:

cmL dijo...

Difiero en lo de "me llevó a reflexionar sobre lo poco de fiar que puede llegar a ser la opinión de alguien, aunque haya tenido experiencia". La experiencia es un grado, otra cosa es que el que la tiene no la use correctamente, la experiencia me dice que por mucha que se tenga, mejor no abrir la bocaza a no ser que estés completamente seguro. Para cuando no estoy seguro suelo usar "creo, y puede que me equivoque", y quedas de pitilin.

Jose Angel dijo...

Lo que propones me parece la actitud más razonable y procuro seguirla en mi día a día, pero este artículo está "dedicado" a todas aquellas personas que creen que su experiencia, que pudo ser muy util hace N años, sigue teniendo la misma validez N años después. Un planteamiento que suele ser erróneo cuando hablamos de informática.

Y lo que es más importante, es un aviso y recordatorio para evitar los argumentos de autoridad.