For some balance, there are contrary opinions. This one seems to revolve around project governance.
And links  and  have a lot of people piping up saying they like XMPP just fine.
To be fair to XMPP, I strongly suspect it is a protocol trying to solve a very large, very messy problem space, and too many developers are trying to wrestle with it "raw" in its totality, unaware that for their specific problem domain, they only need a subset, and a specialized protocol/library that exposes only that subset to them. It's almost as if too few understand that XMPP is kind of the assembly language (or microcode?) of its problem domain, and most people need a $High_Level_Language_of_Choice instead.
This is obviously not ideal for everyone, but I suspect that outside of tech that using a custom client is possibly even a plus.
Community has asked this for a while, we want to build an effective, well documented API to let the community create what they want: http://mattermost.uservoice.com/forums/306457-general/sugges...
I'd honestly be more interested in seeing Mattermost try and write a really solid solution, and then work to standardise their protocol.