If you want a half dozen simultaneous headaches, think about the concept of "unified messaging" across platforms. If everyone is in the same over-the-top (OTT) island, all is good and happy, but the minute you start talking about cross-platform and cross-carrier, it all falls apart for any general case, with apologies to the XMPP and RCS worlds. And there's little hope for a unified solution anytime soon given the proliferation of OTT islands and only a begrudging adoption of interoperability frameworks and standards.
When the smoke clears, WebRTC has the potential to be the thread to tie together messaging through the browser and mobile apps across platforms -- if Apple would hurry up and accelerate its work in integrating the technology into its operating systems and browsers. Already, Microsoft, Google, and Mozilla support WebRTC as a standard means of media exchange. Apple has been advertising for WebRTC gurus, so something should happen at some time to bring Safari into the fold, while third-party iOS developers have supported WebRTC the hard way by building stand-alone apps using SDK code.
But the fun continues in how to implement messaging across desktop and mobile. There's a big split with messaging running within a browser on the desktop while mobile platforms get dedicated apps. But more recently, I've seen apps both go into the browser and come out of it.
For example Twitter has taken TweetDeck out of a dedicated app and now has it as running as a browser window within Google Chrome. Having started as a TweetDeck app user, I was a bit skeptical that the experience would be as fast and effective as a dedicated app -- I was wrong. If anything, I'm now happier because I have one less app on my desktop that is taking up disk space and needs a regular update cycle.
A number of developers are taking the opposite tactic with Windows 10, borrowing a page from the mobile experience in rolling a web-based experience into a dedicated framework that has its own desktop icon. I've never been a big fan of dedicated apps in the mobile world because I have a lot less storage on my phone and tablet than I do on a PC desktop/laptop. Much of this app vs. in-browser selection is in user taste and experience, with my personal preference leading towards an in-browser experience if it is a seamless one -- such as the TweetDeck migration.
Even if you could have a "standard" way to implement messaging across platforms, what would be the underlying messaging standard? Facebook wants to rule the world between its own messaging platform and its WhatsApp subsidiary while Microsoft is content to continue to add bells and whistles to Skype, such as real-time language translation and API bots. Nary the two will be able to exchange data of any sort because there's no perceived value for either company, so people have to have all of the above to communicate through all of the above, with separate software, user interfaces, and contact lists. While there are tools to transfer and update contact lists between services, it gets a bit old after a while.
Federation is the latest angle of building a more "universal" messaging experience, with different services agreeing to exchange messaging and other services among themselves. The best working example of this is the fring Alliance, where fring service providers network to exchange messaging across their respective user bases to create a large aggregated community.
Rich communications services (RCS) is also getting another look these days with Google's announcement to put native RCS services into Android devices. Adding RCS into Android would be a stepping stone for carriers to federate their user bases -- basically anyone who has a phone -- to provide "universal" messaging outside of existing OTT services. The wireless community has been slow to roll out RCS, but the underlying software comes with rolling out Voice over LTE (VoLTE). As VoLTE moves into the mainstream, RCS messaging could follow, delivering a common experience for all without having to lug around multiple OTT "islands."