Software Can Have Opinions: Why Apple’s Case Against the FBI Could Turn on the Structure of Its Code


The FBI is headed toward a brutal legal showdown with Apple over a court order that requires the computer manufacturer to create a custom software tool designed to undermine the security and encryption features in the iPhone recovered from San Bernardino shooter Syed Farook. A central element of the case is the treatment of Apple’s code as a type of “free speech,” because the United States government is clearly not allowed to compel speech that does not yet exist from objecting parties any more than it can silence existing statements it simply doesn’t approve of. 

By now there’s plenty of precedent by which First Amendment protections have been applied to software — but the nature of that characterization isn’t always consistent. There’s an obvious similarity of form: Both code and more conventional written statements are presented as readable text. In a motion to vacate the order filed by Apple on February 25, Erik Neuenschwander, Apple’s manager of user privacy, directly likens code to prose. “[W]riting software,” he claims, “is an iterative, revision intensive, and mentally challenging task, just like writing essays, whitepapers, memos, and even poems.” There’s a sense, however, in which this description papers over the ultimately utilitarian nature of code: A poem does not set out to accomplish anything so mechanical as a set of commands sent to a processor. To the extent we feel compelled to compare code to other texts, it might be more accurate to liken coding to writing an instruction manual: still able to carry expressive meaning in the right hands, but also usually removed from the purely artistic goals of a poet.

Zooming out, there’s also another more compelling level of abstraction. An astute amicus brief filed by the Electronic Frontier Foundation in support of Apple explains how the FBI’s requests would have lasting ramifications for the company’s identity:

Each of these security features represents a deliberate choice by Apple in what the code says and does, and each serves Apple’s broader purpose of making good on its promise of security to its customers. To remove or disable these security features, Apple’s programmers must edit iOS, writing new code they do not want to write, and with which Apple not only vehemently disagrees, but that it believes is wrong for society as a whole. By compelling Apple to write and then digitally sign new code, the Order forces Apple to first write a message to the government’s specifications, and then adopt, verify and endorse that message as its own, despite its strong disagreement with that message. The Court’s Order is thus akin to the government dictating a letter endorsing its preferred position and forcing Apple to transcribe it and sign its unique and forgery-proof name at the bottom.

This is true. But it’s not just that the FBI’s demands could be considered unreasonable because Apple’s programmers may disagree. There’s another party at stake. Software itself can have opinions, too.

Bear with me here. We should anthropomorphize only very carefully, since “information wants to be free” got a little out of hand, but the truth is that opinionated is a very real term in software development, used to explain how code works and even to plan entire program architectures.

When used by programmers to describe their software projects, the word opinionated means that a program intrinsically embodies some conception of “the right way” of doing its job, usually at the expense of flexibility. The tradeoff is made based on broad goals or values that are not or cannot be included in the source code directly, but are still expressed through indirect reflection. This simplifying clarity then guides downstream decisions, sometimes even allowing the application to make them automatically.

At the macro level, Gmail could be considered an opinionated email application in the sense that it is designed to encourage message retention — that is, it prefers “archiving” and saving messages instead of outright deleting them. As a result, it always subtly guides users toward searching and filtering their messages, and to save them indefinitely instead of routinely deleting them; “search don’t sort” was among its stated principles at launch. These goals are evident throughout the application in many different ways: It launched with vastly more storage space than any of its competitors, the command to delete an individual message is buried under nested menus, and the search bar is always the second thing rendered on the screen, preceded only by the logo.

Opinionated first started creeping into developer lingo after being prominently featured in Getting Real, a 2006 strategy book self-published by the Chicago-based software company Basecamp, then known as 37 Signals. The fourth chapter ends with a segment titled “Make Opinionated Software“:

Some people argue software should be agnostic. They say it’s arrogant for developers to limit features or ignore feature requests. They say software should always be as flexible as possible. We think that’s bullshit. The best software has a vision. The best software takes sides. When someone uses software, they’re not just looking for features, they’re looking for an approach. They’re looking for a vision. Decide what your vision is and run with it. And remember, if they don’t like your vision there are plenty of other visions out there for people.

