
ARTDEPARTMENT

La web ha evolucionado enormemente desde sus inicios, pero en algunos aspectos cruciales sigue anclada en el pasado. Mientras tecnologías como WebAssembly (WASM) ganan circunscripción incluso en el servidor, las páginas web que usamos todos los días todavía funcionan con sistemas viejos como el DOM, HTML y CSS, que fueron creados hace décadas y no están pensados para las evacuación de hoy.
En su blog profesional, el desarrollador Steven Wittens ha expuesto con detalle esa idea (y dejado caer, al final, algunas posibles soluciones) en un texto que propone repensar, desde su misma colchoneta, los fundamentos del incremento web.
11 WEBS para DESCARGAR EBOOKS GRATIS para tu KINDLE Xataka TV
Cuando visitas una página web, tu navegador construye una especie de "árbol" interno para entender y mostrar el contenido. Ese árbol se fuego DOM, que significa Document Object Model o "Maniquí de Objetos del Documento".
Imagina que el DOM es como una maqueta de LEGO de la página, donde cada piedra representa un pájaro: un título, una imagen, un tallo, etc. Suena acertadamente, ¿verdad? El problema es que este sistema se ha vuelto tan rancio y complicado que ya nadie lo entiende del todo acertadamente… ni siquiera los expertos.
Por ejemplo, en Google Chrome, un solo piedra de esa maqueta (document.body, que es básicamente el cuerpo de la página) tiene más de 350 funciones y propiedades diferentes. Y si hablamos del estilo (colores, márgenes, tamaños), hay más de 660 opciones solo para eso.
Es como tener una caja de herramientas tan holgado que ya no sabes qué usar, ni cómo. Por otra parte:
Adecuado a este caos, la mayoría de desarrolladores modernos evitan trabajar directamente con el DOM. Usan herramientas más fáciles y organizadas (como React o Vue), que simplifican todo.
Y aunque hay intentos por mejorar esto, como los Web Components (una forma más moderna de crear partes reutilizables de una página), llegaron tarde y no son muy populares porque son difíciles de usar.
HTML es el idioma central con el que se construyen las páginas web. Su objetivo llamativo era permitir que los sitios fueran claros y organizados: con títulos, párrafos, listas, artículos, comentarios… todo acertadamente etiquetado.
Eso se fuego semántica: usar etiquetas que explican qué es cada parte del contenido, no solo cómo se ve.
Pero, aunque han pasado más de 10 primaveras desde que salió la versión vigente de HTML (HTML5), seguimos sin tener etiquetas para cosas tan comunes como un hilo de conversación () o un comentario (). Eso significa que los desarrolladores tienen que improvisar y usar etiquetas genéricas como
, que no dicen claramente lo que representan. 
Por otra parte, las reglas para usar las etiquetas "correctamente" son confusas. Por ejemplo, según algunas guías, un artículo internamente de otro artículo podría considerarse un comentario... pero eso no tiene mucho sentido, ¿verdad?
Hoy en día, las grandes decisiones sobre cómo evoluciona HTML las toman principalmente los creadores de navegadores (como Google o Apple), no una comunidad abierta. ¿Y qué han hecho? Pues en emplazamiento de rediseñar o simplificar HTML, han ido agregando pequeñas cosas nuevas aquí y allá, como quien sigue parcheando una prenda vieja.
El resultado: tenemos un HTML estancado, anticuado y que no termina de cumplir acertadamente con su propósito llamativo
CSS (siglas en inglés de "hojas de estilo en cascada") es lo que usamos para darle forma y colores a una página web: tamaños, márgenes, colores, posiciones, etc. Pero a pesar de ser tan importante… muchas veces parece estar en contra nuestra.
¿Te ha pasado que simplemente quieres poner dos cosas una al flanco de la otra, o que poco quede centrado en la pantalla, y por más que lo intentas no pasa lo que esperas? No estás solo.
El problema principal es que CSS no funciona como creemos.
Imagina que tienes una caja con dos cajones adentro y que quieres que cada cajón ocupe la medio del espacio. Natural, ¿no?
Pero CSS no lo entiende así. En ingenuidad, necesita que primero le digas cuánto mide la caja holgado. Si no lo haces, simplemente ignora tus instrucciones.
Esto es porque CSS trabaja de una forma poco rara: primero mira el contenido (lo que hay internamente) y luego decide qué tamaño debería tener el contenedor. Es como si compraras una caja para tus cosas... a posteriori de ver cuántas cosas tienes.
¿Cómo se soluciona eso? Bueno, el CSS reciente tiene herramientas como Flexbox, que ayudan a distribuir mejor el espacio entre rudimentos. Pero hasta esas herramientas cuentan con sus propios problemas.
SVG son las siglas en inglés de "gráficos vectoriales escalables". Es una tecnología que permite dibujar cosas como iconos, gráficos, logotipos o ilustraciones directamente internamente de una página web, sin que se vean borrosas al hacer teleobjetivo. Resulta útil porque...

