What feed type should I choose ? RSS 0.9x, 1.0, 2.0 or Atom ?
RSS 1.0 - definitely.
The Aaron Skonnard MSDN article is OK as far as it goes, but it's too
brief to really explain the benefits.
RSS 1.0 is the superior protocol in all ways. It has two main
advantages, the use of RDF, and the fact that Userland still can't
write a decent spec. The RSS 0.92 was infamously inconsistent on
issues such as content encoding, and these grey areas still haven't
been solved in 2.0. In practice this leads to a mess of tag soup (or
more strictly entity soup) and all sorts of problems when you first
encounter an accented character or a Euro symbol in a feed. In the
absence of a clear spec, it's hard to resolve such problems.
RSS 1.0's only disadvantage over the "simple" XML feeds is one extra
level of indirection from the list of items to the items themselves.
In almost all cases, this is a simple lookup within the feed document
itself - something that's trivial with even the simplest of XSLT. So
don't be _afraid_ of RDF. Although RDF can be used in a complex
manner, the way it's used in a simple RSS feed is no problem at all.
For a simple "newsfeed", then 0.92 does everything you need. However
we often want more than this, and that's where RDF shows its worth.
With 1.0 then it's easy to add extra modules. For your image gallery
application, Dublin Core is ideal and will do almost all you might
require. Using RDF as the underlying framework for RSS 1.0 makes
little difference unless you want it to, but it does open up a
processing model for extensible sets of properties that's just not
possible with XML alone.
RDF also has excellent documentation at the W3C site - at least since
February 2004. If you were put off in the past by the frightening
docs in '99, then take another look.
The reason why 1.0 is so much better is because of this modularity.
1.0 is smaller than the others, yet more capable. 2.0 has now
collected some of 1.0's metadata features, but only by adding them to
the core element set, in a manner that's RSS specific. With 0.92,
0.93, 0.94... this was getting ridiculous, as every new version added
another element from DC, generating a new RSS version that still
wasn't as capable as 1.0
Metadata is a communication problem, not a publishing problem. There's
no point in putting the stuff out unless the destination can read and
understand it. It's crucial to use popular open standards like DC for
this - it makes your feeds readable, and it makes them easily
transcodable into other non-RSS roles, such as integrating with an
image library.
One caveat with RSS 1.0 is to be careful with use of the content
module. Although it works and is useful, many RSS readers are still
based on 0.9* code with extensions for new properties. They may fail
to understand content encoded through the content module (try reading
the two versions of the Belle de Jour weblog, syndicated onto
LiveJournal)
Echo (aka Atom) is the idea that the solution to too many personal
pissing contests is to start yet another one.