Krypton Solid

Dentro del nuevo motor de renderizado de Microsoft para el «Project Spartan»

Dentro del nuevo motor de renderizado de Microsoft para el «Project Spartan»

Este artículo cubrirá la historia interna del motor de renderizado que impulsa a Spartan, cómo llegó a ser y cómo 20 años de la plataforma Internet Explorer (Trident) han ayudado a informar cómo fue diseñado.

Nota del editor: * La semana pasada, Microsoft hizo su mayor anuncio para la web desde que introdujo Internet Explorer por primera vez en 1995: un nuevo navegador, con el nombre en código «Proyecto Spartan. » Entonces, ¿qué significa esto para nosotros como diseñadores y desarrolladores? ¿Qué motor de renderizado utilizará Spartan y cómo afectará a nuestro trabajo? Hablamos con Jacob Rossi, el ingeniero senior del equipo de plataforma web de Microsoft, sobre el nuevo navegador, el motor de renderizado detrás de él, y si va a reemplazar a Internet Explorer a largo plazo. Este artículo, escrito por Jacob, es el resultado de nuestras conversaciones, con algunas ideas que pueden resultarle muy útiles. *

espartano es un proyecto que se ha estado haciendo durante algún tiempo y durante los próximos meses continuaremos aprendiendo más sobre el nuevo navegador, lo que tiene para ofrecer a los usuarios y cómo será su plataforma. Será cuestión de unos meses hasta que tanto los usuarios como los desarrolladores puedan probar Spartan por sí mismos, pero hoy podemos compartir algunas de las partes interesantes. Este artículo cubrirá el historia interna del motor de renderizado que impulsa a Spartan, cómo llegó a ser y cómo 20 años de la plataforma Internet Explorer (Trident) han ayudado a informar cómo lo diseñó nuestro equipo.

El proyecto «Spartan», un nuevo navegador de Microsoft, se anunció oficialmente la semana pasada. (Vista previa grande)

Lectura recomendada: ¡Pero el cliente quiere soporte para IE 6!

Lecciones aprendidas de Internet Explorer

Hace veinte años, Microsoft presentó por primera vez Internet Explorer al mundo. Para muchos usuarios, es un nombre familiar y una marca reconocida en todo el mundo, pero para los desarrolladores web, esas extravagantes versiones anteriores de Internet Explorer a menudo dificultan el reconocimiento de los esfuerzos recientes de Microsoft para respaldar e implementar estándares web. Aunque es probable que los desarrolladores web recuerden las versiones heredadas de Internet Explorer por errores, hacks y soluciones sucias, IE dio forma a la web de una manera positiva para desarrolladores web al traer CSS, secuencias de comandos HTML dinámicas y DOM, AJAX / XMLHttpRequest, drag drop, innerHTML, aceleración de hardware y otras tecnologías a la web.

En el equipo de navegadores de Microsoft, nos consideramos una organización de aprendizaje. Cada año, nos tomamos el tiempo para reflexionar sobre nuestros logros y nuestros fracasos para aprender y crecer. A partir de ahí, cada lanzamiento de IE ha tenido un impacto duradero en la forma en que diseñamos. Nuestros conocimientos sobre la importancia de la cooperación entre los proveedores de navegadores, los estándares, la compatibilidad, la interoperabilidad, el rendimiento y la seguridad se unen para dar forma a la forma en que diseñamos nuestro nuevo motor de renderizado.

Lectura recomendada: ¿Cuál es el problema con el navegador de Internet de Samsung?

Nuevo motor de renderizado de Microsoft

El nuevo navegador de Microsoft estará impulsado por un nuevo motor de renderizado, EdgeHTML.dll. Windows 10 ya lo tiene integrado y estará separado de Trident (MSHTML.dll) que impulsó Internet Explorer durante décadas.

Como sabemos, las últimas versiones de Trident que impulsan Internet Explorer 11 mostraron un notable soporte para los estándares (comencé a hacer una lista de algunos de los notables, pero se detuvo después de alcanzar 75 especificaciones). Pero su progreso se vio fuertemente afectado por la carga del soporte heredado para los modos de documento IE5.5, IE7, IE8, IE9 e IE10, un concepto que la web ya no necesita.

