Simplificando el fullstack

Por ciertas circunstancias, he contado con unas semanas de "ajustes" laborales que me han permitido dedicarle tiempo a repensar el stack utilizado para desarrollar las aplicaciones corporativas. En los últimos años, abandoné PHP para abrazar un stack formado por un back-end que consistía en un API server hecho con Node y Koa. Dicho back-end servía peticiones realizadas desde un front-end estático (archivos html) que usaba Vanilla JS o bien Petite Vue o bien Vue (usado desde CDN y sin compilación y con el módulo httpVueLoader si necesito componentes SFC).

El caso es que el cambio más importante al pasar de una tecnología a otra ha sido pasar de una concepción centrada en contenido HTML (porque PHP está optimizado para ello) a una centrada en contenido JSON (y por tanto obligando al uso de JavaScript en el front-end). Que no se me malentienda, me encanta JavaScript, pero me encuentro entre los cada vez más numerosos desarrolladores que se preguntan si el camino hacia la extrema complejidad emprendido por la industria hacia frameworks como Angular, Vue o, especialmente, React (entre otros).

Siempre he tenido la teoría de que demasiados desarrolladores que vienen de lenguajes como Java, C, C++ o C# nunca se han encontrado "cómodos" con un lenguaje interpretado como Javascript (solo eso ya explica gran parte de la aceptación de TypeScript), pero a la larga, tampoco han aceptado HTML ni mucho menos CSS. Por ello tienden a sustituir todo lo que no "les gusta" por código Javascript, creando problemas graves de rendimiento y haciendo cada vez más grande una montaña de parches que solo pretenden aliviar ligeramente los problemas que no dejan de multiplicarse por el camino emprendido.

Digo esto porque tenía claro que mi movimiento anterior de estar centrado en HTML a estarlo en JSON me parece un error cada vez más evidente y que cualquier propuesta de nuevo cambio tenía que estar basado en volver a abrazar la herramienta básica: el navegador. Una aplicación extremadamente optimizada para trabajar con HTML y con el que es extremadamente rápido, y más con la potencia de los equipos/móviles de hoy día.

Así que con esa premisa y, no lo voy a negar, mis propias preferencia, me puse a diseñar un nuevo stack con el que me sintiese a gusto y que me simplificase en el futuro el desarrollo de webapps. Estas son mis especificaciones previas para dicho stack:


BACK-END