In other words, a program can be philosophically concerned with larger issues in the world, beyond its own error-free execution.

This notion has always existed, but more explicit examples proliferated once the approach was codified. Today, opinionated musical software might try to steer you away from dissonant chords that would sound bad, and an opinionated spell-checker might refuse to recognize foul language. Facebook’s popular library REACT took off in part because it argued very effectively for powerful simplifications of the many confusing ways in which data can flow through complex systems. These days, whenever the Python programming language presents multiple similar solutions to the same problem, the options are often immediately subjected to intense debate about which are most “Pythonic” — that is, best aligned with the governing principles of the language. The web-development package Ruby on Rails even conveys its opinionated nature right in its name: “On Rails” is a phrase used in game design to describe scenarios in which the player’s freedom of motion is deliberately limited so as to instead emphasize other elements. 

For the most part, software can’t yet think entirely on its own, so its opinions ultimately derive from the people behind the projects. Someone powerful at Google wanted Gmail to provide them with a large corpus of text for analysis, and to hold on to its users by organizing their message history so that text could be processed again later as new analytical techniques emerged. Ruby on Rails is powered by people who don’t much care to micromanage every minute detail when building things for the web. Opinionated software interprets human priorities and values as program architectures. The scope of the opinions can thus sometimes be accordingly broad.

Firefox, the popular web browser project of the non-profit Mozilla Foundation, is built around open sharing: development happens in public, and the codebase is freely provided under a flexible open-source license. But a huge impediment to those goals emerged around the turn of the decade with the release of the newest revision of HTML, the language used to write web pages. One of the most prominent new features in HTML5 was integrated multimedia support, which allowed videos to be decoded by the browsers directly, instead of always being offloaded to a separate plug-in component such as Flash or QuickTime. This was a very big deal – even YouTube was soon rewritten around the new functionality. Unfortunately, the best video encoder on the market was subject to patents that were irreconcilable with the Mozilla Foundation’s vision of a free and open internet, in particular for users in emerging third world markets where even small licensing fees for media playback might actually turn out to be consequential. As a result, for many years Firefox would only read videos made using an alternative free encoder, doubling the number of files in circulation and vastly complicating all web-based video software. Mozilla eventually caved in on this point, but until that finally happened, the deliberately contentious design of the Firefox multimedia system was a specific, elegant, highly visible, and completely exasperating argument that access to the web should be fundamentally free.

One reliable peril of advanced technologies is that the details of implementation usually aren’t yet common knowledge among most people — often including judges and lawyers, regrettably — but the compulsion of speech, or software-as-speech, isn’t made any more acceptable simply because fewer people know how to interpret it. The FBI’s demands in this case rely on that confusion: Its application for the order to compel Apple to provide them with the custom software states that “writing software code is not an unreasonable burden for a company that writes software code as part of its regular business.” This phrasing contains a subtle gamble: that both the courts and the public will conceive of the software as a tangible artifact produced by an incomprehensible factory in the clouds, rather than fully considering its design and development a coordinated act driven by human motivations, politics, and principles. Never mind that the FBI itself employs a formidable staff of politically motivated technologists, and is deploying them in pursuit of this case!

The argument that the iPhone and iOS are structurally opinionated when it comes to matters of privacy and encryption will require that Apple demonstrate that the various subcomponents are coherently aligned. This remains to be seen, since only Apple has access to the proprietary source code, but it seems likely enough, considering that the newer models of the phone now also include a secondary computer for managing the encryption keys safely. No matter how this turns out, the continuum that stretches from the iPhone’s encryption layer all the way out to human values does not end at Apple’s doorstep, because Apple operates in a world that the rest of us built and now have to live in. The semantics of the engineering term are not so different from the colloquial meaning, so if the designs of Apple’s products turn out to be demonstrably opinionated, then the logical conclusion would seem to be that the government is trying to outlaw a value system, literally forcing an opinion by undermining architectural decisions that were guided by priorities that diverge from those of its intelligence agencies. Whether or not this succeeds, we should consider what the attempt means for the rest of the world beyond Cupertino.

Software Can Have Opinions