I.e., I think this method is kind of a mess, when just adding
'hash' in separately would've solved the backwards compatibility
issue nicely. However, that ship has probably sailed, so even just
including 'v' will solve the 'users will ask for this' concern I
had about displaying version strings. :)
And then new clients would need to respond to both new-style queries
and old-style queries, as well as continuing to send ext for
backward-compatibility.
My backwards-compatibility concern was less about version display in
this case and more about the use of that value.
Old style, if I had node='http://foo.com/bar' and ver='somestring',
then I could query on http://foo.com/bar#somestring and get that value
(and of course, same with the exts).
Now you are supposed to just do a straight out disco query against the
user; http://foo.com/bar#somestring is not guaranteed to actually be a
valid query you can perform, which means old-style clients that expect
to do node#ver queries may not receive data at all. Thus, we broke
backwards compatibility entirely.
Hence my thought that including node/ver if you wanted to support the
old style client queries, and including the hash differently if not,
would have been more backwards-compatible. My talk about version
display is just because I know users will ask for the version string,
not because I think it has any inherent value. I just always think to
myself 'will my users howl at me if I remove this,' and if the answer
is 'yes,' I speak up. ;)
But I think breaking the version string for a 'backwards
compatibility' which we then proceeded to break by removing the 'query
on the hash' aspect of things was not our best decision as a standards
body. Because at this point, we've managed to confuse the issue AND
ensure old implementations may not work, either. That's my concern
there; over the course of a few revisions, we made the protocol more
confusing, and then we sacrificed the backwards compatibility we
supposedly gained by that confusion.
I mean, I know how I will implement this (including generating my hash
and then allowing it as a proper disco query to allow old-style
clients to work with me), but the situation seems non-ideal. Given
that we broke with backwards compatibility by removing the ability to
query on the hash, we should have just kept node/ver with their old
meanings, and added a separate hash attribute.
Anyway, what's done is done; I point this out only to show that we
shouldn't let this happen again when changing other bits and pieces,
down the road.
--
Rachel Blackman <[EMAIL PROTECTED]>
Trillian Messenger - http://www.trillianastra.com/