Blog

Lo que deseamos

Un viejo tópico dice que “que consigas todo lo que deseas” es una maldición particularmente insidiosa. Con el cambio de Edge al motor de renderizado de Chrome, bueno, para bien o para mal, un amargo deseo se está haciendo realidad.

Creo que nos dirigimos a los problemas, aunque no puedo asegurarlo. Problemas – problemas yo . La rampa de acceso a ella, sin embargo; sólo he oído hablar de eso. Sólo he estado haciendo esto durante diez años. La última vez me perdí todos los preparativos. Lo que puedo decir con certeza -lo que sé por experiencia- es que nunca he hecho realidad un deseo formulado con ira sin lamentarlo.

Diez años (no me importa decirlo) es mucho tiempo. Cuando me abrí paso por primera vez en unas prácticas de diseño web, el viejo Internet Explorer ya era un hazmerreír.

“Si notas que una parte de tu contenido aparece y desaparece, y secciones de la página sólo se dibujan a medias, son buenos indicios de que un elemento requiere un diseño. […] A hasLayout fix implica nada más que declarar una propiedad CSS que hace que un elemento obtenga un diseño, cuando normalmente no tendría un diseño por defecto”.

La propiedad hasLayout de Internet Explorer

Odiaba a IE. Creo que ahora puedo admitirlo. Intenté no hacerlo; de verdad, sinceramente lo hice. Le decía a la gente que era divertido de apoyar, si puedes creerlo.

Mientras todos los demás navegadores se volvían más y más fáciles de tratar, intenté convencerme de que al menos todavía había un desafío al viejo y estrafalario IE. Eso se convirtió incluso en un punto de orgullo: Me había vuelto tan bueno arreglando problemas oscuros de IE que había aprendido a esquivarlos durante el curso de mi desarrollo diario, sin dejar nada (bueno, menos) que temer cuando llegara la gran fase de “abrirlo en IE y ver qué se rompió”.

Es divertido, en cierto modo. Diversión. Esa fue la mentira que me dije a mí mismo.

/* Fixes #2588: When Windows Phone 7.5 (Mango) tries
to calculate a numeric opacity for a select (including
“inherit”) without explicitly specifying an opacity on
the parent to give it context, a bug appears where
clicking elsewhere on the page after opening the select
will open the select again. */

Fuente jQuery Mobile

Lo odiaba. Odiaba a IE, en cada una de sus encarnaciones. Lo odiaba tanto como los demás.

“Internet Explorer 6 tiene un error desconcertante que involucra múltiples elementos flotados; los caracteres de texto del último de los elementos flotados a veces se duplican debajo del último flotado. … La causa directa no es más que los comentarios HTML ordinarios, como, <!-- end left column -->, intercalados entre flotadores que vienen en secuencia”.

Bug de caracteres duplicados en Explorer 6

Una pérdida de mi maldito tiempo es lo que fue. Todas esas horas que pasé encorvado sobre una máquina virtual de mala calidad: cargar, esperar, lanzar una solución sin sentido a un error sin sentido, volver a cargar, crashAbrir IE de nuevo, esperar, comprobar que la caché no era un factor, volver a cargar, esperar y repetir. Podría haber hecho mucho más con mi tiempo – podría haber aprendido mucho más.

Estaba seguro de que no sólo frenaba mi trabajo, y no sólo frenaba la web, sino que frenaba me de vuelta, como desarrollador. En cuanto al segundo punto, creo que no estaba del todo equivocado: todos los oscuros conocimientos sobre errores del navegador IE 6-7 que acumulé son ahora inútiles. Todo lo que tengo para mostrar es un involuntario estremecimiento ante la palabra “filtro”, una inescrutable preferencia por padding sobre marginy un miedo muy arraigado, pero en gran medida infundado, a z-index.

“…los espacios en blanco adicionales hacen que se recojan los estilos incorrectos si el nombre de la clase real es una subcadena (o supercadena) de algún otro nombre de clase”.

Error de análisis de espacios en blanco en IE5/Mac

Deseaba que desapareciera. Desinstalado por un virus inteligente y extendido, prohibido por la ley, Microsoft finalmente decidió cortar las pérdidas de su motor de renderizado de mala calidad y cambiar al motor de renderizado de Firefox, Gecko -. lo que sea – solo haz que desaparezca. Pero… no. La web seguía evolucionando y los desarrolladores seguíamos avanzando, barcos contra la corriente, arrastrados sin cesar hacia el pasado.

