Muchos navegadores…

Leí esta noticia en la mañana, que me tomó desprevenido, aunque en realidad es algo que se veía venir.

Según la noticia, Google intenta convencer a los desarrolladores de que se enfoquen en "navegadores basados en Chrome", debido a las ventajas que permite el motor de renderizado usado por este navegador, hablando de nuevas tecnologías web, principalmente javascript.

Muchos dirán "pues claro! si estamos hablando de nuevas tecnologías, por qué no hacer caso!?" Y en cierta forma tienen razón, pero el artículo es un poco engañoso, lo cual no me sorprende viniendo de una empresa como Google.

Desde que surgieron los navegadores web, ha sido una batalla más grande que la de la Coca-cola y la Pepsi, que la de Televisa y TV-Azteca, que la del clásico América-Chivas… bueno… no, no hay nada peor que el fanatismo futbolero. El punto es que la competencia entre navegadores no ha dejado de ser noticia en el mundo de la informática.

En los 90s, la competencia entre Internet Explorer y Netscape partió en dos a la Red, al obligar a los desarrolladores a elegir entre un navegador o el otro. Muchas páginas incluían código para verificar qué navegador usaba el visitante, y a veces incluso bloquear el acceso a quien trataba de ingresar al sitio con el programa que no correspondía.

Ésta técnica se llama browser sniffing ("olfateo" de navegador, como los sabuesos que utilizan su nariz para rastrear), y funciona analizando la variable user agent string, que es un identificador del programa (agente usuario) que está accediendo al sitio web.

Opera/9.80 (Windows NT 5.1; U; en) Presto/2.9.168 Version/11.51

La user agent string proporciona información del navegador y del equipo, y permite, usando programación, modificar el comportamiento del sitio de acuerdo al navegador usado.

El uso de browser sniffing es actualmente muy criticado, pues existen distintas razones por las que un navegador puede ser "injustamente" clasificado de forma incorrecta con esta práctica:

  • Es muy difícil tratar de captar a todos los navegadores, que cada vez son más. El estándar oficial, el RFC-1945, sólo indica que se debe incluir [Nombre]/[Versión] y otros comentarios opcionales en el user agent string. Ningún navegador sigue esta regla, pues la práctica de browser sniffing del pasado obligó a los navegadores a comenzar su user agent string con el texto Mozilla/5.0, algo que de los principales navegadores actuales, únicamente Opera dejó de hacer recientemente.
  • El número de versión del navegador puede estar en distintos lugares de la cadena de user agent. Es fácil identificar un navegador con número de versión incorrecto.
  • Una práctica común es la de poner el motor de renderizado del cual está basado el que usa nuestro navegador. Safari tiene AppleWebKit/[Versión] (KHTML, like Gecko), tres distintos motores, los cuales pueden confundir a nuestro código.
  • Algo que le pasó primero a Opera, y que ahora ya casi todos los navegadores van para el mismo rumbo: browser sniffing busca el primer dígito después del nombre para determinar el número de versión. Opera 10 hubiera sido identificado como Opera 1, al igual que las últimas versiones de Chrome o la próxima de Internet Explorer.

Herramientas para javascript, como jQuery y MooTools, incluyen funciones para determinar el navegador y la versión, para evitarnos el análisis de la user agent string. Pero incluso en estas herramientas se recomienda evitar el uso de estas funciones.

Los desarrolladores a favor de IE fueron muy criticados por esta práctica, pues forzaban a los usuarios a usar este navegador (lo cual es otra de las desventajas, más que técnica, ética). Gracias al auge de otros navegadores, sitios como Facebook (que apoyan las nuevas tecnologías web) y la navegación móvil, el uso de browser sniffing fue desplazado, quedando únicamente en sitios antiguos que por alguna razon siguen vivos pero sin mantenimiento (si alguien tiene uno, no dude en comunicarse conmigo para darle una manita de gato ;D). Y ahora, en la forma que lo plantea Google, recomienda nuevamente el uso de browser sniffing, obviamente a favor suyo.

Existen otras formas para saber qué se puede hacer y qué no se puede hacer con el navegador que está usando el visitante, pero son cosas que no se determinan por el nombre o versión del programa (hablaré de eso en otro artículo). Lo importante es que uno como desarrollador debe mantenerse al margen de los intereses de una empresa propietaria de un navegador. Por eso dije que el artículo es engañoso, porque de la forma en que lo plantea, nos está invitando a incurrir en un error de la programación antigua, que ya no se debe practicar más.

Siempre desconfié de Google y de Apple. Tanto criticaron a Microsoft, y lo inundaron de mala publicidad, y sin que el público se diera cuenta, cada una busca por su lado convertirse en el nuevo monopolio tecnológico. Suerte que aquí estamos los programadores que sí nos damos cuenta, para abrirles los ojos 😉

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s