# Atom (formato de redifusión)

El nombre Atom hace referencia a dos estándares relacionados.
* El Formato de Redifusión Atom es un fichero en formato XML usado para Redifusión web.
* Mientras que el Protocolo de Publicación Atom (resumido en inglés AtomPub o APP) es un protocolo simple basado en HTTP para crear o actualizar recursos en Web.
Las fuentes web permiten que los programas busquen actualizaciones del contenido publicado en un sitio Web. Para crear uno el propietario de un sitio Web puede usar software especializado, como un Sistema de gestión de contenido que publica una lista (o fuente web) de artículos recientes en un formato estándar, legible por máquinas. La fuente web puede ser descargada por sitios web que redifunden el contenido usando la fuente web, o por un agregador que permiten que los lectores en Internet se suscriban y vean los contenidos de la fuente web.
Una fuente web puede contener entradas, que pueden ser encabezados, artículos completos, resúmenes y/o enlaces al contenido de un sitio web.
El formato Atom fue desarrollado como una alternativa a RSS. Ben Trott fue uno de los defensores del nuevo formato que llegó a llamarse Atom. Él notó la incompatibilidad entre algunas versiones del protocolo RSS, ya que pensaba que los protocolos de publicación basados en XML-RPC no eran lo suficientemente interoperables.
Los proponentes del nuevo formato organizaron el grupo de trabajo IETF Atom Publishing Format and Protocol. El formato de redifusión ATOM fue publicado como un "estándar propuesto" de la IETF en el RFC 4287 (Diciembre de 2005), y el protocolo de comunicación se publicó como RFC 5023 (Octubre de 2007).

## Uso

La comunidad de blogs utiliza fuentes web para compartir titulares de entradas recientes, texto completo e incluso archivos multimedia adjuntos. Los proveedores permiten que otros sitios web incorporen titulares "distribuidos" de un blog o feeds de titulares y resúmenes breves según varios acuerdos de uso. A partir de 2016, la gente utiliza Atom y otros formatos de distribución web para muchos fines, incluido periodismo, marketing, informes de errores o cualquier otra actividad que implique actualizaciones o publicaciones periódicas. Atom también proporciona una forma estándar de exportar un blog completo, o partes de él, para realizar una copia de seguridad o importarlo a otros sistemas de blogs.
Es común encontrar feeds web en los principales sitios web, así como en muchos otros más pequeños. Algunos sitios web permiten a las personas elegir entre feeds web con formato RSS o Atom; otros ofrecen sólo RSS o sólo Atom. En particular, muchos blogs y sitios wiki ofrecen sus feeds web en formato Atom.
Se puede utilizar un lector de feeds o un programa "Agregador" para comprobar los feeds y mostrar nuevos artículos. Los lectores cliente también pueden diseñarse como programas independientes o como extensiones de programas existentes, como navegadores web.
Los lectores de feeds y agregadores de noticias basados en la web no requieren instalación de software y hacen que los "feeds" del usuario estén disponibles en cualquier computadora con acceso a la web. Algunos agregadores distribuyen (combinan) feeds web en nuevos feeds, por ejemplo, tomando todos los elementos relacionados con el fútbol de varios feeds deportivos y proporcionando un nuevo feed de fútbol.

## Atom comparado con RSS 2.0

Cuando Atom surgió como un formato destinado a rivalizar o reemplazar a RSS, CNET describió la motivación de sus creadores de la siguiente manera: "Los oponentes de Winer están buscando un nuevo formato que aclare las ambigüedades de RSS, consolide sus múltiples versiones, expanda sus capacidades y caiga bajo el auspicios de una organización de estándares tradicional."
Tim Bray, quien jugó un papel importante en la creación de Atom, brindó una breve descripción de algunas de las diferencias entre Atom 1.0 y RSS 2.0:

### Formatos de fecha

