Specs meet the real world

I’ve been playing aroung with Jabber and loudmouth a bit, and more specifically trying to implement JEP-0055, a simple JUD search. Now, for an unambiguously defined protocol there seems to be quite a bit of ambiguity. It didn’t take me long to notice that:

  1. Servers don’t necessarily reply to your <iq/> requests (spec says they MUST – granted I didn’t bother checking the timeout period, if any, so who knows…)
  2. JIDs might have trailing whitespace, so you can get different results for user@jabber.org and user@jabber.org . Just try to present that in a sane fashion for the user.
  3. The contents of <nick/> and <email/> seem to have been swapped (but not always.)
  4. The contents of <first/>, <last/>, <nick/> and <email/> sometimes contain trailing newlines (seems to be server dependent.)

Maybe the above explains why JEP-0055 is not standards-track but Historical.