25 comments

[ 0.24 ms ] story [ 16.0 ms ] thread
Atom is better than RSS in the way Betamax was better than VHS. With the same outcome and consequences for practical use.
What? Not at all. RSS is a product category. Many RSS feeds are, if you look into them, Atom. Your RSS reader just doesn't bother to tell you, because why would you care?

Try putting a Betamax tape into a VHS VCR and see if you can watch it.

As in we now use neither?
Not relevant to the overall discussion, but this VHS vs Betamax thing is actually a myth, borne from confusing Betamax (a home consumer version, comparable and inferior to VHS) with Betacam (a professional format, which could use the same physical tapes as Betamax, albeit at much shorter runtimes so not suitable for movies).
The three ways of encoding the string "<xmp>" in the title all look like awful gibberish to me.
Wait till you see the HTML I had to write to get them!
- since we are on the topic i got a question for you

- what is the best way to store rss data inside postgres

- will you store it as raw xml directly? or will you process it and store it?

- what format will you store it as if stored inside postgres?

- how will you handle updates to the feed? rss doesnt do websocket push as far as i can tell so you have to poll which gives you the entire feed with a few items removed and a few new items added in the best case scenario. how do you diff this for storing?

The article is correct. Anyone who knows what they’re doing builds an Atom feed, not RSS. In fact, I thought this was common knowledge a decade ago.
I remember ( I may be very wrong ) eventually RSS and Atom became one and the same thing for consumer and that all RSS reader would parse Atom feed, RSS became the logo and the name people know, atom was used behind the scene.

Apart from iTunes, as the article said.

It has been 20+ years I do hope someone on HN can now spills the beans as to why.

