El artículo «Funcionalmente Zen» parte del principio KISS, formulado por Kelly Johnson en Lockheed Skunk Works, y lo conecta con el Zen de Python para proponer varios preceptos adicionales orientados a escribir código más simple en este lenguaje. Tras un glosario de términos clave —idiomaticidad, efectos secundarios, estructuras de datos inmutables, funciones puras, estado, métodos, programación funcional y sus primitivas (map, filter, reduce) y mocking en pruebas—, el texto desarrolla sus principios uno por uno. El primero sostiene que el código idiomático es más simple que el que no lo es: en Python, una lista por comprensión resulta más natural que map() para transformaciones sencillas, como ilustra una cita de Guido van Rossum. El segundo defiende que los datos son más simples que las funciones, sobre todo cuando son inmutables; el autor relata cómo una aplicación médica de cálculo de dosis sustituyó una función compleja por tablas de consulta almacenadas en un diccionario tridimensional, eliminando la necesidad de pruebas unitarias. El tercero argumenta que las funciones puras son más simples que las impuras —porque producen siempre el mismo resultado y evitan la carga cognitiva de predecir el comportamiento del exterior— y también más simples que las clases, ya que estas añaden estado y código repetitivo. Por último, el artículo reconoce que las funciones impuras y las clases son inevitables para interactuar con usuarios, bases de datos o APIs, por lo que propone la idea de «núcleo funcional, capa imperativa» de Gary Bernhardt: mantener la complejidad en una capa fina de E/S alrededor de funciones puras.
Funcionalmente Zen: principios de simplicidad para Python
Fuentes:
Functionally Zen
