A few days ago Apple released a new iPad Pro commercial. I don’t own a TV, but I was immediately exposed to it via my RSS feed and on Twitter1. As commercials go, it’s a pretty good one - feel free to go ahead and watch it if you haven’t. I’ll be waiting here.
It’s a nice commercial, right? It shows how for many productive and creative tasks an iPad can totally replace your laptop, and you may never even need a laptop. I agree. As early as 2011 I used a first-generation iPad to largely replace my MacBook Pro for course work at university. Today’s iOS is fundamentally more versatile and capable.
But whenever Apple pushes the iPad as a laptop replacement, there are some who conflate “can replace a real computer for a large subset of tasks” with “is a real computer”. As a stickler for accuracy, I bristle at these claims, because there are fundamental, objective differences between iOS devices and what we usually think of as “real computers”. I sensed the same discussion coming, and I naively resolved to avoid the bait this time:
Of course, less than two hours later I broke my resolution and responded to this blog post by Jason Snell:
Jason takes issue with Satya Nadella of Microsoft insinuating that the iPad is not a “real computer”. I take issue with Jason insisting that it is2.
Inevitably my response drew some fire and I had to justify it. Later that day I got into a similar discussion with Matt Birchler (@mattbirchler/birchtree.me)3 on Twitter. By the end of the day, I had published a series of tweets that did a reasonably good job of explaining my position, but I felt I should consolidate and expand my argument into a blog post4. So here we are.
First, let me define what I mean by “(real) computer”. A broad definition of “computer” may include anything from digital wrist watches to supercomputers, but when Apple pundits liken the iPad to a “computer”, that’s probably not what they have in mind. They are likely thinking of desktop or laptop computers, usually running macOS, Windows, or some flavour of Linux. “Computer” in this context is shorthand for “general purpose computer”, running a “general purpose operating system”, as opposed to “computer appliances”, such as game consoles, DVRs or e-readers. What distinguishes a general purpose computer from an appliance? Here’s what Wikipedia has to say:
“Unlike general purpose computers, appliances are generally not designed to allow the customers to change the software and the underlying operating system, or to flexibly reconfigure the hardware.”
Admittedly, there is no authoritative delineation between “general purpose computer” and “computer appliance”. Ask Google, and you can certainly find the opinion that smartphones or tablets (which presumably include iOS devices) are also general purpose computers. But those definitions focus on functional parity - “can my iPad accomplish the computing tasks for which I used to need a laptop?”. It’s undeniably true that iOS devices are capable of performing many of the same tasks as general purpose computers (and are better at some of them). Nevertheless, I would argue we should think of iOS devices as (highly versatile) computer appliances. Not unlike general purpose computers, computer appliances can be multi-functional (for instance, your game console may also play DVDs), and their base functionality may be extended by installing additional software. But unlike general purpose computers, computer appliances tend to be locked down in various ways:
- limited or no access to the underlying file system
- no root privileges - the user has limited privilege to make system-wide changes
- inability to install operating systems that are not authorized by the vendor
- no sideloading of software (users can only install software from repositories approved by the OS vendor)
- no on-device development tools - development of software takes place on a separate device (usually a general purpose computer)
- development of software for the platform is generally limited to using public APIs provided by the OS vendor, enforced by an approval process, and may be further restricted to approved parties (as is often the case with game consoles, for instance)
iOS checks all of these boxes - even as of iOS11, there is very limited access to the file system, the user has no root privileges, the device bootloader is locked (so you can’t install a different OS), app sideloading is limited to development purposes, there are no on-device development tools (creative hacks using Swift Playgrounds, or scripting solutions such as Workflow or Pythonista notwithstanding), software developers are beholden to approval and censorship by Apple.
(Yes, even the Mac occasionally skirts the edge of computer appliance territory - root login is disabled by default, OS X 10.6.8 brought us the Mac App Store, 10.7.3 brought Gatekeeper, 10.11 brought System Integrity Protection etc. But ultimately all of these security features can be disabled or cirumvented by an administrative user. Not so on iOS.)
I propose a simple thought experiment to determine whether a device qualifies as a general purpose computer (a “real computer”) or not:
Could devices running OS XYZ be used to write, compile, install and bootstrap a new version of OS XYZ (or indeed a completely new OS), without resorting to another device running a different operating system?5
The Mac, locked down as it may be in some ways, still passes this test. So do computers running desktop Linux or Windows. Android devices may qualify, assuming your device’s bootloader can be unlocked, but I don’t know that anybody has actually tried this experiment. At the very least Android gives users more freedom than typical computer appliances tend to do - for instance unrestricted app sideloading and local development (e.g. using AIDE). Rooted Android also provides full read-write access to the entire filesystem and if your phone’s bootloader is unlockable you could even install a different operating system (for instance, you can install Ubuntu Touch on supported devices). So Android is either a general purpose OS or it’s very close - though in practice hardly any users may realize its full potential. iOS, however, does not even come close.
By this definition, what makes a device a “real computer” is not its day-to-day versatility. It is the ability to write your own apps and even extend, modify or replace the underlying operating system on the device itself - which requires a degree of access to the system that iOS simply does not provide. Sure, the iOS App Store may have an app for whatever you need to do. That’s convenience. But on a “real computer” you could write your own code, that hooks into any level of the system, to do anything you could dream of doing. That’s power. You may argue that your typical user (or even very technical users) may never avail themselves of this power. That’s undoubtedly true, but beside the point. It’s irrelevant to the semantics of a “real computer” whether any given user has the skill to fully use it or the inclination to learn. What matters is that the potential is there if you want it.
In closing, let me reiterate that I’m not discounting iOS’s suitability for creative work or day-to-day computing tasks. iPads (and iPhones!) can absolutely replace “real computers” for many people, and they may be easier to use, more intuitive, more secure and offer a plethora of other objective advantages over “real computers”. But as long as iOS is as locked down as it currently is, it lacks the potential, the raw power, the promise, whatever you want to call it, that has always defined “real computers”. The iOS App Store may offer millions of sleek ready-made apps, but a blank terminal window offers limitless potential to build anything you can dream. In his article, Jason said: “My iPad Pro is whatever I want it to be”. But that’s not strictly true, is it? It is whatever the App Store enables it to be (and what Apple permits it to be). Whatever Jason wants it to be just so happens to fall within those confines. But a “real computer”6 can truly be whatever anybody wants it to be - even if their needs and wants don’t align with Apple’s policies. And that is why the iPad is not a “real computer”. I, for one, sure hope it will be some day7.
It’s beside the point of this article, so I won’t belabour it here, but as a critical consumer I can’t help but find it mildly disturbing that so many people are enthusiastically sharing a gadget commercial on Twitter. Consumers sharing a commercial. Let that sink in. ↩︎
I should point out that I have nothing but respect for Jason. He has some great podcasts and I generally enjoy his writing, even though I may not always agree with him. ↩︎
Matt is another writer (and podcaster, and app developer) I respect highly. In particular, he needs to be commended for being an Apple-centric blogger who tries to maintain an open mind by regularly switching full-time to Android. ↩︎
If nothing else, this will be convenient to link to when this topic inevitably comes up again… ↩︎
I want to emphasize that this test does not care about what you can do with a given device running a given OS - it cares about what you can do to it. My iPhone is much more useful day-to-day than, say, my Ubuntu Touch phone. It can do many of the same things my Mac (a general purpose computer) can do, but which my Ubuntu Phone cannot do (or can’t do well). Yet, Ubuntu Touch is closer to being a general purpose OS - I have root access out of the box, I can access the entire filesystem, compile code locally, and if I so choose I can completely shoot myself in the foot and utterly fuck up my system (been there, done that). Indeed, the freedom to shoot yourself in the foot is a hallmark feature of a “real computer”. ↩︎
Please note that the form factor is irrelevant. A tablet, or a phone, can be a “real computer” in this sense. It just so happens that currently most “real computers” are not tablets or phones. In my opinion that needs to change. ↩︎
Coincidentally, this is also why I have not upgraded my iPhone in a while and why I find the iPhone X outrageously overpriced. I would not hesitate one second to pay north of $1000 for a true general purpose pocket computer with the raw power of the iPhone X’s hardware, but as long as that power is shackled by the constraints currently placed on iOS, it’s merely a nice smartphone. And I cannot justify paying north of $1000 for a mere smartphone. YMMV. ↩︎