Este artículo de opinión, respaldado por la experiencia del autor en Automattic (una empresa de web performance), argumenta que las arquitecturas web centradas en JavaScript (JS-heavy) son problemáticas para el rendimiento a largo plazo. El autor define 'JS-heavy' como aquellas aplicaciones que dependen de enviar grandes cantidades de código JavaScript al navegador para su ejecución, algo común en Single-Page Applications (SPAs) pero que también puede aparecer en Multi-Page Applications (MPAs).
La principal crítica radica en que, si bien los frameworks como React ofrecen una percepción de agilidad y desarrollo rápido, a menudo resultan en aplicaciones más lentas de lo esperado, que se degradan con el tiempo y requieren más esfuerzo de mantenimiento de lo inicialmente previsto. Esto se debe a varios factores: la dependencia de paquetes npm (el repositorio de paquetes JavaScript) que a menudo son grandes y crecen con el tiempo (ejemplos: Moment.js, React), la dificultad para controlar el tamaño del bundle (el archivo JavaScript final enviado al navegador) y la falta de visibilidad sobre el impacto de las dependencias en el rendimiento. El autor señala que incluso herramientas como Dependabot, que automatizan las actualizaciones de dependencias, no alertan sobre el aumento del tamaño del bundle.
El artículo aboga por un enfoque más 'server-centric', donde el servidor realiza más del trabajo de renderizado y la carga de JavaScript al cliente se minimiza. Aunque reconoce que no se trata de una revelación revolucionaria y que no presenta datos exhaustivos, la experiencia del autor sugiere que esta estrategia es más sostenible para el rendimiento a largo plazo. El autor concluye con un llamado a la industria para reconsiderar las prácticas de desarrollo web y priorizar el rendimiento sobre la conveniencia a corto plazo, evitando así una 'mina de rendimiento' con cada nueva implementación.
En resumen, el artículo no es un rechazo total de frameworks como React, sino una advertencia sobre la necesidad de ser conscientes de las implicaciones de rendimiento de un enfoque JS-heavy y de buscar alternativas más equilibradas.