La especificación RSS 2.0 se basa en el uso de marcas de tiempo formateadas RFC 822 para comunicar información sobre cuándo se crearon y actualizaron por última vez los elementos del feed. En cambio, el grupo de trabajo Atom optó por utilizar marcas de tiempo formateadas de acuerdo con las reglas especificadas por RFC 3339 (que es un subconjunto de ISO 8601; consulte el Apéndice A en RFC 3339 para conocer las diferencias).

### Internacionalización

Si bien el vocabulario RSS tiene un mecanismo para indicar un idioma humano para el feed, no hay forma de especificar un idioma para elementos individuales o elementos de texto. Atom, por otro lado, utiliza el atributo xml:lang estándar para permitir especificar un contexto de idioma para cada contenido legible por humanos en el feed.
Atom también se diferencia de RSS en que admite el uso de identificadores de recursos internacionalizados (IRI) (RFC 3987), que permiten que los enlaces a recursos e identificadores únicos contengan caracteres fuera del conjunto de caracteres ASCII de EE. UU..

### Modularidad

Los elementos del vocabulario RSS generalmente no son reutilizables en otros vocabularios XML. La sintaxis de Atom fue diseñada específicamente para permitir que los elementos se reutilicen fuera del contexto de un documento de fuente Atom. Por ejemplo, no es raro encontrar elementos atom:link utilizados en canales RSS 2.0.

### Equivalencias con RSS

RSS y Atom son formatos distintos pero guardan cierta equivalencia. La siguiente tabla muestra los elementos RSS junto con los elementos Atom donde son equivalentes.
Nota: el carácter de asterisco (*) indica que se debe proporcionar un elemento (los elementos Atom "author" y "link" solo son necesarios bajo ciertas condiciones).
| RSS 2.0 | Atom 1.0 |
| author | author* |
| category | category |
| channel | feed |
| copyright | rights |
| — | subtitle |
| description* | summary y/o content |
| generator | generator |
| guid | id* |
| image | logo |
| item | entry |
| lastBuildDate (en channel) | updated* |
| link* | link* |
| managingEditor | author o contributor |
| pubDate | published (subelemento de entry) |
| title* | title* |
| ttl | — |

## Barreras para la adopción

A pesar del surgimiento de Atom como estándar propuesto por el IETF y la decisión de importantes empresas como Google de adoptar Atom, el uso de los formatos RSS más antiguos y conocidos ha continuado. Hay varias razones para esto:
* La compatibilidad con RSS 2.0 para archivos adjuntos condujo directamente al desarrollo del podcasting. Si bien muchas aplicaciones de podcasting, como ITunes, admiten el uso de Atom 1.0, RSS 2.0 sigue siendo el formato preferido.
* Muchos sitios optan por publicar sus feeds en un solo formato. Por ejemplo, CNN y The New York Times ofrecen sus feeds web sólo en formato RSS 2.0.
* Los artículos de noticias sobre canales de distribución web utilizan cada vez más el término "RSS" para referirse genéricamente a cualquiera de las diversas variantes del formato RSS, como RSS 2.0 y RSS 1.0, así como el formato Atom.

## Historia del desarrollo
### Antecedentes

Antes de la creación de Atom, el método principal de distribución de contenido web era la familia de formatos RSS.
Los miembros de la comunidad que sintieron que había deficiencias significativas en esta familia de formatos no pudieron realizar cambios directamente en RSS 2.0 porque el documento de especificación oficial indicaba que fue congelado deliberadamente para garantizar su estabilidad.

### Trabajo inicial

