3 ms·
Problems with RSS: 1. Inconsistent implementation of standards: The implemented versions of RSS and Atom out there makes parsing more of an art than just throw
by russellbeattie 5y ago
Problems with RSS:
1. Inconsistent implementation of standards: The implemented versions of RSS and Atom out there makes parsing more of an art than just throwing a library at it as no RSS parsing library out there can handle all the edge cases. (The last time I did a test a few years ago in an hour long sample from one of the RSS firehoses out there pulled up hundreds of custom namespaces and tag names.)
2. XML formatting: Consistently formatted, well formed XML is never 100%, even from by major news organizations. Embedded CDATA means parsing content is a quagmire of double escaping.
3. Inconsistent content: A RSS feed could just have the last few items that have been updated, with just titles or links, or it could be literally all of the content of a blog, jammed into some 20MB+ text file, double escaped and simply enlarged after every new update.
4. Inconsistent unique identifiers and HTTP header responses: Many sites will respond appropriately to requests with a 304 if there are no changes. Many will not. Many sites will give each RSS item a globally unique identifier, many will not. This forces every Reader to simply request the whole doc over and over again, comparing unique items with a blend of logic and magic.
5. Inconsistent support: Most sites that use RSS have no business model attached to it, so it's just sort of an afterthought and may be shut down at any time, and often is.
All this leads to: Massive amounts of wasted bandwidth as bots poll endlessly for updates, wasted processing time parsing unformatted or badly formatted content, wasted storage because of bad IDs and URLS, wasted effort on the user's part dealing with the inevitable errors, and wasted effort on the admin side dealing with an antiquated tech that should have gone away with MySpace.
RSS should be scrapped. Killed. Replaced. Forgotten.
- netghost 5y agoYou're entirely right, and yet I think there's still a place for it. It all depends on what you want to use it for. For my use case, I built a feed reader that just needs to know the titles, URLS, and publication dates of articles. That let me build an RSS/Atom reader that lets me curate my own news feeds and delegates everything else to the normal browser. Are there inconsistencies and broken feeds? Sure a few, but for my purposes, I can ignore 99% of that. Is it wasteful? Sure, it. could be more efficient, but honestly downloading React and a hundred dependencies every time I visit a webpage is as well. Fear not though, many sites built with tools like Gatsby aren't including RSS feeds, so your wishes may still come true.
- unraveller 5y agoIt's getting much easier to add an rss feed with these SSR markdown tools. See how this blog [1] makes an rss feed in sveltekit [2] in under 30 lines. [1] https://www.solberg.is/sveltekit-blog https://www.solberg.is/sveltekit-blog [2] https://github.com/jokull/blog/blob/master/src/routes/feed.xml.js https://github.com/jokull/blog/blob/master/src/routes/feed.x...
- chrismorgan 5y agoYour criticism of RSS implementation is just, but not so of Atom; Atom feeds are pretty consistently spec-correct and don’t require guessing games to parse. My experience is that the only places where interpretation of Atom feeds goes wrong is where it’s dragged down by RSS, with people coding against a library that handles both, but treating it as though it were only RSS (e.g. not handling HTML titles correctly, perhaps leading to XSS attacks). Fun fact on #3 that most people don’t know: Atom supports paginated feeds: <https://datatracker.ietf.org/doc/html/rfc5023#section-10.1 https://datatracker.ietf.org/doc/html/rfc5023#section-10.1>. No idea what library support is like. I admit it was defined in the AtomPub spec, but it should still apply to regular Atom feeds too. My own website’s feed is approaching half a megabyte with all my content ever; I’d like to make it paginated and only include the most recent ones in the first page (while still satisfying my unjustified thirst for the feed to still technically contain all the content), but as long as I’m using someone else’s static site generator that doesn’t already support that I’m probably not going to get round to implementing it.