Así que nos dispusimos a crear un nuevo motor. utilizando el soporte de estándares de IE11 como base. Vi a Justin Rogers, uno de nuestros ingenieros, presionar «Enter» en la confirmación que bifurcó el motor; tomó casi 45 minutos solo para procesarlo (¡solo confirmando los cambios, no construyendo!). Cuando se completó, hubo un silencio liberador cuando nos dimos cuenta de lo que ahora nos permitía hacer: eliminar código, la catarsis favorita de todos los desarrolladores.

En los próximos meses, se eliminaron partes del legado de IE del nuevo motor. Atrás quedaron los modos de documento. Se eliminó el subsistema responsable de emular las peculiaridades del diseño de IE8. VBScript eliminado. Los restos como attachEvent, X-UA-Compatible, currentStyle se eliminaron del nuevo motor. La base de código ya se parece un poco a Trident (mucho más divergente que incluso Blink de WebKit).

Proyecto Spartan
Project Spartan estará impulsado por un nuevo motor de renderizado y el motor Chakra JavaScript, introducido con IE 9.

Lo que quedaba era borrón y cuenta nueva. Una plataforma web moderna construida con interoperabilidad y estándares en su núcleo. A partir de ahí, comenzamos una importante inversión en interoperabilidad con otros navegadores modernos para garantizar que los desarrolladores no tengan que lidiar con inconsistencias entre navegadores. Hasta la fecha, hemos solucionado más de 3000 problemas de interoperabilidad (algunos se remontan al código escrito en los años 90) además del más de 40 nuevos estándares web estamos trabajando. Por ejemplo, los problemas de innerHTML de larga data ahora están solucionados. Incluso los estándares recientes, como Flexbox, están recibiendo un amor renovado para que el nuevo motor coincida con la última especificación (esto se mostrará en una futura versión de vista previa de Windows 10). Project Spartan también tendrá un versión actualizada de las herramientas de desarrollo F12. Algunos de mis favoritos personales que están en las compilaciones de vista previa o en camino:

  • Preservar-3d
  • El mas soporte avanzado para ES6 en este momento
  • XPath
  • Audio web
  • API de captura de medios
  • Web RTC 1.1 (ORTC)
  • Toque Eventos
  • Política de seguridad de contenido
  • HTTP / 2

Resulta que un motor de renderizado moderno e interoperable por sí solo no es suficiente para hacer que la web simplemente funcione. Para ello, el navegador también debe asegurarse de que los sitios proporcionen al navegador el código de «navegadores modernos» actualizado. Así que nuestro nuevo motor también viene con un nueva cadena de agente de usuario. Si los tokens de cadena de agente de usuario fueran pegatinas, entonces la cadena UA del nuevo motor parece la parte posterior de la mayoría de las computadoras portátiles de desarrolladores web en estos días. Pero esto produce resultados sorprendentemente positivos en compatibilidad y permite que muchos sitios envíen contenido moderno de nuestro nuevo motor. También me da una oportunidad más para volver a tocar el tambor: Debe evitarse a toda costa el rastreo de agentes de usuario.!

«Eso es genial, pero mi empresa tiene sitios que requieren IE8».

Para asegurarnos de que también conservamos la compatibilidad con versiones anteriores, no nos desharemos de Trident. En su lugar, diseñamos e implementamos un enfoque de motor dual, donde se puede cargar el nuevo motor de renderizado moderno o Trident. Este cambio ocurre de forma transparente para el usuario. Windows 10 usará EdgeHTML para la web (así que no se preocupe más por los modos de documento) y solo cargará Trident para sitios empresariales heredados. Este enfoque de motor dual permite a las empresas actualizar a un motor moderno para la web mientras ejecutan sus aplicaciones de misión crítica diseñadas para IE de antaño, todo dentro del mismo navegador. Aún mejor, con el enfoque de motor dual podemos garantizar que solo se realicen correcciones de seguridad esenciales en Trident, minimizando la pérdida de código y asegurando que se preserve la compatibilidad para los sitios empresariales, mientras nos enfocamos en innovar en lo nuevo (y siempre actualizado). motor de renderizado sin ataduras.

