viernes, marzo 23, 2007

Gato

Una casa sin un gato, un bien alimentado, bien cuidado, bien reverenciado gato, puede ser una casa perfecta, pero ¿cómo puede llegar a demostrarlo?
Mark Twain

martes, marzo 20, 2007

TSLOC

En su artículo "Cracking Software Reuse", Diomidis Spinellis comenta algunos aspectos relativos a la reusabilidad del software, del que se ha dado en conocer "de grano gordo" o coarse-grain reuse. Describir una extensión no inherente a MediaWiki (el motor de Wikipedia) que permite la representación de tableros de ajedrez combinando elementos como tablas html e imágenes entre otros, le sirve para desvelar algo de lo que pocas veces somos conscientes:
Digging deeper, we’ll find that MediaWiki consists of about 175,000 lines of PHP (PHP: hypertext preprocessor) code using the MySQL relational database engine. A rough count of C/C++ source code files in the PHP and MySQL distributions gives us 740,000 and 1.8 million lines, respectively. And underneath, we’ll find many base libraries on which PHP depends, the Apache and Squid server software, and a multimillion-line-large GNU/Linux distribution. In all, we see a tremendously complex system that lets hundreds of thousands of contributors cooperatively edit two million pages—and still manages to serve more than 2,000 requests each second.
(en: Diomidis Spinellis, "Cracking Software Reuse," IEEE Software, vol. 24, no. 1, pp. 12-13, Jan/Feb, 2007).

Lo que sorprende es que todo esos trillones de líneas de código fuente (TSLOC) den soporte a un grupo de personas para elaborar una plantilla que permite mostrar un tablero de ajedrez. Marea pensar la complejidad conjunta de todos esos sistemas, y la manera en la que han sido integrados entre ellos. Cómo dice Spinellis, we should be doing something right.

miércoles, marzo 14, 2007

Martin Fowler

Indudablemente, uno de los ingenieros software que más me ha influido ha sido Martin Fowler. Su forma de razonar un diseño, su manera de expresarlo, y los ejemplos de código presentados para ello han hecho mella en mí.