¿Por qué la web moderna no usa enlaces?

Un usuario que dejó de programar activamente páginas web hace muchos años se encontró con una situación confusa. Al inspeccionar el código de la página de MercadoLibre para ver si podía ordenar los resultados alfabéticamente, descubrió algo inquietante: el menú de selección no tiene ni un enlace ni nada parecido a un script de JavaScript visible.

Ilustración comparativa entre el desarrollo web antiguo y moderno
La evolución del desarrollo web: de la simplicidad HTML a las aplicaciones complejas.

El usuario se pregunta qué clase de majamama de listeners debe estar codificada y por qué la programación web ha vuelto tan enrevesada. La explicación radica en un cambio fundamental: la web moderna dejó de pensar en términos de «páginas HTML con enlaces» para empezar a funcionar como «aplicaciones que casualmente viven dentro de una página HTML».

Hace años, encontrarías algo razonablemente humano como un enlace directo. Ahora, lo que ves es esencialmente la representación visual de un componente. Algún JavaScript se engancha a ese elemento mediante delegación de eventos o handlers generados por el framework. Cuando haces clic, el sistema modifica su estado interno y provoca una navegación o actualiza el DOM.

Esto significa que el código del listener puede estar enterrado dentro de un bundle JavaScript minificado de varios megabytes, lejos del elemento visual en pantalla. Además, lo que ves no tiene por qué corresponder a una entidad HTML con comportamiento propio; es simplemente el estado actual de una aplicación gestionando su interfaz.

Por eso tu intuición de hace 15 o 20 años te grita que debería ser un enlace: para acciones simples, los enlaces siguen siendo superiores. Pero las grandes aplicaciones modernas construyen componentes interactivos como widgets de la aplicación en lugar de documentos hipertextuales tradicionales.