blog
Desarrollo Opinión Programación Web

Programación declarativa en la Web

La Web del futuro ya está aquí y algunas cosas van cambiando en la comunidad. Una de estas cosas es la idea de que la programación declarativa aplicada a la web le puede ganar su sitio a la programación imperativa. De hecho, para algunos desarrolladores esto es una necesidad y debe ser una tendencia.

El lenguaje declarativo, o la programación declarativa se centra en contestar al “qué” y no al “cómo”. En este abordaje, la secuencia de procesos ejecutados para obtener un resultado no es importante.  En ella se describen los resultados que se pretenden obtener, y los detalles de cómo hacerlo son dejados para el intérprete del lenguaje.

Es importante recordar que en la programación imperativa, la que usamos todos diariamente (p.ej. en JavaScript, JAVA, Python, PHP, etc…), le decimos al ordenador como desarrollar tareas, por ejemplo como procesar una página web.  Un sistema imperativo controla un mecanismo que ayuda a producir el resultado deseado.  Es necesario un programador para crear dicho sistema.

El abordaje 'declarative-first' lo que quiere, es poder establecer una comunicación lo más básica y natural que sea posible, dejando al procesador el trabajo de realizar el 'step-by-step'.  La idea es providenciar a los administradores de sistema mejor código y más limpio,  al mismo tiempo que una mejor  experiencia.  La comunidad también puede aprovecharse de soluciones reutilizables.

Pero la programación declarativa aplicada a la web no es algo nuevo. De hecho, uno de los elementos base de la web misma, el HTML la utiliza. En él, el desarrollador solo tiene que declarar la instrucción con la etiqueta adecuada, para obtener el resultado que pretende. A partir de aquí son los navegadores, los sistemas que interpretan el HTML que se hacen responsables de realizar el paso-a-paso, y a través de un proceso complejo  mostrar el contenido al usuario final. Pensemos en las imágenes, por ejemplo, o los iframes.

Un ejemplo de cómo se puede implementar la programación declarativa es la implementación de las APIs. La mayoría de estas se implementan a través de este abordaje. En ellas se usa un lenguaje sencillo que se puede utilizar para expresar el resultado deseado. Creo que el rápido crecimiento del número de APIs en la red  va a ser clave para el éxito de la programación declarativa.

La web,  más que nunca es uno o varios sistemas abiertos e interconectados, por este motivo la programación declarativa debe tener su papel también en la forma en que se conectan estos sistemas.

Creo que el abordaje aún tiene un camino por delante, pero en la red todo va muy rápido como ya sabemos.  Lo cierto es que ya hay mucha gente dedicándose a este tema. De hecho, Drupal 8 utiliza programación declarativa en su configuración e incluso existe un módulo para Drupal 7 , “Config in Code”, que vale la pena experimentar. Entre otras cosas este permite generar módulos básicos de Drupal a través de texto TSV.

Otro proyecto interesante es Guavus. Guavus es una empresa dedicada a la analítica de Big data que han visto en el abordaje declarativo una forma de acelerar el proceso de crear soluciones, aplicaciones big data para todo el tipo de ambientes.

Conclusión

Los lenguajes declarativos permiten una traducción directa del modelo de negocio a la lógica del negocio, además de permitir una mejor lectura de ésta y una mejor escalabilidad para la aplicación cuando hablamos de funcionalidad. También permiten que el programador  dedique su tiempo a cosas más importantes.

Fuentes:

Reconocimento facial con JavaScript

Artículo anterior

Degradación gradual vs Mejora progresiva

Siguiente artículo
I help Organizations to use Technology to improve people's lives

También te puede interesar

Los mejores software para gestión de proyectos

3 Herramientas DevOps

Maquetar en Drupal 7: Funciones del Tema

CodyHouse