Spartan es el navegador que esperamos que la gente use en Windows 10. Dicho esto, hay un conjunto de empresas que han construido herramientas clave sobre el modelo de extensibilidad heredado de Internet Explorer (por ejemplo, ActiveX personalizado, barras de herramientas, objetos de ayuda del navegador, etc.) . Por lo tanto, Internet Explorer estará disponible en Windows 10 para algunas aplicaciones web empresariales que requieren un mayor grado de compatibilidad con versiones anteriores. Esta versión de Internet Explorer utilizará el mismo enfoque de motor dual que Spartan con EdgeHTML predeterminado para la web, lo que significa que los desarrolladores no necesitarán tratar Internet Explorer y Spartan de manera diferente y nuestro hoja de ruta de estándares será lo mismo. El navegador funcionará con Motor JavaScript de Chakra.

«Eso es genial, pero algunos de mis usuarios todavía tienen IE8».

Te oimos. Lo que es doloroso para el soporte de los desarrolladores web también es doloroso para nuestro equipo de navegadores. En mayo, hablamos de actualizar a nuestros usuarios como una prioridad máxima. Más tarde en agosto, anunciamos un política de soporte del navegador que animará a los usuarios a ponerse al día. Más significativamente, anunciamos la semana pasada que Windows 10 será un actualización gratuita para los clientes que ejecutan Windows 7, Windows 8.1 y Windows Phone 8.1 que se actualizan durante el primer año después del lanzamiento. Además, trataremos a Windows 10 como un servicio: mantendremos a los usuarios actualizados y brindaremos funciones cuando estén listas («actualización automática»), sin esperar a la próxima versión principal. Esto significa el El nuevo motor de renderizado siempre será verdaderamente imperecedero..

La hoja de ruta por delante

Otro cambio bienvenido que hemos estado implementando durante el año pasado es la promesa de una mayor apertura sobre nuestros planes y hoja de ruta de la plataforma web. Durante el último año, es de esperar que haya experimentado algo de esto a través de nuestro hoja de ruta de estándares abiertos (uno de mis proyectos paralelos personales), nuestro Reddit AMA, diálogo regular a través de @IEDevChaty compartiendo vista previa de compilaciones muy temprano en nuestro proceso de desarrollo. Verás más de esto durante el próximo año.

Para el soporte de estándares, mantendremos una cartera de nuevas funciones en las que estamos trabajando. Lo que viene en el futuro cercano son Web Audio, Image srcset, @supports, actualizaciones de Flexbox, Touch Events, generadores ES6 y otros que han visto confirmaciones en las últimas semanas. Lo que hay más allá son elementos de alto precio como Web RTC 1.1 (ORTC) y Media Capture (getUserMedia () para acceso a cámara web / micrófono). Más allá de eso, estamos empezando a usar tu aportación (y otros factores, como los datos de uso del mundo real recopilados a través del rastreador de Bing, que ahora puede ejecutar nuestro nuevo motor) para dar forma a cómo priorizamos nuestras próximas inversiones en la plataforma.

Nuestros planes para la plataforma en la versión inicial no son fijos; los comentarios de los desarrolladores la han moldeado y la seguirán moldeando. Así que espere cambios ágiles. Esto es lo que puede hacer para salir adelante:

  • Pruebe el nuevo motor. EdgeHTML se puede habilitar hoy en Internet Explorer en el Vista previa técnica de Windows 10 (una vista previa de Project Spartan vendrá más adelante) navegando a about:flags y habilitar las «Funciones experimentales de la plataforma web». Si está en una Mac o no tiene una máquina, puede actualizar a las compilaciones de vista previa de Windows 10, existe el servicio en la nube RemoteIE recientemente lanzado que le permite transmitir una versión de IE ejecutando el nuevo motor sin descargar imágenes grandes de máquinas virtuales ( nota: todavía estamos en el proceso de implementar la versión preliminar de la semana pasada en RemoteIE).
  • Errores de archivo. Nuestra inversión en interoperabilidad con navegadores modernos está impulsada por datos de informes de errores y el impacto del sitio en el mundo real.
  • Siéntase libre de monitorear y darnos su opinión sobre nuestra hoja de ruta de estándares, basada en comentarios de los desarrolladores más de 40 estándares diferentes han pasado de «en consideración» a en desarrollo desde que lanzamos nuestro hoja de ruta abierta en mayo de 2014.

Personalmente, estoy emocionado de compartir esta primicia sobre el nuevo motor de renderizado web que impulsa Project Spartan en Windows 10 tan temprano en nuestro proceso de desarrollo. Esperamos poder compartir más de nuestros planes y en los próximos meses. Mientras tanto, si tiene comentarios, llegar a mí y el resto de nuestro equipo. Hagamos que la web funcione para usted.

Deja un comentario