Llegó Chrome, Firefox siguió mejorando, las nuevas características siguieron saliendo, las emocionantes e interminables posibilidades presentadas por el advenimiento del diseño web responsivo se extendieron ante nosotros, y también (rápido aparte) recuerda que sólo tendrás un par de días para hacer que todo funcione más o menos en el viejo IE, así que no te demasiado llevado a cabo.

“SI está usando IE8, Y está usando el enfoque de numeración de lista ordenada de CSS descrito anteriormente, Y el HTML que tiene las clases que usan el counter-reset y counter-increment CSS está OSCURRIDO cuando la página se carga, ENTONCES cuando ese HTML oculto se muestra, TODOS los números automáticos serán CERO, PERO SÓLO SI EL CSS :hover SE UTILIZA LA PSEUDOCLASE EN ESA PÁGINA”.

El error “hover” de IE8: ¿el error más impresionante de IE?

Es difícil imaginar que se experimente ese tipo de frustración hoy en día, al menos para nosotros los relativamente veteranos. No quiero decir que no haya una cantidad increíble de trabajo involucrado en la puesta a punto de las cosas entre los navegadores en estos días, también – Sé muy bien que hay. Pero es difícil no sentir de vez en cuando una punzada de “en mi día, todos nosotros teníamos eran carrozas, y déjame contarte sobre el error de doble margen de IE,” cuando se oye hablar de una pequeña diferencia en el funcionamiento de CSS Grid de un navegador a otro.

Me equivoqué; quiero ser claro en ese punto. No me equivoqué por estar frustrado. No creo que se deba culpar a nadie por estar frustrado con esos viejos fallos del navegador, igual que no creo que se deba culpar a nadie por su frustración con cualquier aspecto del desarrollo web ahora. No, me equivoqué por la conclusión a la que me llevó la ira: el deseo de ver Trident quemado hasta los cimientos y la tierra donde una vez estuvo salada.

Sospecho que de esa tierra salada sólo surge una cosa dramáticamente irónica: esas mismas frustraciones, nacidas de nuevo, para una nueva generación de desarrolladores web. Cuando comencé mi carrera, pocos años después de la guerra de los navegadores, esas semillas ya habían echado raíces. Porque, durante un tiempo -un tiempo anterior al mío- los desarrolladores web maldijimos a Netscape de la misma manera. El más débil, con más errores, indiscutiblemente peor navegador. Pero Internet Explorer – desarrolladores amado ese navegador. Y deseaban que esos otros navegadores – el malo navegadores – sólo desaparecer: desinstalado por un virus inteligente y extendido, prohibido por la ley, Netscape finalmente decidió cortar las pérdidas de su motor de renderizado de mala calidad y cambiar al motor de renderizado de IE, Trident – lo que sea – solo haz que desaparezca. Esos inescrutables errores de Internet Explorer no se produjeron por casualidad o negligencia. Se produjeron porque Internet Explorer tenía ganadoy nos encantó que ganara.

Verás, nuestra frustración y nuestra rabia nos mintieron, como suelen hacerlo. Nos dijeron que apoyar a esos otros peores los navegadores no sólo frenaron nuestro trabajo, y no sólo frenaron la web, sino que frenaron nosotros de vuelta, como desarrolladores. Una pérdida de nuestro maldito tiempo es lo que era. Entonces, nos dijimos que no era sólo para nuestro propio bien, sino por el bien de toda la red.

Hemos sopesado un poco más a IE. Le dimos un poco más de voz en nuestras decisiones. Y así, teniendo tantas fichas, Microsoft jugó sus cartas en consecuencia – ¿quién podría culparlos? Todo el mundo construyó sitios web para ellos en primer lugar, y los otros en segundo lugar. Su palabra no era leypero ciertamente fue más que sugerencia. Claro, se desviaron de los estándares de la web aquí y allá (sólo un poco), pero después de todo, ¿no era algo implementado por The Biggest Browser una especie de de facto estándar de todos modos? Además, apoyar un navegador mejor, más rápido y más fácil era hacer un servicio a la propia web. Junto con Microsoft, estábamos impulsando la web. Todo el mundo gana.

