When the Internet was coming into its own back in the ’90’s, we were migrating from “classic” uses (Archie, Finger, Ping, Usenet, FTP, Email, web browsing, etc.), to a more “modern” set. Chances are that you’ve heard of a couple of those, whereas the others have all but faded out of commonality. Today web technologies power most of what we do, and it looks like email is next on the chopping block. If that’s the case, will chat apps replace email as our preferred form of communication? And if so, why does Google think I need five apps to accomplish what I should be able to do in one?

Nokia Phone

Background

In the early days of cellular telephony we carried around devices to make and receive phone calls while “on the go”. Our pagers let us get text messages, and some even allowed us to reply back. Eventually the two (cell phones and pagers) merged into one device. Texting (SMS) was limited to a sentence or two and the keyboards on our phones weren’t conducive to sending much more than basic messages.

Fast-forward to today and most of us would much rather send a text than make a phone call, but SMS and even MMS were (and still are) fairly limited in their abilities. To expand on those core abilities we currently have a patchwork of solutions, and it’s clear that we need something better than what we have now.

SMS, MMS, and POTS telephony are the “lowest common denominator”. You can call Grandma’s old rotary phone from your cell phone, but you can’t send her a picture or even a text. The problem here is that you don’t necessarily know what your recipient’s capabilities are. Sending Grandma a picture (or even a text) will simply go undelivered, and unconfirmed – you’ll never know that she didn’t get it, and she’ll never see the pictures of your graduation. So much for “lowest common denominator”.

What was needed was a chat system, based on web technologies and protocols, that could seamlessly bridge the gaps, and provide a common-ground upon which the comms of tomorrow could be built.

Jabber and XMPP

By Raja Sandhu, XMPP Standards Foundation - http://xmpp.org, MIT, https://commons.wikimedia.org/w/index.php?curid=20775269

Back in 1999 Jabber was released. This chat service went up against the then behemoth, ICQ. The service quickly evolved into what could later be known as XMPP (as published in RFC 3920 and RFC 3921) –  the Extensible Messaging and Presence Protocol.

XMPP is an open-source communications protocol which enables the near-real-time exchange of structured data between any two (or more) networks. It was designed to be extensible and has been used for publish-subscribe systems, signalling for VoIP, video, file transfer, gaming, Internet of Things (IoT) applications, and even social networking services.

Because XMPP is an open protocol, it has the potential to serve as the unifying infrastructure through which any chat service could communicate with any other chat service. Google used XMPP in Google Talk and Google Voice, AOL had “experimental support” in AIM, Facebook used XMPP in its Messenger service, and even Microsoft used XMPP in its “Microsoft Messenger Service” (or “MSN Messenger”, or “Windows Live Messenger” – all essentially rebrandings of the same service).

MSN Messenger

For a while it looked like XMPP could be the protocol that would let anyone on any service communicate with anyone on any other service, much like email, POTS, and SMS work today. Alas, that vision was never realized. AOL dropped support for XMPP in 2008, Google and Facebook dropped support in 2014, and the Microsoft Messenger Service is long gone.

Despite all its potential, XMPP wasn’t perfect. It didn’t support QoS (something that’s very important for voice and video communications), due to its XML nature it had higher network overhead than other binary solutions, it was limited in its abilities to transfer binary data (since data had to be base64 encoded before it could be transmitted), and did not support native end-to-end privacy via encryption.

Chat Apps: Where we are today?

Today, Google has Hangouts that handles chat between two people or a group, enables voice (to Hangouts users as well as POTS via VoIP) and video calls, lets users send files to each other, serves as an SMS bridge for SMS and MMS messages to cellular networks, and even connects to Google Voice for voicemail playback. For a while it looked like Hangouts was going to be the universal communications client for Google users on Android, iOS, and even desktop computers – then Google started pushing users to install Messenger for all their SMS/MMS needs, dashing the hopes of everyone hoping for a unified comms client.

ios-7-imessage

Apple isn’t much different. Its iOS Messenger app lets users send SMS and MMS to each other, but prefers iMessage to those other services – sometimes it even “hijacks” the delivery of messages when a user drops iOS for another platform. For audio and video calls using web technologies rather than POTS, Apple has Facetime.

Microsoft uses Skype, BlackBerry has BBM – each with their own nuances.

The user experiences and capabilities of each app aren’t consistent, and not every solution works on every other platform (we’re calling you out, Apple!). These have lead to the rise of countless third-party chat applications: Snapchat, WhatsApp, Kik, Telegram, Facebook Messenger, Signal, Wickr Me, Silent Phone, and even Cisco Jabber (the official Jabber client, now owned by Cisco Systems). The list goes on and on. Obviously there’s a hole to be filled – and none of the current solutions do it well.

Google knows this, and is trying to react with new apps of its own. Announced at Google I/O this year, and slated to arrive later this summer, Allo is Google’s text-based chat app; and Duo is Google’s new video-based chat app. No voice only features are apparently available in either app.

Chat Apps: Where we need to be?

We need a new comms system that’s not hampered by old technologies and can raise the bar. This new service needs the following features, in order of importance:

  1. Privacy (via end-to-end encryption)
  2. Text Messaging
  3. Audio Calling (to replace traditional telephone calling)
  4. Video Calling
  5. Attachments (pictures, short videos, geolocation, etc.)
  6. Short Audio Clips
  7. Groups
  8. Interoperability (between service providers, operating systems, and platforms – including desktop and laptop computers)
  9. Message delivery and read confirmations
  10. Online Presence Indication (or when someone was “last seen online”)

While the list may seem extensive, it’s probably not exhaustive, and will certainly evolve as time progresses. In the meantime, I really don’t want to have five chat clients installed on my smartphone – and that’s only counting Google’s suite!