Estado del Arte
JavaScript
Resumen de la reunión plenaria de TC39 (febrero 2025)
-
Propuestas que llegaron a Stage 4 y se incorporan oficialmente a ECMAScript 2025, como
Float16Array,RegExp.escape(), y la simplificación de redeclaraciones globales (varvslet/const). Fuente: blogs.igalia.com -
Cambios de etapa:
import deferavanzó a Stage 3, lo que indica que pronto podrá implementarse en navegadores.Math.clampa Stage 1.Error stack accessora Stage 2, buscando especificar detalles del acceso a la pila de errores sin forzar un formato común. Fuente: blogs.igalia.com
-
Temporal: se presentó un estado de implementación cercano a 100% en Firefox Nightly, con una pequeña relajación en cálculos de años lunares lejanos. Fuente: blogs.igalia.com
-
ShadowRealm: discutida para permitir ejecución aislada y segura de código, con interés en integración web. Fuente: blogs.igalia.com
-
Otras discusiones:
- Cómo manejar well-known Symbols en RegExp para evitar vulnerabilidades.
- Visión unificada para
measureydecimal. Error.captureStackTrace().- Integridad de objetos (
fixed/stable). - Control de “thenables” por seguridad. Fuente: blogs.igalia.com
Esta sesión refleja el rumbo de JavaScript: mejorar la librería estándar, reforzar seguridad y avanzar en características de manejo de datos complejos (fechas con Temporal, buffers, decimal/measure).
Arquitecturas modernas de aplicaciones Front-end
El artículo “Architectures of modern Front-end applications” distingue entre diferentes enfoques:
-
Arquitectura clásica (“sin arquitectura”): Dividir en carpetas como
pages,components,helpers; funciona para proyectos pequeños o MVP, pero escala mal y genera “caos” cuando la app crece. Fuente: blog.meetbrackets.com -
Arquitectura modular: Separación en capas (
pages→modules→components→UI), cada módulo con su API pública, evitando dependencias incorrectas y promoviendo reaprovechamiento.- Modules no deben usar otros modules.
- Components deben ser “ligeros”, con la lógica compleja en modules. Fuente: blog.meetbrackets.com
-
Feature Sliced Design (FSD): Organiza por áreas funcionales (features) en lugar de solo capas, evitando crecimiento descontrolado de directorios globales.
- Niveles:
pages→features/widgets→entities→shared. - Cada capa solo depende de la inferior.
- Trabajar “slices” y “segments” para organización clara. Requiere conocimientos y tiempo de integración, pero ofrece estructura robusta y reutilización equilibrada. Fuente: blog.meetbrackets.com
- Niveles:
-
Ejemplos de implementación: Repositorios con ejemplos para React, Vue, Next.js y React Native, para ver concreciones de cada arquitectura. Fuente: blog.meetbrackets.com
-
Conclusión: Elegir la arquitectura según tamaño del equipo, ciclo de vida del proyecto y necesidades de escalabilidad; modular y FSD ofrecen claridad y mantenibilidad para apps medianas y grandes.
Novedades de frameworks en Chrome (mayo 2024)
El blog de Chrome for Developers analiza tendencias en frameworks JS durante el último año:
-
React:
- Avance en Componentes de Servidor.
- React Compiler (caché automático).
- Server Actions (llamadas al servidor integradas).
- APIs declarativas de carga de recursos.
- Renderizado fuera de pantalla para mejorar UX y rendimiento. Fuente: developer.chrome.com
-
Remix:
- Remix 2.0 con compatibilidad con Vite.
- Modo SPA para sitios estáticos con enrutamiento y splitting. Fuente: developer.chrome.com
-
Next.js:
- App Router estable.
- Soporte a nuevas APIs de React (Server Actions, Suspense).
- Turbopack experimental.
- Streaming y layouts compartidos. Fuente: developer.chrome.com
-
Vue/Nuxt:
- Vue 3.4 con mejoras de rendimiento (parser más rápido, reactividad refactorizada).
- Modo Vapor para compilación orientada a rendimiento.
- Fin de vida de Vue 2.
- Nuxt 3.x con lanzamientos frecuentes, compatibilidad con Vite 5, módulos crecientes, experimental Server Components e isla architecture. Fuente: developer.chrome.com