Most of the online content I consume comes to me either via RSS or Atom (I don't have numbers on the split). Not once have I thought - "Gosh darn it, this blog uses RSS instead of Atom, even though Atom is so obviously the better choice. Now I don't even want to add this blog to my feed." ...
tl;dr

Atom can do < or & in titles, and offer both a summary and the full text.

Some podcast apps (Apple Podcasts) don't support Atom, so then plain RSS is better.

So it doesn't really matter that much.

If you publish content, Atom is the superior format. All the parsers support it so there's no argument there against using it. You use it, everything should work just fine. There are no real downsides.

The issue with RSS of course is that there is a lot of really crappy and ancient code out there that should have died a long time ago written in languages like PHP, Ruby, etc. by people who did not really care about details. Details like having unambiguous time stamps (what do you mean, you don't live in my time zone?), or details like "this text is not encoded in UTF-8 but in my unspecified locale specific ASCII variant" (why?!). Or indeed "this description contains malformed tag soup with some of the tags escaped".

Also, while most modern RSS and Atom parsers are pretty decent, it's not that hard to find feeds that still have parsing issues despite these frameworks giving it their best effort. Part of the reason is that the code that generates these feeds is a lot less well covered by frameworks. Lots of content management systems out there that use some wonky templating, home grown scripts, or other improvised shit to generate their feeds. That always was the biggest problem.

What about activitypub? I thought that was the new format to use..
I agree that Atom is easier to use and better defined in some ways. But why on earth would you want to put unrestricted HTML in the title in the first place? How is a reader supposed to handle that? It's just a weird thing to allow.

In practice, the differences between the syndication formats don't really matter. Today even less than when they were created, as a solution for most of the differences is just a prompt away.

In my humble opinion, JSON feed (https://www.jsonfeed.org/version/1.1/) is the most practical format. By a small margin, but still...

- it's really simple and doesn't use XML

- it doesn't allow stupid things like HTML in titles (which I guarantee >50% of all implementations can't handle correctly)

- JSON Feed allows feeds to have a <favicon> and a (square!) <icon>, which is a very practical thing for readers. You can use the <favicon> in lists of feeds, and the <icon> to present a single feed. Atom has a small square icon and a <logo> which is supposed to use a 2:1 aspect ratio. 2:1 is completely useless. No site has a logo in 2:1. It's also useless for most full-name logos, like 'New York Times'. (RSS is, of course, even worse; it doesn't even recommend an aspect ratio, practically guaranteeing that RSS readers can look bad)

You can see that JSON feed has been designed from a feed consumer's point of view: what does an RSS reader need to make a feed look good? While Atom and RSS have been written from an abstract publisher's point of view, making everything possible and allowing maximum flexibility. Especially RSS, which has shown its flexibility in becoming the de facto format for podcasts. And both Atom and RSS are really old, written at a time when it probably wasn't clear how RSS would eventually be used.

In the end, no matter which format a feed uses, users won't notice any difference (as long as publishers are smart enough to use square images!). So any feed is a win, no matter whether RSS, Atom, or JSON feed.

Personally, I don’t care at all since we’ve gotten JSON feeds.

https://en.wikipedia.org/wiki/JSON_Feed

Not every programming language I use can output RSS/Atom/XML by default, but pretty much all of them can output JSON natively, no library needed, just fine. The spec is short and easy to understand, to the point it’s little effort to manipulate the feeds, adding to them or consuming them even without a dedicated reader if need be.

To consume other people’s feeds, I mostly don’t care what format they are as long as my reader can understand them. To generate my feeds, I always use JSON. Most of them are for personal use, but even for those which aren’t, I never had any complaints (most feed readers seem to be able to read those just fine).

Atom is correct to a degree that is annoying.

It is XML, so not all HTML5 is allowed. You would have to convert your HTML5 to XHTML5. Possible but harder than string-concatenation.

It requires full self links, so you must put your domain name in there as relative links would be an error. When using a static generator, why should I care where the files are published?

My website has valid Atom feeds. Still, it's an annoying format to me.

There are so many formats and standards and people using different sets of them that I feel like we need an organisation that selects some of them and decides that those are the ones that people should use. Everyone could become a member of that organisation and vote for which standards should be part of the next version of the selected set. Maybe there could be a new version every other year or something.

This would give us some kind of leader that shows the way. It would make it easier for developers if people were more focused on fewer standards and there would be a well defined point in time when we would upgrade to the new set of standards.

For those of you who are familiar with RISC-V, it would be like the RVA23 spec: one big collection of things to use that can be targeted and talked about as one thing with one name, rather than everyone having their own collection of extensions that they use.

Both really need an explicit "Full/Partial" flag.

Over-polling is also a problem with both formats.

But the Local-First Fediverse is evolving. https://share.gemini.google/NHjiUHtpRTiJ

That's important and will break the walled gardens, and will change money flows I suspect as advertising revenue is more equitably shared with content providers, who themselves can be better paid for content produced and content promised. It's the 'ol centralization <> decentralization swinging back and forth again.

> I’m choosing not to encode > as &gt;: neither HTML nor XML syntax requires it.

TIL, I never questioned encoding &gt;

Who remembers when everybody was syndicating all their favorite RSS feeds on their own blogs, and then some joker posted a blog entry to his own RSS feed with a title like "What happens when you put an unbalanced <BLINK> tag into the title?", and the ENTIRE BLOGOSPHERE started blinking?

The content of that notorious discussion went on and off and on and off for weeks, giving all the netizens of the RSS community blogosphere terrible headaches, with people's entire blogs disappearing and reappearing every second, until it finally reached a flashing point, when Dave Winer humbly conceded that it wasn't the user's fault for being an idiot, and maybe just maybe there was tiny teeny little design flaw in RSS, and it wasn't actually such a great idea to allow HTML tags in RSS titles.

I don't care about the internal format. What I'm missing is an active component. Instead of re-downloading the same thing over and over it should work like POP3.
Atom kinda does. Atom is a paged format, so a publisher can publish their entire history in their Atom feed and only the most recent page gets redownloaded to see new entries as they are added.
I’m not a developer or publisher, but i am interested in the technicalities.

I get that ATOM is better in terms of being more consistent and the way it handles full content.

Is it true that RSS is simpler, and of you’re not publishing full html articles and other rich content, you don’t need the extra complexity?

While we’re on the subject, it would be very cool if HN had feeds for user comments so we could follow each other