Pero, aunque SVG sea tan versátil, usarlo en combinación con HTML y CSS puede volverse un lío por varias razones:
. ¡Sí, eso es un triángulo! Pero no es precisamente entrañable a la presencia ni acomodaticio de entender.A lo derrochador de los primaveras, el incremento de interfaces web ha evolucionado a colchoneta de "parchar" las herramientas existentes. Esto ha cedido emplazamiento al engendro del kitbashing, un término tomado del modelismo donde se ensamblan modelos a partir de piezas que no estaban diseñadas para funcionar juntas. En la web, esto se traduce en construir interfaces sofisticadas combinando HTML, CSS y SVG en formas para las que nunca fueron concebidos.
Esto ocurre porque HTML y CSS no fueron pensados originalmente para hacer aplicaciones. Se crearon para mostrar documentos, como artículos o noticiario, no para hacer cosas como editores de texto tipo Google Docs o chats como WhatsApp Web.

Frente a las limitaciones evidentes del DOM y CSS, algunos desarrolladores y estándares emergentes han puesto sus luceros en una alternativa radical: usar como plataforma principal para renderizar interfaces. La propuesta más extraordinario en esta semirrecta es HTML-in-Canvas, que plantea la idea de renderizar fragmentos de HTML internamente de un , permitiendo personalizar completamente su presentación visual.
Suena atractivo: ¿por qué no usar la potencia gráfica de Canvas para exceder las deficiencias del maniquí de caja y de estilo del navegador? Pero este enfoque trae consigo una gran cantidad de obstáculos tanto técnicos como filosóficos.
Para aparecer, la API propuesta sigue estando atada al DOM, lo que significa que los rudimentos a renderizar deben seguir existiendo internamente del árbol de documentos para ser interpretables. Esto introduce una contradicción: si necesitas para librarte del DOM, ¿por qué seguir dependiendo de él para dibujar?
Por otra parte, para ganar interactividad, el sistema obliga a reimplementar el maniquí de interacción desde cero: trámite de eventos de mouse, teclas, estados de foco, accesibilidad... todo debe recrearse manualmente.
Se proxenetismo de un sistema donde el desarrollador asume el control tajante, pero igualmente la carga completa, como si estuviera desarrollando usando un motor de videojuegos.
Uno de los principales argumentos a valenza de usar canvas es que “al menos es programable”. Pero en ingenuidad, es un solicitud extremadamente constreñido:
Posteriormente de todo lo que hemos trillado, queda claro que el maniquí contemporáneo de cómo se construyen las páginas web —usando HTML, CSS y el popular DOM— está roto, pero eso no significa que no haya alternativa. De hecho, según Wittens es totalmente posible mejorar todo esto… si nos atrevemos a cambiar las bases. Así que, ¿qué deberíamos hacer?
Hoy en día, cuando haces una web, terminas mezclando muchas cosas: contenido, estilo y comportamiento. Todo está enredado.
Lo ideal sería separar mejor:
Tener estos tres aspectos separados haría que todo fuese más acomodaticio de desarrollar, surtir y ascender.
Las páginas web de hoy ya no son solo documentos, son aplicaciones completas, como redes sociales, editores de texto, videojuegos… Y para eso necesitamos herramientas más modernas. Cosas como React, Vue o Svelte existen precisamente porque el sistema colchoneta (HTML+CSS+DOM) no da la talla.
Así que ¿por qué no rediseñar esas bases para que lo reciente ya venga incorporado?
Wittens insiste en que no estamos hablando de fantasías, pues ya hay proyectos reales que ya están probando cómo se podría hacer todo esto mejor. Uno de ellos, por ejemplo, es Use.GPU, un sistema visual hecho con tecnología nueva convocatoria WebGPU. ¿Qué logra?
Y esto lo ha hecho una sola persona, con un sistema más claro y reciente que toda la maquinaria contemporáneo del navegador.
Además hay navegadores nuevos como Servo y Ladybird que están empezando de cero. No arrastran todo el peso de 30 primaveras de web, así que pueden tomar decisiones más inteligentes desde el principio.
Imagen | Marcos Merino mediante IA
En Genbeta | En esto consiste la trabajo de un desarrollador Full Stack: un perfil profesional todoterreno
Compartir este artículo
Consultoria Personalizada
¡Si aun no tienes presencia en internet o
necesitas ayuda con tus proyectos, por favor, escribenos!