IRC on the Apple //c
IRC on the Apple //c (source: Blake Patterson (CC BY 2.0))

Is chat a challenger to the Web? Or is it just another piece that fits neatly into the existing infrastructure?

The Web came of age in an era when the computing world was gleefully shifting from command line interfaces to graphical (GUI) interfaces. While there's nothing about hypertext that requires a GUI, the Web found credibility when the developers at Mosaic added inline images and a few other features that made the Web fit comfortably with the surrounding world. Underneath the GUI, the Web's HTML core allowed other interfaces, as accessibility specialists have reminded developers for years.

The Web has never been the only choice, though. Internet Relay Chat (IRC) is older, and dozens of chat systems have proven popular. Many of those systems themselves run within browsers or in apps built with web technologies. Chat models typically run at a much faster clip, with constant conversation rather than web sites' and apps' much slower publication models.

The boundary, though, is very porous. One of my favorite demonstrations ever was a chatbot built on an (X)HTML-based application I'd built. Instead of using the carefully styled interface we'd built, the bot answered questions much more directly, responding with relevant content from the HTML. Sadly, we didn't pursue that, but it was an excellent lesson in how easy it can be to move structured content from one interface to another, even without a database lurking in the background.

Over the past few years, though, that boundary has pretty much dissolved. The rise of Node.js and its spread into, well, pretty much every corner of computing has meant that it's even easier to connect Web approaches with other ways, including chat. JavaScript's growing universality means that there's a library for most everything. New styles of network connection, like WebSocket and WebRTC, open up more models than the classic centralized server.

Just as on the Web, though, having a collection of tools with which to build interfaces doesn't magically build the interface for you. You need to decide how best to present information. You need to decide how you want your users to connect with your information and set expectations. In particular, you need to handle the complexity that emerges and grows rapidly—conversations can go in many directions, not all of them fruitful. Those issues make both interface details and overall performance more challenging to get right. Human to human chat sets up a pretty high bar for bots, though fortunately humans are fairly forgiving of the quirks of code—so long as it helps them accomplish their goals quickly.

My bet is that chat will get along with the Web just fine, with different kinds of interfaces (perhaps different kinds of protocols) co-existing. Customers want to find things out and get things done. Integrating chat will help, and can build easily on the tools we already have.

Article image: IRC on the Apple //c (source: Blake Patterson (CC BY 2.0)).