• Todo Scrum Scrum, el marco de trabajo Ágil más conocido, resumido en una única página.
  • Me encantan los enum de Java Se viene Java 8... ¿conocés a fondo los enums que se agregaron hace tiempo en Java 5?
  • Historias de Usuario Martin Fowler resume en muy pocas palabras el concepto de Historias de Usuario.

WebKit y Gecko, una rivalidad beneficiosa

logo de webkitCon la aparición del navegador Google Chrome, basado en WebKit, comenzó nuevamente el debate en torno al motor HTML Gecko, utilizado en Firefox. ¿Seguirá siendo relevante a largo plazo? ¿Debería Firefox adoptar Webkit y dejar de lado Gecko?

A pesar de la popularidad de WebKit, cada vez mayor, quienes comprenden las diferencias entre los dos motores y aprecian las fortalezas de Gecko saben que no tiene sentido especular sobre una futura adopción de Webkit en Firefox.

Las fortalezas de WebKit

WebKit es un motor de render HTML de código abierto, desarrollado por Apple básandose en el código del proyecto KTHML. WebKit es un motor sumamente liviano, reconocido por tener una base de código prolija y limpia, cumplir estríctamente con los estándares, y usar poca memoria para su funcionamiento. Por estos motivos WebKit es una opción muy popular para implementar navegadores, entre otros usos.

WebKit fue usado en principio en el navegador Safari y luego en el iPhone, pero varios proveedores conocidos también lo utilizan: Adobe, Nokia, Trolltech entre otros. WebKit también se usa en una gran cantidad de navegadores menos conocidos, como ser iCab, Omniweb, Shiira, y Epiphany. Más recientemente, Google eligió a WebKit para su plataforma movil Android, y para su navegador de escritorio Chrome.

El consenso entre los desarrolladores es claro: WebKit es un motor excelente que permite utilizarlo en muchos casos prácticos. WebKit está en todos lados, y gana popularidad a pasos agigantados. Y es justamente esta creciente popularidad que, para algunos, comienza a poner en duda la relevancia de Mozilla Gecko como motor HTML.

Por qué Apple rechazó a Gecko

Gecko, creado originalmente por Netscape, suele ser criticado por tener una cantidad de código enorme y no muy prestigiosa. Gecko siempre fue poderoso, pero todas sus impresionantes características eran a costa de tamaño, complejidad y uso (y abuso) de memoria. En consecuencia, Gecko no era apropiado para entornos restringidos, en donde agregar funcionalidad no resulta una prioridad.

Una de los principales motivos que aumentan la complejidad del código de Gecko es que, en realidad, apunta a ser mucho más que un motor HTML. El objetivo inicial de Mozilla era extremadamente ambicioso: la suit original de Mozilla incluía un navegador, un programa de mail y noticias, una herramienta de diseño web, y un cliente de chat. Además de renderizar HTML, Gecko brinda un framework para la creación de interfaces de usuario basadas en XML (llamada XUL), y provee de servicios para soportar extensiones en el navegador, las cuales son una de las características más valiosas de Firefox.

Gecko también utiliza XPCOM, otra de las fuentes de complejidad en su código. XPCOM le permitió a Gecko ser completamente modular. Sin embargo, muchos desarrolladores lo adoptaron con demasiado entusiasmo, y usaron XPCOM en lugares donde no era tan apropiado. Scott Collins, desarrollador de Mozilla, comentó que el uso excesivo de XPCOM fue uno de los mayores errores de Mozilla.

Así, con toda esta complejidad de la mano de XUL y XPCOM, Apple no tuve que pensar mucho al momento de elegir algo más liviano para Safari. Además, es probable que Apple ya estuviera viendo la necesidad de embeber Safari en dispositivos móviles, y Gecko no era una opción en ese momento.

En 2003, cuando Apple anunció que eligiría a KHTML para Safari, Mike Shaver (de Mozilla) respondió en su blog comentando las debilidades de Gecko. Allí predijo que Apple ayudaría a promover los estándares web, y que la decisión de Apple de crear su propio navegador ayudaría a crear varias oportunidades de aprendizaje mutuo.

