> The meta-contacts XEP is a good example of over-engineering things that > have good-enough real life solutions already.
I think that's unfair. The fallback mechanism is easy to get going fast, and gets good results. However, there is no way whatsoever to put order on the metacontacts. This might seem a silly detail, but it isn't: it's very annoying when people use the wrong contact to contact you, and there's no way to change it with that mechanism. Every meta-contacts-enabled client has a way to reorder contacts. Secondly, this is an example of a 'smart' algorithm. Smart algorithms might work 95% of the time, but the 5% of the time they don't, they are annoying and confusing. For example, if you add a user to your roster which happens to have the same name as another contact, it'll automatically get added to the existing contact. You'll then have to start poking inside the metacontact, get the contact out, give it a different name, etc. Meta-contacts are something that feel like the user should create manually to me. And that's why the xep is for, for clients who want to give their users control over meta-contacts. If you don't want this control, don't implement the XEP, and use the fallback mechanism only. cheers, Remko
