20 August 2016 ☼ opinion
A little while back, there was an article in the Verge discussing Microsoft’s long-term thinking around the mobile internet experience. The particular point in the article that caught my eye was that Satya (CEO) and Qi (VP of ASG) believe the future of mobile internet lies in what they call a “conversation canvas.” The premise is that today’s model for interacting with the Internet on mobile devices is fundamentally flawed, leaving users generally unhappy and doing the majority of their Internet browsing on conventional desktops.
The idea is that the “conversation canvas” will allow a more natural way to interface with your mobile device and increase engagement on mobile platforms. Much of this idea is based around improvements in AI and natural language processing, allowing users to interact with their devices in a more natural way. While I don’t know how I feel yet about talking to Siri or Cortana or Alexa (what does Google call theirs?), I recognize the value in the idea and am quite pleased that smart people in my own company are as convinced as I am that user interfaces could be so much better.
Now I said I’m not sold on the “natural” interface by itself — but the article got me thinking about what I dislike about user interfaces. Windows, macOS, and *nix share the same general model for desktop user interfaces. Android, iOS, and Windows Phone share the same general model for mobile user interfaces. These models work, but they’re not great. Depending on how you feel, they’re anywhere from bad to slightly above mediocre.
So if the answer isn’t today’s model and if I’m not convinced it’s necessarily the “natural” interface, then what is it?
Think about how you interact with your computer today. It’s primarily text manipulation. You write emails, papers, text messages (SMS, Facebook, WhatsApp, etc), search terms, notes, and so on. If you’re not writing, you’re reading because that is the human mechanism that is most common for conveying information. For simplicity’s sake, let’s not think too hard about graphic artists or gamers (I consider these closely tied in interface models, especially with the advent of VR). They are an interaction model that has more in common with the “conversation canvas” mentioned above and I don’t know enough about the space to babble meaningfully about it.
History Detour: Once upon a time, there was a computer known as the Canon Cat. This machine was designed by Jef Raskin, the famed designer of the original Macintosh computer. It had a novel text-only user interface combined with a special keyboard. The keyboard combined the standard QWERTY layout with a pair of meta keys1 that allowed you to invoke meaningful commands that interact with the text user interface. The beauty of this system was the speed with which one could navigate it and query information - for example looking up the definition of a word on screen or bringing up a list of adjectives for a highlighted word. Extrapolate that to programming which isn’t all that different from writing and you’ve got a very productive environment.
The problem with our user interfaces today are that they’re not high fidelity enough with the mediums we interact with. The “conversation canvas”, NUI, and VR are one approach to improving fidelity with visual and physical mediums. The approach Jef Raskin developed with the Canon Cat is a way to improve fidelity with certain text mediums. In fact, the Internet, as Tim Berners-Lee imagined it was meant to improve the fidelity of our experience with text.
So what do we do? Well - it’s clear that we’re in the age of VR/AR now. Facebook has Oculus, Steam has their on VR system, and Microsoft is developing HoloLens. In developer tools, we’ve seen things like Chris Granger’s LightTable project as well as things like Haskell for Mac. I’ve not seen an improved text interface for word processing yet. It seems like this space may be ripe for innovation - an immersive experience that better ties together the practice of writing, researching, and reading.
1. Here’s a video that will better explain the interface.