ElCity es un juego de construcción de ciudades por turnos, único porque se ejecuta completamente dentro del editor de texto Emacs. Imagina un SimCity, pero en lugar de gráficos complejos, utilizas caracteres ASCII para representar edificios, carreteras y otros elementos. Esto no es solo una curiosidad; es una demostración de un diseño de software muy interesante: una arquitectura de 'núcleo funcional / shell imperativo'.
¿Cómo funciona? El núcleo del juego (el 'núcleo funcional') es la simulación real de la ciudad. Calcula cómo crecen las zonas, cómo se generan los ingresos, cómo se distribuye la energía, etc. Este núcleo está diseñado para ser 'puro' o 'casi puro', lo que significa que las funciones dependen principalmente de sus entradas y producen salidas predecibles sin efectos secundarios ocultos. Esto facilita enormemente la depuración y el mantenimiento del código. La 'shell imperativa' es la interfaz de usuario (UI) que se encarga de mostrar la ciudad en la pantalla
