Aunque muchas personas hablen de las bondades de navegadores como Chromium, o en su versión cerrada Chrome, siempre se olvidan sobre qué pensamos los desarrolladores sobre ellos.
Para realizar una aplicación web en donde queramos manejar archivos XML es primordial el uso de E4X.
¿Y qué es E4X? Pues es una nueva extensión de ECMAscript, o Javascript llamado de manera informal, que añade un nuevo entorno para el manejo de archivos XML. E4X (ECMA 4 XML) es oficial desde la especificación JavaScript 1.6 que fue publicado en 2005.
Veamos un sencillo ejemplo:
<html> <head></head> <body> <script> var empleados= <empleados> <persona> <nombre>Pedro</nombre> <edad>32</edad> </persona> <persona> <nombre>Jani</nombre> <edad>26</edad> </persona> </empleados>; document.write(empleados.persona.(nombre == "Pedro").edad); </script> </body> </html>
Es increíble la sencillez de E4X, con sólo escribir document.write(empleados.persona.(nombre == "Pedro").edad); ya puedo obtener la edad de Pedro en sólo una línea.
¿Y cuál es el problema en todo esto? Que sólo está para Firefox. Actualmente ni Opera, ni Internet Explorer y mucho menos Chrome tienen soporte para esta tecnología y a vista de sus futuras versiones tampoco tiene pinta de que la cosa vaya a cambiar. Y es una pena, porque para los desarrolladores es fundamental que el mismo código funcione en todos los navegadores, ¿para eso estamos usando estándares web?
Lo que está claro es que la fundación Mozilla se preocupa de los desarrolladores y de proporcionarle toda la documentación y herramientas necesarias. Otras, sin embargo, lo único que le interesa es que su motor Javascript vaya 1ms más rápido.
https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.
Ver comentarios
Para trabajar con XML no es primordial E4X, y para trabajar con ese tipo de datos prefiero usar JSON.
Me parece que no es fundamento para criticar a Chrom{e,ium}, ni a cualquiera basado en webkit, ni al gran impulsor de estándares web que es Opera.
salU
Totoloco: la cuestión consiste en que E4X es una especificación de ECMAScript que es el estándard de lo que conocemos todos como Javascript. Y si quieres seguir el estándar es de obligado cumplimiento el implementar esta extensión.
No dudo de las capacidades de JSON, pero existen desarrolladores que prefieren E4X y me parece poco ético por parte de los demás no implementarlo.
Existen múltiples maneras de tratar XML, unas tienen mas performance otras menos, unas son implementadas al 100% en los motores JS y otras no.
El caso de E4X es raro, porque Opera dentro de su puritanismo, no lo implementa, la razón no la se, pero bueno, existen herramientas para tratar ficheros XML muy buenas como el XPath o XQuery.
La verdad es que el "1ms más rápido" es necesario, hacer código cross-browser es muy difícil y muchas veces te encuentras con que no tienes las herramientas necesaria, pero aun es más difícil de ver las webs de las personas que no saben programar JS y que básicamente les da lo mismo código optimizado o no, te enchufan un "document.write(empleados.persona.(nombre == "Pedro").edad);" y les da lo mismo si consume mas recursos que un código en XPath, porque XPath es mucho mas complicado de entender.
Elogio el comportamiento de Mozilla, pero sinceramente, en vez de perder el tiempo en tener el JS Estandar 100% implementado, que gasten esfuerzos en optimizar el consumo de memoria en Firefox para que esa implementación 100% valga la pena.
Por otra parte, si critico el hecho de que un estándar JS no esté implementado en mas browser que Firefox. Más allá de mi critica hacia la no optimización, estoy de acuerdo contigo @Nacho López en que los estándares hay que cumplirlos, aunque no a cualquier precio.
Yago, la verdad es que si uno es buen programador utilizará la herramienta más optimizada para el tratamiento de XML. Yo, sin embargo, soy de los que prefiero tener una implementación sencilla para que sea fácil de programar y posteriormente de entender el código a costa de la velocidad. Eso no es de buen programador, pero personalmente prefiero esta opción.
Y tienes razón, Firefox tiene que mejorar muchísimo en velocidad, pero es el único que cumple el estándar que todos los navegadores deberían cumplir.
Gracias por tu aportación Yago.
Si, Firefox siempre anda mas adelantado en los temas para desarrolladores que los demas.