"Gecko no logró el objetivo de ser 'pequeño y ágil'... Sinceramente espero que Mozilla aprenda de Safari/KTML, porque lograron hacer un trabajo increíble en una décima del código (de Gecko)".

Encaminando a Gecko para Firefox 3

Pero el tiempo pasó, muchas cosas cambiaron desde aquel 2003, y la base de código de Gecko avanzó constantemente. Gecko todavía es complejo, pero se superaron muchas de sus debilidades históricas. Gecko recibió mejoras masivas para Firefox 3, con muchos cambios que mejoran la experiencia de navegación.

Gecko 1.9 utiliza Cairo para mejorar el soporte de SVG (gráficos vectoriales), lo que permite algunas características interesantes, como ser un zoom de todos los componentes de la página. También se mejoraron algoritmos internos, permitiendo a Gecko pasar el test Acid2 . Además, Mozilla logró disminuir drásticamente el uso de memoria, superando a Safari y Opera.

Gecko también soporta algunos elementos de CSS 3 (ya implementados en WebKit), y tiene una mejor rendimiento al renderizar páginas. Por otro lado, Mozilla está preparando a TraceMonkey, su nuevo motor JavaScript que promete grandes mejores de peformance.

Desde un punto de vista técnico, Gecko es una opción muy sólida frente a WebKit. Mozilla además tiene los recursos, la experiencia y el apoyo de la comunidad para llevar a Gecko a nuevos rumbos.

Gecko enamorando a las masas

Por otro lado, es importante destacar que muchas de las características de Gecko están probando resultarle útiles a los proveedores externos. Se están construyendo muchas aplicaciones en XUL, con resultandos impresionantes. Incluso se puede usar a Firefox 3 como un entorno de ejecución XUL, por lo que es posible crear aplicaciones ricas con XUL y Javascript, y distribuirlas directamente por Internet. También estamos viendo aplicaciones complejas para Firefox distribuidas como extensiones.

Gecko está igualando a WebKit en rendimiento y bajo uso de memoria, y a la vez cuenta con algunas ventajas únicas que no se encuentran en ningún otro motor, y que sería dificil agregarlas a WebKit.

Entonces, ¿Mozilla reemplazará a Gecko por WebKit? Ni de cerca.

WebKit no es el futuro de Firefox

Mike Shaver, ingeniero de Mozilla, comenta su punto de vista sobre la discusión Gekco/WebKit:

"Siento mucho respeto por los muchachos de WebKit, y por sus logros. Tenemos una web mejor gracias a que ellos están mejorando, y mismo Mozilla es mejor al tener una competencia con quien se puede también cooperar, desde estándares web hasta las más triviales discusiones de implementación".

A pesar de que respeta los logros técnicos de WebKit, opina que no sería útil para Firefox, debido al modelo de desarrollo de y la fragmentación en el ecosistema de WebKit.

"Si miran al escenario de WebKit hoy en día, verán que hay un montón de proyectos diferentes, y no resulta claro cómo van a converger. Necesitaríamos trabajar intensamente para adaptar WebKit a nuestras necesidades, y agregar otra variante al escenario no ayudaría a nadie, y menos a la gente de WebKit!. Ya aprendimos sobre el mantenimiento e integración de ramas paralelas de desarrollo, y lo aprendimos a los golpes (y más de una vez, para ser sinceros), así que no es un problema que quisieramos volver a tener".

¿Transplante de cerebro? No, gracias

Evidentemente, con todo el apoyo y crecimiento que logró Mozilla, sin dudas Gecko continuará siendo una parte vital en el ecosistema de Mozilla. Que Firefox adopte WebKit es, hoy en día, muy poco factible.

Resultaría sumamente costoso un intento de integración entre WebKit y Firefox , y los beneficios no parecerían ser tantos.

Mike Shaver termina: "Seguimos de cerca el desarrollo de WebKit, y revisamos críticamente nuestra propia tecnología. Pero los transplantes de cerebro no son ni prácticos ni útiles".

 

 

Compartir
  • Invitado

    Muy bueno che gracias por la traducción.<br /><br />Y algo que destaco también, es la buena elección del título, muy centrado.

  • Invitado

    Y gracias por la traducción. Sin embargo, un pequeño apunte: \"performance\" no existen en español, por lo que se debería haber traducido también, ¿no?<br /><br />Un saludo,<br />diego.

  • Invitado

    Formidable gracias...

  • Invitado

    Está bastante interesante el artículo, pero hay una pequeña impresición: Epiphany usa como motor Gecko, no Webkit.<br />Salu2,

  • Invitado

    Epiphany usa webkit y Gecko , originalmente usa Gecko, pero existe un port con webkit...<br /><br />creo que ahi esta la confusión.<br /><br />en mi opinión , gecko ha aportado mucho y webkit aportara mucho también, ambos son necesarios para poder seguir desarrollando mejores alternativas.<br /><br />Buen atículo.

  • Invitado

    Me uno a las felicitaciones por traducir un artículo tan interesante como este. Gracias.

  • Invitado

    \"...y tiene una mejor performance al renderizar páginas...\" - Aló?

  • Invitado

    no seas mamón!!!1

  • Invitado

    Performance = Rendimiento<br />No lo jodas...

  • Invitado

    Pues yo utilizo Mac con Safari 3.2.1 Webkit y es muy rápido, pero algunas páginas necesitan Firefox (Firefox para Mac 3.0.6 tiene el motor Gecko pero se nota lento en el translado de código), y busque un Navegador parecido Camino 1.6.6 con Gecko y programado en Cocoa; este funciona más rápido que Firefox con el mismo motor en mi Mac. La razón se debe a que Firefox 3 para Mac no está al 100 escrito en Cocoa y algunas líneas de código son traducidas por un motor lo que hace que la versión no sea nativa al 100. Pero Internet Explorer de Microsoft sigue siendo el mejor aunque no sea el más rápido ni seguro pero la mayor parte de las páginas Web lo prefieren por alguna razón. (Trident Advance en desarrollo Win2Seven) Si alguno se descargo la Beta y se fija en los procesos y algunos registros del instalador notese un nuevo motor IE9 quiza.

  • Invitado

    Impresionante la traduccion.<br />Muy buen articulo, la verdad es que hay cosas que no sabia.<br />Saludos!

  • Invitado

    La razon porque muchas paginas prefieren a Internet Explorer es por ser el más usado, no por ser mejor. Esto es lo que hace que en microsoft los bugs se pasen a la especificación en vez de arreglarse. Ojalá con IE9 le den un poco de importancia al w3c, así el tiempo de trabajo de diseñadores web podría ser mejor aprovechado.

  • El motor de Opera 'presto' no se compara con Gecko, ni si quiera con WebKit. Es mucho mas liviano, mas rapido y soporta prefijos de webkit.

  • @Mr.X ¿Si? pues ahí tienes tu 'presto' en Opera, que se han pasado a Webkit también. Vendidos...

Deja tus comentarios

Post comment as a guest

0

El Podcast.

Episodio 20: Herramientas

herramientas

Junio 2014
Compartimos el hardware y las herramientas que usamos para programar todos los días.

Episodio 19: Salud

salud

Cuidándonos
La importancia de cuidar la salud en los equipos de trabajo para mejorar el desarrollo.

Episodios anteriores

archivados

El historial
Recorré el historial de todos los episodios, con muchísimos temas tratados en 20 minutos.

El nuevo Dos Ideas.

aspecto humano Nuevo logo e imagen, que representa el dinamismos y el aspecto humano del desarrollo de software.
diseño Nuevo diseño web, más dinámico y fresco que nos permite presentar el contenido de manera más ordenada.
smartphone Responsive design, para poder leer el contenido desde smartphones, tablets y otros pequeños dispositivos.
destacado Nueva portada con temas destacados mensuales y una selección de artículos especiales para leer y disfrutar.
buscador Nuevo buscador de artículos, más preciso y simple de usar para encontrar el contenido que necesitás.
microfono Podcast mensual de Ideas Ágiles, donde en 20 minutos debatimos temas relacionados a los equipos y al desarrollo.
Leer más detalles...

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw