No sé cuántos de ustedes leen lo suficiente de la blogósfera en inglés. Yo leo mucho y últimamente me sorprendió todo lo que se está hablando de Firefox. Ya no es todo color de rosa como fue en un principio, todo el mundo se queja de lo pesado que es Firefox, de la memoria que consume, de las cosas que le faltan… todos los síntomas del amor a primera vista que se está destiñendo.
Como si esto fuese poco Ben Goodger (uno de los desarrolladores de Firefox) salió la semana pasada a explicar los números de versiones de Firefox porque en Digg (el menéame en inglés) apareció un link hablando de cómo conseguir Firefox 3. También leo a Jesse Ruderman (encargado de las actualizaciones diarias Firefox) mencionando una conversación en el grupo de desarrollo sobre puntos claves en la publicación de versiones de Firefox y todo un circo alrededor que incluye gente diciendo que hay que contratar más programadores, programadores diciendo que faltan beta-testers y beta-testers que dicen que hace falta que les digan qué testear.
Yo tampoco entendí un cuerno; así que me puse a investigar.
Las bases: cómo se desarrolla
Partamos desde el principio. El desarrollo de aplicaciones de este calibre se realiza por ramas, existe un código base y las modificaciones del mismo forman un árbol de cambios. Cada bifurcación sucede en el momento clave de lanzar una versión del producto o en cambios demasiado importantes. Para que se den una idea, pueden ver el diagrama de bifurcaciones del motor de renderizado de Firefox (Gecko) y notarán que el sistema no es tan complicado.
Malas noticias, es mucho peor que complicado. Al momento de escribir esto, Firefox tiene 3 ramas activas:
- Firefox 1.5: la rama estable
- Firefox 2.0: la rama inestable
- Firefox 3.0: conocido como trunk, su nombre código es campo minado (minefield), imagínense
Cada rama tiene sus problemas y necesidades. Idealmente, la rama estable está congelada en este momento: sólo es modificada para actualizaciones críticas. La rama inestable debería ser la de mayor movimiento, se puede romper cada tanto; pero las roturas deberían disminuir a medida que se acerque a la fecha de lanzamiento. La rama para suicidas aún está demasiado en pañales como para que alguien que no se dedique al desarrollo quiera meter mano. Obviamente, si algo se corrige en una versión es necesario que sea corregido en las demás también (especialmente hablando de seguridad) y que los cambios nuevos no rompan nada que antes funcionaba… con miles de personas metiendo mano en el código, es una tarea titánica.
El transpaso de una versión a otra es un proceso sumamente cuidado y planeado. Se congela la versión inestable en un estado que sea considerado “usable” (se le dice versión alpha) y sólo se permiten modificaciones para arreglo de errores y/o funciones específicas. Se utiliza todo el feedback de esa primera versión alpha y se lanza una segunda versión alpha, aún es necesario andar con cuidado pero se puede usar. Se siguen corrigiendo errores y se lanza un Candidato de Entrega (Release Candidate), esto es una versión casi final, el tan famoso beta. Se siguen corrigiendo errores y se suele lanzar una segunda versión beta que, si todo va bien, sería la versión final (salvo por un par de modificaciones ínfimas).
El futuro: ¿A dónde vamos?
Existe un grupo – bastante grande por lo que tengo entendido – de personas que deciden qué es lo que incluirá cada versión, qué cosas se dejarán para más adelante, las prioridades de las mismas, etc. en fin, de organizar toda la logística del proyecto. Para Firefox esto está muy bien pensado. Se sabe cuándo se espera el lanzamiento de versiones alpha y beta de Firefox 2.0, cuáles serán las diferencias principales entre 1.5, 2.0 y 3.0 y qué es lo que se espera de cada uno.
Los objetivos para Firefox 2.0 (obtenidos de la página oficial [en inglés]) se pueden categorizar en:
- Aspecto Visual: la cara visible al usuario del navegador
- Favoritos e Historial: un área relegada del navegador
- Experiencia de Usuario: pequeños detalles que hacen que el navegar parezca natural
- Sindicación: mejorar el sistema de sindicación incluído en el navegador
- Extensiones: mejorar el sistema de extensiones
- Búsqueda: las barras y los sistemas de búsqueda dentro del navegador
- Distribución: la forma en la que los usuarios obtienen el navegador
- Infraestructura y Performance: memoria, bugs, API, etc.
- Seguridad: parches de seguridad, métodos anti-phishing y SSL (encriptación)
- Soporte Multiplataforma: ya han pensado inclusive en Windows Vista
- Internacionalización: soporte en múltiples idiomas
Son muchas cosas… y aquellos que lean inglés van a poder ver el detalle con el que están enfocando cada una de estas áreas. Ya está definida la prioridad de cada objetivo y la versión tentativa para la que debería de estar cubierto cada aspecto de los mismos. Lo que es más, si todo sale como esperado deberíamos de tener nuestro Firefox 2.0 corriendo para fines de Agosto de este año.
Y en cuanto a Firefox 3.0 la cosa es más complicada. Los cambios son extremadamente más radicales. Gran parte de la infraestructura que hace funcionar al navegador va a cambiar. Por lo que tengo entendido (y aquí ya estoy pisando mojado) el sistema funcionaría en dos partes: XULRunner y Firefox. XULRunner es el sistema de renderizado de Firefox, Thunderbird, Sunbird (todos productos Mozilla), Songbird (un proyecto muy nuevo para un reproductor de medios) y otros tantos; básicamente estos correrían sobre la base de XULRunner. Los beneficios son obvios, mientras más aplicaciones XUL utilicemos más rápidas parecerán ya que una sola instancia de XULRunner bastaría para correrlas todas. Esto relajaría los problemas de memoria un poco y facilitaría el desarrollo de ciertas funcionalidades ya que el renderizado de la interfase gráfica sería algo aparte.
El presente: todo muy lindo… pero ¿y?
La conclusión obvia es: tenemos a Firefox 1.5 (o derivado de seguridad) para los que les gusta la estabilidad. Para aquellos arriesgados y a los que les guste reportar bugs tienen Firefox 2.0 para probar y jactarse de que la PC se cuelga por algo que no es Windows. Para aquellos a quienes no les importen sus datos o estar navegando y que se rompa todo o sean fanáticos absolutos y reportan bugs por un pixel mal puesto: tienen Firefox 3.0.
2.0 se proyecta interesante y 3.0 mucho más. Los cambios prometidos son muy llamativos pero habrá que verlos antes de juzgar. Cada quien puede usar la versión con la que se sienta cómodo, y ayudar en lo que pueda (aunque más no sea reportar los bugs cuando nuestro Firefox explote). Todo ayuda a hacer un navegador entre todos… y eso es lo que me gusta de Firefox: yo puedo ser tan parte de él como yo quiera.
Muy buen articulo mati.
Una de las cosas que me gustaría (yendo casi a cuestiones mas superficiales) es que las pestañas se puedan manejar y ordenar como queramos.
Quienes manejamos dreamweaver vimos en la version 8 que podemos acomodar haciendo un clic y arrastrando, las posiciones de las pestañas. Esto facilita a quienes navegamos por 7, 8 o 9 nueve pestañas a la vez. Ordenarlas por (¿categorías?)
Como dije, es un aspecto muy superficial el que me gustaría tuvice la próxima versión de firefox.
Es un tema complicado el del desarrollo distribuido, yo creo que la fundación Mozilla DEBERÍA asegurar una línea de producción estable, sin dejar de lado las propuestas de cambio por parte de la comunidad.
Esta nueva idea que tienen ahora de dejar de brindar soporte, 6 meses después de que se haya iniciado una nueva linea de producción me parece
ridícula, MS todavía da soporte al IE6… después de mas de 3 años de su lanzamiento.
Buen artículo Matías, aunque hay una cosa que me llamó la atención. Tendrías que remarcar que el XULRunner viene a ser como una Java Virtual Machine pero para el Firefox. Ese proyecto es el verdaderamente complicado de programar porque es que te “muestra” en pantalla el navegador y permite que interactues con él. El código del Firefox en cambio, es “sólamente” una mezcla de JavaScript y C++ que indica al motor como se comportan tal o cual cosa. Ya está en marcha su desarrollo y es muy interesante. Es más, ya hay gente (que con mucha paciencia) ya está experimentando con ese código. En cuanto a lo de que va a ser más rápido y eso… en realidad todavía no hay tanto trabajo hecho y algunas de estas cosas todavía se están discutiendo mucho (ej: distintas instancias consumen más recursos pero son más seguras vs. una misma instancia es más eficiente pero si se cuelga se cuelga todo).
marcoss, tu comentario es interesante, pero no te olvides que el ciclo de desarrollo del Firefox es mucho más rápido y ágil que el del IE. Por lo tanto el mantenimiento de muchas versiones es un tema más complicado, sin contar también con que consume más recursos humanos.
Gancé: coincido. Actualmente yo cuento con esa capacidad en mi Firefox mediante la extensión Tab Mix Plus. Tengo entendido sin embargo, que va a ser incorporado a versiones futuras por pedido de la comunidad.
Javier: también comparto. Mi idea era que se va a separar totalmente el motor de rendering del navegador en sí. He escuchado un poco de XULRunner, e inclusive visto versiones inestables oficiales para pruebas y no dudo que sea un trabajo titánico sobre el que se tenga que discutir mucho todavía.
marcoss: con vos sí que no coincido :p El soporte que se descontinúa no es la gran cosa. La página oficial dice que el soporte se mantiene para la versión corriente y el milestone inmediato anterior, lo que significa algo así como 1 año, 1 año y medio de soporte. También menciona la capacidad de negociar soporte para versiones asociadas a alguna marca (coughGooglecough) para otras versiones. Por otro lado, como bien dice Javier, la diferencia entre una versión y otra es simplemente de features, no existe una diferencia abismal entre una versión y otra y la mayor parte de los parches críticos llegan a la mayoría de las versiones más usadas. Hay que ver cómo evoluciona eso también.
gance y mati … no hace falta extensiones, FX 1.5 ya hace eso en forma nativa.
Rodri, con la cantidad de extensiones que tengo y demás ya ni sé qué viene incluído por defecto y qué no.
marcoss: MS todavía da soporte a IE6 porque no tiene otro navegador. Ya veremos si cuando saque el IE7 le sigue dando mucho soporte. Y aunque así fuera, los cambios entre versiones de Firefox suelen ser menos traumaticos que los de IE, y muchos solucionando problemas según se van detectando.
PD. el Firefox 1.5 permite reordenar las pestañas.
[...] Un excelente post de Matías sobre la actualidad de Firefox y sus desarrolladores…Altamente recomendable!!! AQUI. [...]
FIREFOX ES EL MEJOR NAVEGADOR, YO ESTOY USANDO LA VERSION 2, Y NO ME HA FALLADO. MIL VECES PREFIERO A FIREFOX A IE…… ¿ HASTA CUANDO FIREFOX ,SACARA SU PROPIO SISTEMA OPERATIVO ? SERIA UN VERDADERO EXITO Y SERIA LA TUMBA D WINDOWS-IE. MILLONES D CYBERNAVEGANTE BAJARIA EL NUEVO SISTEMA OPERATIVO D FIREFOX. ; )
mira aunq firefox tengas sus errores, no le gana a los errores de internet explorer
a ver…
internet explorer a encontrado un error y debe cerrarse
esa infeliz pantalla me tenia un huevo roto hasta que conoci firefox