1. Início
  2. Full stack
  3. XML vs JSON: Entenda como fazer a melhor escolha

XML vs JSON: Entenda como fazer a melhor escolha

xml-x-jason-como-escolher

Json vs XML: quem vence essa?

Bem, XML salvou a vida de desenvolvedores por anos a fio. Graças a ele, pudemos ter um lugarzinho especial de compartilhamento de todo tipo de informações entre sistemas, sem depender da linguagem em que estes eram implementados.

O tempo passou e ele acabou sumindo aos poucos, até que as perguntas surgiram: por onde ele anda? Quem é esse tal JSON?

O que é JSON?

O JSON (JavaScript Object Notation) é um formato leve de troca de informações entre sistemas, principalmente por meio de APIs Rest.

Por ser muito leve e fácil de ler, o JSON é amplamente utilizado por aplicações web. Sua capacidade de estruturar informações de maneira compacta é uma característica fundamental que o leva a ser adotado por grandes empresas como Google e Yahoo.

Devido a essa grande popularidade, o JSON já se tornou quase um pré-requisito para qualquer programador. Toda pessoa que trabalha ou deseja trabalhar como desenvolvedor de softwares precisa entender o que ele é e como funciona.

Uma confusão muito comum que se faz é assumir que, por ser um formato de representação de dados que se baseia em JavaScript, o JSON só pode ser usado com essa linguagem. Não é assim que funciona, a possibilidade de uso dele é muito abrangente.

Inclusive, para a maioria das linguagens, são disponibilizados vários parsers diferentes e cada empresa pode implementar seus próprios parsers, com fundamentos distintos.

>>Leitura Recomendada:
IDE para JSON e PHP: qual a ideal?

A popularidade do JavaScript

computador com códigos javascript

Engana-se quem acha que o XML morreu. Ele ainda está ativo e é válido em várias situações, conforme veremos a seguir. Contudo, sua popularidade realmente diminuiu bastante, muito pelo sucesso de outra linguagem: o JavaScript.

O JS é quase uma unanimidade no mundo web, que basicamente movimenta nosso padrão de vida atual. Quem vive hoje em dia sem visitar um site, acessar o WhatsApp ou visitar seu perfil do Facebook?

Com a presença massiva da internet em nosso cotidiano, precisamos acessar informações de forma rápida e eficiente, e é aí que entra a linguagem.

Por ser leve e flexível, o JavaScript é usado em inúmeros sites, seja no lado do cliente ou do servidor, com o Node.js.

Com tanta fama, o JSON (ou JavaScript Object Notation) acabou se tornando uma escolha natural (e preferível) para assumir a vaga, por ser um formato desenvolvido a partir da linguagem – consequentemente, sua interoperabilidade com o JS é a melhor possível.

É por isso que o tema de hoje é XML vs JSON. A eficácia comprovada do XML, ou a tecnologia crescente do JSON? É o que veremos a seguir. 

Em 2011, 20% das novas APIs usavam apenas JSON, um número que certamente aumentou de lá pra cá. Além disso, APIs que utilizavam protocolos tipo SOAP e XML-RPC, baseados em XML, têm dado lugar à flexibilidade da arquitetura REST, que utiliza as duas notações.

>>Leitura Recomendada:
Leia nosso guia de linguagem JavaScript para iniciantes

JSON vs XML: o duelo

como escolher a melhor linguagem?

Tanta popularidade em torno desse ambiente com o JavaScript como grande ponto central fortaleceu comunidades empenhadas a melhorar todas as tecnologias periféricas.

Da mesma forma que o Node.js tem hoje uma capacidade computacional impressionante, o JSON conseguiu desenvolver-se da mesma forma.

Com isso, grandes vantagens que o XML possuía em comparação ao JSON tem caído aos poucos.

Exemplos disso são os XML Schemas, as transformações XSLT e o XPath, que já possuem tecnologias equivalentes no JSONJSON Schema, JOLT e JSONPath, respectivamente.

A integração com outros ambientes de desenvolvimento também deixou de ser problema. Embora JSON se encaixe muito bem com o JavaScript (e com Python), isso não era necessariamente verdade em outras linguagens.

Porém, a notação hoje conta com centenas de ferramentas de integração em C++, Perl, R e tantas outras linguagens, encontradas facilmente na página oficial do formato.

XML ainda vive

características do xml

Por outro lado, a galera do XML ainda permanece forte. Afinal, depois de tantos anos na hegemonia, uma comunidade inteira não desaparece da noite pro dia, não é?

Suas tecnologias também são bem consolidadas, a exemplo dos próprios Schemas que, com o uso dos namespaces, ainda são uma ferramenta bem poderosa na hora da implementação.

Eles são excelentes, por exemplo, em resolver conflitos causados por diversas aplicações. Claro, o JSON possui uma alternativa: o JSON-LD pode ajudar em algumas ocasiões, mas o XML ainda parece ser uma preferência em casos complexos.

No entanto, o principal destaque do XML (e que nem o JSON-LD consegue aliviar completamente) são os metadados. O poder da linguagem está justamente na capacidade de guardar ou vincular dados em qualquer formato, graças à liberdade dada ao usuário de definir suas marcações.

