2 de agosto de 2008

La venganza de los nerds (9 de 11)

No puedes dejar que los trajeados tomen las decisiones técnicas por ti. ¿Alarmó a algunos potenciales compradores que usáramos Lisp? Algunos, ligeramente, pero si no hubiésemos usado Lisp, no hubiéramos sido capaces de escribir el software que los hizo querer comprarnos. Lo que les pareció una anomalía a ellos fue de hecho causa y efecto.

Si empiezas el lanzamiento de un negocio, no diseñes tu producto para agradar a los directores o los compradores potenciales. Diseña tu producto para agradar a los usuarios. Si te ganas a los usuarios, todo lo demás irá llegando. Pero si no, nadie se preocupará de qué tan cómodamente ortodoxas fueron las elecciones de tu tecnología.

Al ser el costo el promedio


¿Cuánto pierdes por usar un lenguaje menos potente? Hay de hecho cierta información al respecto allá afuera.

La medida más conveniente de potencia es probablemente el tamaño del código. El punto de los lenguajes de alto nivel es darte abstracciones más grandes-- ladrillos más grandes, por decirlo de algún modo, para que no necesites tantos para construir un muro de un cierto tamaño. Así que mientras más potente sea el lenguaje, más corto el programa (no sólo en caracteres, claro, sino en distintos elementos).

¿Cómo hace un lenguaje más potente para permitirte escribir programas más cortos? Una técnica que puedes usar, si el lenguaje te lo permite, es algo llamado programación bottom-up. En lugar de simplemente escribir tu aplicación en el lenguaje base, escribes encima del lenguaje base un lenguaje para escribir programas justo como el tuyo, luego escribes el programa en él. El código combinado puede ser mucho más corto que si hubieras escrito todo tu programa en el lenguaje base-- por cierto, así es como la mayoría de los algoritmos de compresión funcionan. Un programa bottom-up debería ser más fácil de modificar también, ya que en muchos casos la capa del lenguaje no tendrá que cambiar para nada.

El tamaño del código es importante, debido a que el tiempo que toma escribir un programa depende mayoritariamente de su longitud. Si tu programa fuera tres veces más largo en otro lenguaje, tomará tres veces el tiempo para escribirlo-- y no puedes sortear esto contratando a más personas, ya que más allá de cierto tamaño las contrataciones nuevas son de hecho una pérdida neta. Fred Brooks describió este fenómeno en su famoso libro The Mythical Man-Month, y todo lo que he visto tiende a confirmar lo que él dijo.

No hay comentarios.: