I’m going to split my argument into two parts. In this post, we’ll look at how Twitter’s new photo service represents a shift in strategy that will ultimately threaten Facebook. In a follow-on, we’ll look under the hood at the cool new capabilities third-party apps will gain as a result. It turns out that a good way to think about both of these subjects is to look for parallels between Twitter and Facebook and traditional desktop computing platforms, so we'll follow that thread throughout.
CLI vs. GUI
Back when the Mac first introduced the world to the graphical user interface, a great way to stir up any gathering of computer geeks was to start a debate about which was better, the GUI or the command line interface (CLI). DOS and Unix power users took the side that, once you mastered all the arcane commands, CLI’s were much more powerful and productive. Mac converts, of course, argued that GUI’s were not only more powerful, they were more approachable, easier to use, and more elegant.
Ironically, both sides were right. For the tasks that a large subset of users were performing at the time (programming, data entry, manipulating text files, etc.), CLI’s were more productive. On the other hand, GUI’s enabled a whole slew of new apps which weren’t possible with a CLI (e.g., WYSIWYG word processing). For these tasks, GUI’s were obviously superior.
We all know how that shook out. GUI’s and the new apps they enabled turned out to be a better fit for the vast majority of computer users, with most of the world winding up on Windows (funny how that worked out). But for a certain class of tasks frequently performed by power users, system administrators, and developers, CLI’s still reign supreme, most notably on Unix-derived platforms. Of course, even the power users tend to use GUI's some of the time, so they gravitate towards platforms with good support for both interaction models.
Powerful vs. Approachable
So, what does this have to do with Twitter and Facebook? Let’s take a look at some UI examples:
Here's a tweet by a Brazilian TV personality in which he comments on a photo shared byAshton Kutcher showing the two of them drinking beers in Rio. If nothing else, the information density is quite impressive.
Hopefully, the parallels are obvious. Twitter has a CLI and Facebook has a GUI. This is true of pretty much every aspect of the Facebook and Twitter interfaces. On Facebook, you have a rich photo sharing UI. On Twitter (until last week), 140 characters of text. On Facebook, you have a calendar for scheduling events. On Twitter, text. And the list goes on. As is also the case with Windows, you can’t exactly say that the Facebook interface is elegant, but it certainly gets the job done in a way that’s much more approachable to a broad range of users.
Linux vs. MacOS
It seems pretty clear that Twitter needs a GUI if it’s going to challenge Facebook for mass-market appeal. In fact, the need is so clear that third-party services started filling in the gaps several years ago by building dedicated GUI’s for common Twitter tasks. First came the Twitter-focused photo sharing services (twitpic, yfrog, etc.) that wrapped a nicer interface around image uploading and linking. Then there were the check-in services (Foursquare and Gowalla), with GUI’s optimized for sharing location. And more recently there have been a surge of Twitter-attached news reader GUI’s (Flipboard, Pulse, etc.).
It’s tempting to say that focusing on the core CLI and letting others provide the pretty interfaces is a good strategy. Leaving the GUI’s to developers has the nice effect of giving users a variety of options for any given task; they can build a platform that exactly suits their needs from a bucket of pluggable parts. And not competing with the developer community seems like a good way to keep it healthy and growing, which will lead to more apps on the platform than you could ever build yourself.
But to see the fallacy of this line of reasoning, we just have to look at how this strategy worked out for Linux. The interesting thing about Linux is that the kernel is closely controlled by a small group of core contributors, led by a benevolent dictator. The kernel developers have a laser-focused mission of providing the best possible low-level OS infrastructure, very deliberately leaving it to the community to fill in the rest of the user-level components that go into making a complete platform. It's hard to argue with this approach, as the Linux kernel has made its way into hundreds of millions (billions?) of computing devices of every imaginable type.
But Linux has struggled with adoption in one key market: mass-market consumer desktops. With the job of building a GUI left to the community, an array of projects and organizations obligingly stepped up. As a result, for each component of the desktop environment, users can choose from a plethora of options of varying functionality, interface style, and, unfortunately, quality. This is great for power users, who are happy to have choices and flexibility. But it's a total bomb with most consumers, who are confused by the options and inconsistent styles and want things to just work out of the box.
Contrast this with the other major Unix-derived desktop platform: MacOS. Apple happens to be run by a (less benevolent) dictator who cares as much about creating usable and elegant GUI’s as Linus does about implementing efficient scheduling algorithms. As a result, every Mac ships with not just nicely-designed core GUI components (like the window manager, finder, system preferences, etc.), but a suite of bundled apps covering the most popular use-cases for the platform (iTunes, iPhoto, Mail.app, etc.).
The result is the best out-of-box experience in the industry. And now that MacOS is finally reaching maturity (a process that seems to take about a decade for every new platform), the superior user experience is translating to rapidly growing market share. It’s important to note that they’ve accomplished this without sacrificing one bit of the power of the CLI, since every Mac also ships with a terminal app and a full suite of Unix utilities.
Until last week, Twitter was headed full steam down the Linux path. Its developers seemed intent on building a powerful kernel, exposing it via a text-based interface and a simple but powerful API, and letting the community take care of the rest. But with the launch of the photos UI last week, they’ve changed course. If they follow this up with more UI’s (e.g., check-ins, bookmarks, events, Q&A) without sacrificing the power-user interface, then they have a good shot at becoming the MacOS of social networking.
Platform vs. Developers
One of the hot topics around Twitter's new strategy is whether it actually winds up hurting them by alienating the third-party developers who have been instrumental to their growth so far. It's instructive to look at how this played out on the Mac.
Like Twitter, when Apple started bundling apps with MacOS, they put themselves in direct competition with developers. At the time, it was easy to argue that this was bad for the developer community (and certainly was for the developers of directly competitive apps), but the net result has been that the bundled apps have made for a more compelling platform. That has led to more users, which has in turn created a much larger market for third-party apps. In the long run, it’s been a big positive for the developer ecosystem as a whole, and the Mac app market is thriving.
Twitter is just starting to navigate the same path. In the short run, bundling apps is mostly bad for developers since they’ll be competing with Twitter for the same base of users, with Twitter having a massive advantage. But in the long run, there’s a big opportunity for those who can retarget their apps to be less directly competitive. The bundled apps should lead to a combination of new and more engaged users, which will be a huge win for the developers who survive the transition.
Twitter vs. Facebook
Despite the fact that Apple has been the darling of the tech industry for most of the last decade, the competitive threat from MacOS seems to have somehow caught Microsoft off guard. I suspect that the reason has something to do with the fact that it made such a slow and incremental transformation from a self-proclaimed niche OS (remember when Apple used to compare itself to Mercedes?) to a full-featured platform that can do everything Windows can, and then some.
Twitter can, if it plays its cards right, do the same. Compared to Facebook, it’s still a niche service today. A photo sharing UI that isn’t all that different from existing third-party services may not seem like it changes that in any significant way, but if it's the first step of the guification of Twitter, then Facebook should be worried. A Twitter that maintains all the capabilities that make it unique while also acquiring a simple and elegant GUI is likely to be a real threat to the Facebook monopoly.