Frontend

JavaScript moderno en 2026: las features que tenés que conocer

JavaScript sigue evolucionando y cada año nos trae nuevas herramientas para hacer el desarrollo web más emocionante y eficiente. En 2026, tenemos algunas features que definitivamente tenés que conocer si querés estar al tanto de lo último en el ecosistema frontend. Vamos a explorar los decorators, pattern matching, records & tuples y el pipeline operator, con ejemplos prácticos y casos de uso que te van a encantar.

Decorators

Los decorators son una de esas herramientas que te permiten modificar o extender el comportamiento de clases y métodos de una manera elegante. Si venís trabajando con frameworks como Angular, ya estarás familiarizado con este concepto. En JavaScript 2026, los decorators están formalmente integrados en el lenguaje.

¿Cómo funcionan?

Un decorator es esencialmente una función que se aplica a una clase o método, permitiéndote añadirle funcionalidad extra sin alterar el código original directamente. Supongamos que estás desarrollando una aplicación con RHINO y querés añadir un log a cada método de una clase. Podés usar un decorator para hacerlo.

function logMethod(target, key, descriptor) {
  const originalMethod = descriptor.value;
  
  descriptor.value = function(...args) {
    console.log(`Llamando a ${key} con argumentos: ${JSON.stringify(args)}`);
    return originalMethod.apply(this, args);
  };
  
  return descriptor;
}

class MiClase {
  @logMethod
  miMetodo(param1, param2) {
    // lógica del método
  }
}

Ahora, cada vez que llames a miMetodo, se va a loguear automáticamente, lo cual es genial para debugging.

Pattern Matching

El pattern matching es una feature que muchos estábamos esperando. Nos permite escribir código más claro y conciso para realizar operaciones complejas de comparación y desestructuración.

Caso de uso en Menteo AI

En Menteo AI, tuvimos que manejar una gran cantidad de estructuras de datos complejas. El pattern matching nos ayudó a simplificar el código de comparación de estados de nuestros modelos de IA.

const state = { tipo: 'cargado', data: { items: [1, 2, 3] } };

const resultado = match(state)
  .with({ tipo: 'cargado', data: { items: [] }}, () => 'Sin datos')
  .with({ tipo: 'cargado', data: { items: [_, ..._] }}, ({ data }) => `Con datos: ${data.items.length}`)
  .otherwise(() => 'Estado desconocido');

console.log(resultado); // Con datos: 3

Este código es mucho más legible que las condiciones anidadas tradicionales y permite adaptar el comportamiento según la estructura de datos que recibís.

Records & Tuples

Los records y tuples son estructuras de datos inmutables que traen consigo una gran cantidad de ventajas, especialmente en términos de gestión de estado en aplicaciones frontend. Estos son valores primitivos y se comparan por valor.

Implementación en Merchant Hub Akua

En uno de nuestros proyectos en Merchant Hub Akua, usamos records para manejar configuraciones globales de manera inmutable, asegurando que los estados críticos no se modificaran accidentalmente.

const config = #{ apiUrl: 'https://api.merchant-hub.com', timeout: 5000 };

function updateTimeout(config, newTimeout) {
  // Crea un nuevo record con el nuevo timeout
  return #{ ...config, timeout: newTimeout };
}

const newConfig = updateTimeout(config, 10000);
console.log(config.timeout); // 5000
console.log(newConfig.timeout); // 10000

La inmutabilidad de los records nos asegura que la configuración original permanece intacta, evitando bugs difíciles de rastrear.

Pipeline Operator

El pipeline operator es una feature que simplifica la composición de funciones, haciendo que el código sea más limpio y fácil de seguir. Te permite pasar el resultado de una expresión como entrada a la siguiente.

Ejemplo práctico

Imaginá que estás procesando datos de usuarios y necesitas aplicar varias transformaciones. El pipeline operator hace esta tarea más manejable:

const procesarUsuario = (usuario) =>
  usuario
  |> extraerDatos
  |> validarDatos
  |> formatearResultado;

function extraerDatos(usuario) { /* lógica */ }
function validarDatos(datos) { /* lógica */ }
function formatearResultado(valido) { /* lógica */ }

Este enfoque es más claro que encadenar múltiples llamadas de funciones y mejora la legibilidad del código.

Conclusión

JavaScript en 2026 nos proporciona herramientas poderosas que, bien utilizadas, pueden transformar la manera en que escribimos y mantenemos código. Los decorators, pattern matching, records & tuples, y el pipeline operator son solo el comienzo de lo que se puede lograr. Si querés discutir más sobre estas nuevas features o tenés un proyecto en mente, no dudes en contactame. Estoy siempre dispuesto a charlar sobre lo último en desarrollo web.