El motor de renderizado que hace funcionar el navegador Edge de Microsoft hoy en día – EdgeHTML – es una bifurcación del viejo Trident. Es una versión reducida y ampliamente mejorado de Trident, sin duda, pero no es, digamos, universalmente juzgado por su propio mérito. El equipo de EdgeHTML siempre ha estado trabajando con un par de desventajas: la primera era técnica, en el sentido de que se necesitó una tremenda cantidad de tiempo y esfuerzo para ponerse a la altura de los de Safari, Firefox y Chrome. La segunda era emocional. Éramos nosotros -tú y yo-, hastiados de años de Internet Explorer, mirando a una alegre “e” minúscula azul con frío desdén.

Hace unas semanas, el equipo de Edge anunció que pronto abandonaría EdgeHTML en favor de Blink, el motor de renderizado que utiliza Chrome. Con este cambio, los últimos rescoldos de Trident se apagarán para siempre. El deseo que había compartido con tantos se verá finalmente cumplido. Irónicamente, resulta que EdgeHTML se estaba convirtiendo en un motor de renderizado bastante sólido.

Blink es un proyecto de código abierto liderado y gobernado por Google. Es el motor de Chrome y de Opera, que también abandonó su motor de renderizado propio hace unos años.

Por un margen abrumador, Blink es (y será cada vez más) la forma en que se experimenta la web en todo el mundo. Blink es rápido, estable, repleto de características modernas y, en comparación con el desarrollo del todavía en desarrollo EdgeHTML indoloro.

Puede que haya ocurrido demasiado tarde para salvarnos de esos antiguos bugs de IE, pero nuestro trabajo será será más fácil ahora que hay un motor de renderizado menos que soportar. Tú y yo perderemos un poco más de nuestra carga colectiva de “pero, ¿funciona entre navegadores? Nuestros proyectos serán más fluidos, y la web perderá un poco más de lo que antes la frenaba.

Como administradores del motor que impulsa gran parte de la web, la palabra de Google no será leypero ciertamente más que sugerencia. Y puede que en el transcurso de los próximos años se desvíen de los estándares de la web aquí y allá (ya sea intencionada o accidentalmente) de la forma más mínima. Pero, al fin y al cabo, ¿no es algo implementado por The Biggest Browser una especie de estándar de facto en sí mismo? Además, ¿cómo se puede discutir? Favorecer al navegador mejor, más rápido y más potente es hacer un servicio a la propia web, después de todo. Junto con Google, estaremos impulsando la web. Todo el mundo saldrá ganando.

Esto es, siempre y cuando las pequeñas desviaciones de los estándares y los minúsculos y molestos errores no crezcan con el tiempo, gracias a las fuerzas gemelas de la entropía y la complacencia. A menos que las decisiones que hemos tomado por el bien de la web (de la mano de un notorio empresa de publicidad hostil a la privacidad) comienzan a sentirse un poco más oscuras, y un nuevo coco comienza a tomar forma en nuestras mentes – a menos que encontremos que nuestros viejos miedos y frustraciones han resurgido (como un fénix que se rinde a un par de cientos de píxeles de distancia de donde debería y parpadea de una manera extraña cuando se desplaza).

No hace falta mucha imaginación para ver que en los próximos años aparecerán motores de renderizado más interesantes. Tampoco hace falta mucha imaginación para verlos fracasar por falta de soporte, ya que favorecemos “el navegador que todo el mundo usa” – primero por elección, y más tarde quizás a regañadientes al servicio de “la línea de fondo”.

De nuevo, sin embargo, no lo sé. Yo mismo nunca he visto que esto ocurra con un motor de renderizado. Sólo he escuchado la historia completa, y sólo sé de primera mano cómo termina. Conozco el final por el dolor de las viejas cicatrices psíquicas; por un estremecimiento involuntario ante algunos trozos de código, y por la memoria muscular que me obliga a evitar otros. Lo conozco por los chistes de las charlas de las conferencias que siempre me parecen un poco cansados, pero que siguen resonando igual de una manera que no me permitiría admitir y que siguen hablando de un deseo secreto que guardo en lo más profundo de mi corazón. Un deseo amargo y odioso.

Pero oye, escucha. Ya no. Ahora, quiero decir – nunca lo haría. Realmente me encanta un buen error de motor de renderizado, ahora. Lo hago.

“Las transformaciones 3D de CSS con perspective() se renderizan al revés”.

bugs.chromium.org

Quiero decir, esto es realmente un error divertido, ¿verdad? Como, divertido en un manera. ¿Sabes?

Es divertido.

Será divertido.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Mira también
Cerrar
Botón volver arriba
Cerrar
Cerrar