En universo tan basto como el Internet, no es difícil entender como día a día muchos servicios comparten información entre si. Estas interacciones cuentan con una mecánica que permite “normalizar” distintos lenguajes, distintas aplicaciones.
La pregunta es: ¿Cómo logran que tan diferentes sistemas, puedan “hablar” los unos con los otros?.
Es claro que en los inicios HTML fue pensado en compartir información usando internet, no fue diseñado para compartir objetos sino documentos, situación por la cual sus “tags” están limitadas a estructuras básicas de texto y formatos en como se presenta esta información.
A diario los sistemas necesitan formas mas poderosas y bien constituidas para intercambiar información, entre ellos y otros sistemas. La utilización de estructuras jerárquicas, con variables pero inteligibles por el humano, facilitan la tarea, es allí donde entran estándares como: XML, JSON y YAML.
XML
Tal como el HTML, XML es un lenguaje de marcado que obtiene su nombre del inglés Extensible Markup Language. Este lenguaje esta pensado en ser entendido por humanos y maquinas a la vez, de manera fácil y directa. XML es usado ampliamente para transmitir información en servicios webs y APIs REST y para archivos de configuración. Uno de los lenguajes de programación que le da más soporte es Java.
Su gran fortaleza de XML es el soporte a Unicode, lo que permite escribir la información en cualquier idioma del mundo y sumado al amplio soporte que tiene en la actualidad. La gran critica su verbosidad y complejidad; mapear una estructura básica XML usando tipos de datos de un lenguaje de programación o bases de datos a veces puede ser muy difícil y poco descriptivo. Además, para documentos muy grandes, suele requerir un uso más intensivo de memoria y procesador.
JSON
JSON abreviatura de: JavaScript Object Notation, es un estándar abierto que utiliza texto plano para codificar información en la “formaatributo: valor”. Es también ampliamente usado para intercambio de información entre servicios web y APIs RES. Dada su simplicidad y facilidad de implementación le otorgan un gran desempeño, convirtiéndose en una de las alternativas ideales al momento de reemplazar XML.
Una consideración importante cuando se usa JSON es el Unicode, pues presenta algunas variaciones en las distintas implementaciones y a veces puede representar un riesgo de seguridad por la facilidad de ejecutarlo usando la función eval de JavaScript.
JSON es un objeto válido JavaScript por lo que es el formato perfecto para ese lenguaje. Muchos, sino la mayoría, de los navegadores web modernos incluyen funciones nativas para “entender” JSON, dándole ventaja en lo que se refiere a desempeño y disminución de los riesgos de seguridad.
YAML
YAML otro formato pensado en facilitar el mapeo de estructuras de datos más complejas en un documento de texto plano legible para un ser humano. Es un formato joven, pero con características que le han hecho ganarse un lugar importante en la web, muy próximo a XML y JSON.Su estructura es mas rígida, pero su escritura mas simple, características que le otorgan elegancia y claridad, un lenguaje ideal para tareas que involucren intervención de un humano.
Esta misma simplicidad es lo que también le otorga velocidad pero, en contraposición a JSON, no es usado para servicios web o APIs REST sino para archivos de configuración, depuración u otros fines en los que la facilidad de lectura juegan un rol importante. Ha sido ampliamente acogido por desarrolladores de Ruby y usado en frameworks como Ruby On Rails.
¿Pensando en implementar estos lenguajes? Quizás necesites un servidor dedicado…¡Te invitamos a revisar nuestro ranking!