En junio de 2003, Sam Ruby creó un wiki para discutir qué constituye "una entrada de registro bien formada". Esta publicación inicial actuó como punto de encuentro. La gente rápidamente comenzó a usar el wiki para discutir un nuevo formato de distribución para abordar las deficiencias del RSS. También quedó claro que el nuevo formato podría formar la base de un reemplazo más sólido para los protocolos de edición de blogs, como la API de Blogger y el protocolo cliente/servidor LiveJournal XML-RPC.
El proyecto tenía como objetivo desarrollar un formato de distribución web que fuera:
* "100% proveedor neutral"
* "implementado por todos",
* "libremente extensible por cualquiera, y"
* "limpia y detalladamente especificado".
En poco tiempo se elaboró una hoja de ruta del proyecto. El esfuerzo atrajo rápidamente a más de 150 seguidores, entre ellos David Sifry de Technorati, Mena Trott de Six Apart, Brad Fitzpatrick de LiveJournal, Jason Shellen de Blogger, Jeremy Zawodny de Yahoo!, Timothy Appnel de O'Reilly Media, Glenn Otis Brown de Creative Commons y Lawrence Lessig. Otros personajes notables que apoyan a Atom incluyen a Mark Pilgrim, Tim Bray, Aaron Swartz, Joi Ito y Jack Park. Además, Dave Winer, la figura clave detrás de RSS 2.0, brindó apoyo provisional al nuevo esfuerzo.
Después de este punto, la discusión se volvió caótica debido a la falta de un proceso de toma de decisiones. El proyecto también carecía de nombre, utilizando tentativamente "Pie", "Echo", "Atom" y "Whatever" (PEAW) antes de decidirse por Atom. Después de publicar una instantánea del proyecto conocida como Atom 0.2 a principios de julio de 2003, la discusión se desplazó fuera de la wiki.

### Atom 0.3 y adopción por parte de Google

La discusión luego pasó a una lista de correo recién creada. La siguiente y última instantánea durante esta fase fue Atom 0.3, lanzado en diciembre de 2003. Esta versión obtuvo una adopción generalizada en las herramientas de distribución y, en particular, se agregó a varios servicios relacionados con Google, como Blogger, Google News y Gmail. Las API de datos de Google (Beta) GData se basan en Atom 1.0 y RSS 2.0.

### Estandarización de Atom 1.0 y IETF

En 2004, comenzaron las discusiones sobre trasladar el proyecto a un organismo de estándares como el World Wide Web Consortium o el Internet Engineering Task Force (IETF). El grupo finalmente eligió el IETF y el grupo de trabajo Atompub se creó formalmente en junio de 2004, dándole finalmente al proyecto una carta y un proceso. El grupo de trabajo Atompub está copresidido por Tim Bray (coeditor de la especificación XML) y Paul Hoffman. El desarrollo inicial se centró en el formato de distribución.
El Atom Syndication Format se publicó como estándar propuesto en IETF RFC 4287 en diciembre de 2005. Los coeditores fueron Mark Nottingham y Robert Sayre. Este documento se conoce como atompub-format en la terminología del IETF. El Protocolo de publicación Atom se publicó como estándar propuesto en el RFC 5023 del IETF en octubre de 2007. Otros dos borradores no han sido estandarizados.

## Ejemplo de un feed Atom 1.0

Un ejemplo de un documento en el formato de distribución Atom:

### Incluyendo en HTML

La siguiente etiqueta debe colocarse en el encabezado de un documento HTML para proporcionar un enlace a un feed Atom.

## Los feed en JSON

Implementar una redifusión web como Atom o RSS en un sitio web puede suponer aumento significativo de conexiones tornando a este sitio web bastante lento, por lo a veces es necesario hacer una mejora a la infraestructura para hacer frente la carga adicional de conexiones.
Adicionalmente, algunos desarrolladores tienen en consideración de que los feeds de Atom y RSS tienen un formato XML y optan en convertirlos en formato JSON para optimizar la cantidad de información a transmitir al ser un texto más reducido (entre otros motivos). Para convertirlos se usa una amplia gama de APIs, Frameworks y aplicaciones.

### Ventajas de convertir los feed a JSON

Las ventajas de usar el formato JSON en vez de XML son:
* Formato de datos más estructurado
* Mayor facilidad en su análisis sintáctico
* Manipulación de datos más simple
* Mayor compatibilidad a diversas plataformas y lenguajes de programación
* Integración con APIs modernas que se usan en muchos tipos de aplicaciones
* Más adaptable a cambios en la estructura de datos a lo largo del tiempo
* Reduce el ancho de banda y Latencia
* Posibilidad de representarlo con componentes Front-End
* Mayor simplicidad en transformarlo en otros formatos
* Más intuitivo para los desarrolladores