𝗗𝗲𝗰𝗹𝗮𝗿𝗮𝘁𝗶𝘃𝗼. 𝗜𝗺𝗽𝗲𝗿𝗮𝘁𝗶𝘃𝗼. 𝗜𝗻𝘁𝗲𝗻𝗰𝗶𝗼𝗻𝗮𝗹.
Los desarrolladores hablan de paradigmas de programación todo el tiempo.
Usamos programación imperativa. Usamos programación declarativa. Usamos estilos funcionales u orientados a objetos.
Pero nos falta una capa.
El futuro es intencional.
La programación imperativa le dice a una computadora exactamente qué hacer. Proporcionas instrucciones paso a paso. Te centras en el proceso. Controlas la secuencia. Esto te da precisión, pero cargas con el peso de cada uno de los pasos.
La programación declarativa cambió esto. Describes lo que quieres, no cómo hacerlo. SQL es un ejemplo perfecto. Pides datos. No escribes los bucles ni gestionas la memoria. El sistema se encarga del trabajo. Esto aumenta la productividad.
Sin embargo, incluso los sistemas declarativos a menudo te obligan a pensar en la implementación.
Mira el diseño web responsivo. Escribes código para columnas y puntos de interrupción. Sigues describiendo la mecánica. Estás describiendo cómo debería funcionar un diseño.
El sistema sabe lo que estás haciendo, pero no sabe por qué.
La programación intencional cambia el objetivo.
En lugar de describir CSS, describes el comportamiento deseado. Le dices al sistema que se adapte. Le dices al sistema que se reorganice según el contexto. El enfoque se desplaza del mecanismo al propósito.
El software se está moviendo en esta dirección.
- SQL: Describes los datos.
- Infrastructure as Code: Describes los recursos.
- Nectarine: Describes esquemas y APIs.
El sistema se encarga del resto.
Las mejores librerías de software hacen más que proporcionar funcionalidades. Proporcionan un lenguaje. Te enseñan cómo pensar. Cada API y cada nombre ayuda a construir una filosofía.
La implementación importa, pero no debería filtrarse en cada capa. Los desarrolladores no quieren expresar la mecánica. Quieren expresar la intención. Saben lo que quieren lograr.
Las buenas abstracciones ocultan la complejidad. Las grandes abstracciones hacen que la intención sea obvia.
Los estilos imperativos y declarativos permanecerán. Pero nos estamos moviendo hacia sistemas que entienden los objetivos. Necesitamos sistemas que traduzcan el propósito en resultados.
Enfócate en lo que quieres decir, no solo en cómo funciona. El significado es más importante que la mecánica.
Fuente: https://dev.to/stinklewinks/declarative-imperative-intentional-4j60