Blogs de Reseñas, Guías Prácticas, Noticias de Móviles

“¿Es hora de dejar de usar JSON como lenguaje de intercambio de datos?”

Jason: un formato popular de comunicación de datos en el mundo tecnológico

Descubre por qué Jason es popular en la comunicación de datos entre distintos software y cómo puede afectar a tu proyecto.

Si eres de los que han jugado GTA en línea desde un PC, seguro que te has dado cuenta de que el juego tarda varios minutos (a veces más de 20) en empezar. ¿La causa? No es tu internet, ni tampoco tu computadora antigua o tu tarjeta gráfica, sino Jason. Resulta que la versión online de GTA necesita cargar más de 10 megas de Jason, incluyendo alrededor de 63.000 entradas. Se trata de todos los productos, upgrades y todo lo que puedes comprar en el juego.

Jason es un formato basado en JavaScript Object Notation (JSON), el cual se utiliza para enviar y recibir datos entre distintos softwares de frontend de una móvil a un servidor, entre muchos servicios, entre otros. Es extremadamente popular porque es fácil de leer por humanos y, al mismo tiempo, es liviano. Es un texto UTF-8, por lo que tiene todo lo que necesitarías para transmitir tus datos a otro sistema. Sin embargo, también tiene varios problemas.

Por ejemplo, no es fácil entender texto humano con todas sus reglas y símbolos, y es más fácil entender código binario. Jason es débil en cuanto a tipos de datos, ya que en una respuesta, un campo en Jason puede venir como un int, pero de pronto puede empezar a llegar como un String, lo que, si no se maneja adecuadamente, puede generar problemas en el cliente.

Otro problema con Jason es que el esquema está contenido dentro del mensaje. Un esquema es una guía o especificación de cómo van a venir los mensajes que esperar. En Jason, el esquema no es real, pues cuando se ve “Estatus igual 1”, realmente no se sabe qué otro valor va a venir ahí. Además, como toda la esquima está contenido en el mismo Jason, cada mensaje lo incluye. Se podría decir que es una duplicación de código innecesaria.

Para exponer los datos de tu software para que sean utilizados por desarrolladores en el mundo, es una buena idea usar Jason como medio de comunicación, pues todos lo conocen y como es legible, es más fácil ver qué es lo que se devuelva y en base a eso, definir cómo manejar las respuestas con su app. Pero si sólo vas a hablar con tus aplicaciones, tus clientes y todos los sistemas son internos, quizás puedes dejar de usar Jason y probar con otras herramientas.

Una alternativa que se está volviendo cada vez más popular es Protocol Buffers (protobuf), una herramienta creada por Google para serializar y deserializar datos estructurados en formato binario. Imagina tener un endpoint que devuelve un usuario por su ID. Primero se crea un esquema en un archivo .proto, luego se compila este archivo con protoc, el compilador para esquemas proto. Aquí lo compilé para Dart, pero se puede compilar el esquema para muchos lenguajes más. Luego, en el código, se usa las clases compiladas para instanciar usuario y usarlo. Cuando se recibe datos del backend, se usa el esquema para parsear la información. Con esto no debería haber problemas con los tipos, porque están definidos en el esquema, la comunicación es más rápida y la información codificada en binario es más pequeña.

Otra alternativa es Avro de Apache, que es más nueva y tiene menos información, pero que muchos benchmark ponen arriba de los demás sistemas en cuanto a velocidades, generalización de señalización y tamaño de los mensajes. También tiene un esquema que se escribe en Jason, pero no requiere que se compile o genere código previamente.

Message Pack es otra alternativa más rápida y pequeña que Jason, y en formato de serialización binaria. No tiene un esquema ni tampoco impone que se use uno, pero sí tiene un sistema de tipos y un formato definido para codificar. Muchas de estas alternativas tienen implementaciones en muchos lenguajes y ofrecen una ejecución más rápida porque no hay que estar realizando y deserializando Jason.

En definitiva, al elegir el formato de comunicación de datos entre distintos software, tienes que considerar varios factores, como la portabilidad, si quieres que los datos sean leídos en otro tipo de aplicación escrita en otro lenguaje que corra en otro runtime, si es un ambiente dinámicamente tipeado o si quieres aplicar tipos estáticos y no dejar ningún cabo suelto. También debes pensar en si quieres una encoding textual o binaria y si deseas una encodein estructurado con un esquema definido o no.

Jason es popular en la comunicación de datos entre distintos software, pues es fácil de leer por humanos y a la vez es liviano. Sin embargo, tiene varias problemas, como su debilidad en cuanto a tipos de datos y la duplicación de código innecesaria, lo que hace que el desarrollo sea más lento. Por eso, es recomendable explorar otras alternativas, como protobuf, Avro o Message Pack, para encontrar la que mejor se adapte a tus necesidades y a las del proyecto en el que estás trabajando.

Deja de usar JSON


Fuente: YouTube

Preguntas Frecuentes de: Deja de usar JSON

1. ¿Has jugado alguna vez GTA?
Sí, he jugado GTA.
2. ¿Has jugado la versión online de GTA desde un pc?
Sí, he jugado la versión online de GTA desde un pc.
3. ¿Has experimentado que la versión online de GTA tarda en cargarse al inicio del juego?
Sí, he experimentado que la versión online de GTA tarda en cargarse al inicio del juego.
4. ¿Qué descubrió el chico de la tía con respecto a esto?
El chico de la tía descubrió que el culpable no era su internet, su computadora antigua o su tarjeta gráfica, sino que era Jason.
5. ¿Qué es Jason?
Jason es Javascript Object Notation.
6. ¿Por qué se llama Jason?
Se llama Jason porque es un subset de Javascript válido.
7. ¿Para qué se utiliza Jason?
Se utiliza para comunicarse y enviar datos entre distintos software, como Front-end, móviles, servidores, entre otros.
8. ¿Por qué Jason es popular?
Jason es popular porque es fácil de leer por humanos y es liviano.
9. ¿Cómo funciona Jason en comparación con otros formatos de codificación?
Jason es texto utf8, lo que lo hace más liviano que otros formatos de codificación como XML.
10. ¿Cuál es el problema de utilizar Jason para las computadoras?
El problema de utilizar Jason para las computadoras es que no es fácil entender texto humano con todas sus reglas y símbolos, y es más fácil entender código binario.
11. ¿Por qué Jason es débil en cuanto a tipos de datos?
Jason es débil en cuanto a tipos de datos ya que un campo en una respuesta Jason puede venir como un int pero de pronto puede llegar como un String.
12. ¿Qué es un esquema?
Un esquema es una guía o especificación de cómo van a venir los mensajes.
13. ¿Por qué la inclusión de esquemas en Jason puede ser considerada una duplicación de código?
La inclusión de esquemas en Jason puede ser considerada una duplicación de código innecesaria ya que es información que se repite en cada mensaje.
14. ¿Qué otras alternativas existen a Jason?
Otras alternativas a Jason incluyen Protocol Buffer (Protobuf), Apache Avro y MessagePack.
15. ¿Qué factores se deben considerar al elegir entre Jason y otras herramientas para transmitir datos?
Al elegir entre Jason y otras herramientas para transmitir datos, se deben considerar factores como la portabilidad, el ambiente de desarrollo, si se desea utilizar una encodein textual o binario, y las preferencias personales del proyecto.

Fuente Original de YouTube

Table of Contents