Cuesta creer que tantos programas se puedan implementar con menos de 500 líneas de código. ¿Cómo se puede crear un entorno de programación visual, un sistema de integración continua, una base de datos para grafos, filtros de imágenes, un intérprete de Python, un OCR, una hoja de cálculo online o, incluso, un servidor web sencillo, todo con sólo 500 líneas de código?.

La respuesta es tomando buenas decisiones de diseño y conociendo bien las consecuencias de cada una de ellas, tal y como lo harían programadores experimentados. Y éste es precisamente el objetivo del libro “500 lines or less“. Cada capítulo explica con todo lujo de detalles la creación de un software representativo en, como mucho, 500 líneas de código con el objetivo de ilustrar las diferentes maneras que los programadores seniors tienen de atacar problemas complejos en dominios diferentes.

No se trata, pues, de demostrar que los autores de cada capítulo son tan buenos que pueden crear súper programas con pocas líneas de código sino que se busca enseñar a programadores más juniors lo que se puede llegar a hacer si se piensa un poca antes de actuar. Ejemplos de preguntas a hacerse:

  • ¿Por qué y cómo dividir la aplicación en módulos y qué interfaz escoger para cada módulo?
  • Como usar correctamente los mecanismos de herencia y composición
  • Como predecir qué parte de nuestros programas puede querer extenderse y cómo hacerlo fácil para quien quiera hacerlo

La verdad es que se agradece un libro con este objetivo. La gran cantidad de potencia de cálculo y memoria disponible en cualquier ordenador o móvil nos tiene mal acostumbrados y nos hace olvidar la necesidad de qué nuestro software aparte de funcionar estén bien hecho, lo que a la larga es casi tan importante. La gente ya se empieza a quejar de que el tamaño de las apps se está yendo de madre , queja que a mi me recuerda la mía propia en relación a la inflación anual de recursos que hacían falta en un PC para poder jugar a videojuegos. No es que los nuevos videojuegos fueran mucho mejor que los antiguos (en calidad de imagen, sonido,..) sino que simplemente era más barato pedir al usuario que se cambiara el ordenador en lugar de optimizar el código del juego.

Portada del libro "500 líneas o menos"El libro “500 lines or less” forma parte de la colección “The Architecture of Open Source Applications” (con algunas joyas de las que os hablamos aquí).  Se puede leer de forma totalmente gratuïta en aosabook.org o comprar el PDF o una copia impresa en Lulu (todos los beneficios van a Amnistía Internacional).

Las fuentes del libro así como todo el código está también disponible en GitHub.

Ah, y si os habéis quedado con las ganas de ver aún más ejemplos de programas cortos pero funcionales, podéis ver la JS1k: The JavaScript code golfing competition donde se elige la mejor demo con un máximo de 1024 bytes de código JavaScript o la competición para crear el mejor videojuego con sólo 13K de JavaScript .