Assim, uma das formas é usar atributos a fim de definir metadados, tipo um identificador único ou um tipo definido pelo desenvolvedor a um objeto, por exemplo. Esse tipo de abstração é complicado de ser atingido por outras notações, como YAML, JSON ou Simple Outline XML.

>>Leitura Recomendada:
Sua API não é RESTful: Entenda por quê.

JSON: quanto mais simples melhor

computador com código de json

Tentar suprir as necessidades resolvidas pelo XML, inclusive, é um dos grandes dilemas a respeito do JSON. O objetivo da notação é entregar uma solução simples de ser lida, leve e rápida.

Ao tentar preencher as lacunas já preenchidas pelo XML, a filosofia “keep it simple” acaba de fora da tecnologia. Isso influencia diretamente os próprios aspectos já citados em que ela leva vantagem, como legibilidade e performance.

Ambos os lados alegam que suas partes são mais fáceis de entender, e eles não estão errados.

No caso de um número baixo de dados, o JSON e seu pareamento chave-valor torna claro o objeto a ser tratado, porém, quando começamos a perceber um grande volume de valores complexos, a estrutura em árvore do XML, embora cheia de palavras e repetições, torna as coisas menos difíceis de entender, em comparação com a infinidade de chaves e parênteses que o JSON precisaria ao denotar a mesma situação.

Nesse caso, a própria compressão dos arquivos (e seu consequente peso na transmissão dos dados) também é afetada. Um estudo feito por David Lee, engenheiro líder na Marklogic, e publicado pelo consultor de TI Jan Stenberg no site InfoQ Brasil levou a conclusões interessantes:

  • A velocidade de análise (parsing) varia de acordo com a técnica usada. A análise com JavaScript puro é mais rápida para XML do que para o JSON, enquanto a consulta é normalmente mais rápida para o JSON. Ambos apresentando exceções, em que o contrário é verdadeiro;
  • O uso da biblioteca JavaScript jQuery impõe uma penalidade exagerada para o JSON, e pior ainda para o XML;
  • Documentos compactados em todos os formatos, mesmo representações muito grandes em JSON ou XML apresentam tamanho idêntico após a compressão, o que indica que ambos possuem o mesmo conteúdo de informação;
  • A transferência de documentos para uma grande variedade de dispositivos leva efetivamente o mesmo tempo em cada dispositivo, independentemente do formato adotado (XML ou JSON).

Outro a fazer essa comparação de desempenho, com foco em Web APIs, foi o brasileiro Nickolas Silva. Com base em seus testes feitos utilizando compactação gzip e deflate, ele chegou às seguintes ideias:

  • Ambos possuem vantagens semânticas, estéticas e de implementação.
  • Tratando-se de transporte, JSON possui uma pequena vantagem para poucos registros, mas, conforme o número de registros cresce, maior a vantagem da marcação XML.
  • XML vs JSON: Em complexidade, as duas possuem a mesma capacidade: XML com sua estrutura de árvore e DTD, e JSON com sua especificação JSON-LD.
  • A manipulação, mesmo sendo uma ideia muito subjetiva, aparenta ser mais simples para JSON, pois se baseia na estrutura chave-valor em vez da estrutura de árvore, muito mais complexa de interpretação (sob aspecto de uma estrutura lógica).
  • Estamos num período em que se faz comum a programação de alto nível – como JavaScript, PHP, Java – e podemos contar com frameworks que abstraem e facilitam estes procedimentos.

JSON vs XML: afinal, qual usar?

Quer atualizar seu sistema para o formato? Muita calma nessa hora! Segundo o famoso escritor Nelson Rodrigues, “toda unanimidade é burra. Quem pensa com a unanimidade não precisa pensar”.

Com essa ideia, é importante ressaltar: não é porque o JSON virou tendência que ele é sempre a melhor solução.

Um software que funciona muito bem com requisições SOAP, por exemplo, mesmo que comece a ser considerado “antiquado”, ainda exige o XML e pode trazer muita dor de cabeça na sua tentativa de mudar as coisas.

Assim, depois de analisar os prós e contras de cada um, é o seu projeto que vai dizer qual é melhor.

Se a ideia é criar aplicações leves, rápidas, sem muitas exigências (como é geralmente o caso na web) e, principalmente, o JavaScript faz parte do dia a dia, o JSON deve facilitar muito seu trabalho.

Além disso, com o aumento no número de web designers aprendendo a linguagem para fazer mágicas em seus trabalhos, JSON acaba mais aceito por ter inicialmente melhor legibilidade.

Por outro lado, se o sistema exige uma maior complexidade de dados, com direito a uma padronização madura na validação dos mesmos e transformações frequentes, XML pode ser a melhor pedida.

Se eles precisam de uma categorização, identificação ou classificação, os metadados são mais que indicados, sem dúvidas.

No fim, o XML não está morto: sua utilização indevida é que vai por esse caminho. Longa vida ao XML (e JSON, YAML, properties…)!

Categorias

Leituras Recomendadas

Quer receber conteúdos incríveis como esses?

Assine nossa newsletter para ficar por dentro de todas as novidades do universo de TI e carreiras tech.