Anthropologist Sharon Traweek wrote that ethnographies usually describe “four domains of community life.” (Traweek 1988, 7) These include ecology, or “the group’s means of subsistence, the environment that supports it, the tools and other artifacts used in getting a living from the environment;” social organization, or “how the group structures itself;” the developmental cycle, or “how the group transmits to novices the skills, values, and knowledge that constitute a sensible, competent person;” and cosmology, the “group’s system of knowledge, skills, and beliefs, what is valued and what is denigrated.” Each chapter of this dissertation focuses on one or more of these anthropological categories of analysis. No single chapter is devoted to Cocoa programmers’ ecology, but because Cocoa technology itself is part of Cocoa programmers’ means of subsistence, descriptions of their ecology is present throughout the dissertation.
Chapters 1 through 3 focus primarily on the cosmology of Cocoa programmers, and in particular, why they are committed to developing software for Apple platforms in general, and with Cocoa technology, in particular. Chapter 1 focuses on the affective, normative, and ideological aspects of this cosmology, especially the construction of the vocational “indie”
52
developer identity, its connection to Silicon Valley technolibertarianism and its doctrine of social change through individual empowerment by tools, and the particular role Steve Jobs and Apple play in this cosmology, as exemplar and mythic hero. Apple also plays an integral role in Cocoa developers’ ecology, however, providing them with the tools and infrastructure to make their livings as indie developers, and this ecological dependence on the Apple corporation is ideologically reconciled through Apple’s exceptional status in their cosmology, which differentiates it from all other corporations.
Chapters 2 and 3 look at the technical aspect of Cocoa developers’ cosmology, in particular, the rational, instrumental, or utilitarian arguments Cocoa developers use to
explain why they believe Cocoa is a better programming environment than others. Chapter 2 provides the historical background for these arguments, rooted in the discourse of software engineering and maintenance that came out of the so-called “software crisis” from the late 1960s through the 1970s, elaborating how NeXT created the technologies that became Cocoa in the late 1980s and early 1990s and marketed it based on the advantages of object-oriented programming, drawing on the earlier software engineering discourse. Chapter 2 also discusses the early formation of the NeXT developer community, its transformation into the Cocoa community and its sense of vindication that the technology they loved not only survived but has become the dominant technology in mobile development. Chapter 3 examines the particular technical characteristics of Cocoa, how these characteristics make programmers more productive, but also counter-intuitively, how they also require not only significant learning, but to a large extent, a kind of mental conversion or transformation in the way a programmer thinks. This is illustrated by explaining the importance, and the difficulty, of what are called “design patterns” in Cocoa programming.
Chapter 3 thus touches on the developmental cycle of Cocoa programmers, which is more fully the topic of chapter 4. In chapter 4, I look at how new Cocoa programmers are taught by a company that specializes in programmer training called the “Big Nerd Ranch.”
This chapter is an ethnographic and auto-ethnographic look at the Big Nerd Ranch’s signature iOS Programming Bootcamp, revealing how students are trained, and how the norms and values of Cocoa developers are transmitted to them in the classroom.
53
Chapter 5 focuses on the social organization of the Cocoa community. Here I look at both its organization as a networked public online, and as a loose network of local
communities in physical space, focusing special attention on the Seattle Cocoa community. I argue that despite the ideological emphasis of Cocoa developers on independence and
individual production of apps and participation in the market, this is made possible by close collegial relationships among indie developers in Seattle, which facilitates sharing of
knowledge, practices, and code, as well as occasional business partnerships, governed by a moral economy that transcends market competition. Chapter 5 also looks at the close symbiotic, but sometimes fraught, relationship that the Cocoa community has with Apple, which provides the ecological supports for its existence but also wields the power to put them out of business. Despite the extreme asymmetry of this power relationship, the symbolic discursive power of some influential members of the community can influence decisions at Apple, in part because the Cocoa community itself includes Apple employees who have social relationships with developers outside the company.
Chapter 6, the final chapter, examines cosmology, developmental cycle, and social organization simultaneously through a case study of a technical controversy in the Cocoa community over Apple’s introduction of a new syntactic innovation in Objective-C, known as “dot notation,” that older Cocoa programmers resisted partly because it was considered a foreign element associated with what they considered “inferior” languages such as C++ and Java. This was felt to be a concession to make Objective-C more palatable to newcomers, and resistance or acceptance of dot notation became a form of boundary work against such newcomers. To some extent, the controversy also represented a struggle between prominent members of the community with Apple itself over social reproduction of Cocoa developers.
54
Chapter 1: “Indie” Cocoa Developers: Pleasure, Vocation, and Ideology
In 2008, Apple opened up the iPhone to third party application development, sparking a “gold rush” of entrepreneurial activity in mobile software applications.
“The rush to stake a claim on the iPhone is a lot like what happened in Silicon Valley in the early dot-com era,” claimed a partner with the venture capital firm Kleiner Perkins, which started a $100 million “iFund” for iPhone applications. (Wortham 2009) Programmers flocked to Apple’s platform in droves. Nevertheless, these latter-day forty-niners did not find Appleland completely unoccupied. Developers for Apple’s Mac OS X personal computer operating system were among the first to explore making apps for the iPhone. Because iPhone and OS X development both use variants of Apple’s Cocoa technology, these existing Cocoa experts tried to ensure, through their blogs and Twitter posts, that their community’s values, practices, and ideology, in other words, their techno-cultural frame, would continue to be the dominant moral and technical order for the much expanded iPhone developer community.
This chapter explores this techno-cultural frame, especially its ideology, the affective pleasure that binds Cocoa developers to use of Cocoa technology, and the construction of the subjective identity of a Cocoa programmer. These are all
components of what Sharon Traweek calls the “cosmological” component of a group’s culture, in this case, the culture of the Cocoa community of practice.
The Cocoa developer community has a long history, which I will only sketch briefly here. Cocoa is a set of software libraries (or frameworks, in Apple’s parlance) that make up a software development kit (SDK), interfaces into the operating system that allows developers to build applications. The toolkits that make up Cocoa
originated on NeXTSTEP, the Unix based operating system created by NeXT for its black-colored computers. However, NeXTSTEP had acquired a loyal following among a small niche of software developers, who praised it for dramatically
enhancing their productivity as programmers. Apple acquired NeXT in 1997, gaining
55
not only Jobs, but NeXT’s operating system and development environment, which eventually became Mac OS X and Cocoa, respectively. This allowed the devoted cadre of NeXT developers to begin selling applications to Apple’s large installed base of consumers. Most of these developers worked individually or in small-companies independent of large corporate software firms, and they began to call themselves “indie Cocoa developers.” It was this indie Cocoa community that served as the core of the burgeoning new iPhone developer community in 2008, now known as the “iOS” developer community. (After Apple released the iPad in 2010, which runs the same operating system as the iPhone, it now refers to the OS for both devices as “iOS.”)
What is particularly striking about NeXT developers is how fervently committed they were to using NeXT’s toolkits to write software, considering that NeXT had almost no marketshare, and developers had to survive by taking contracts for large financial firms, where NeXT had discovered a market for its software.
NeXT developers were known to be fanatical about NeXTSTEP:
People who write software on NeXT… would rather be sheep farmers than have to program in some other environment.” (Dan Wood, Interview, April 9, 2012).
As we saw in the introduction, Michiel van Meeteren also quoted a Cocoa programmer saying this, and apparently it had become something of popular saying amongst them (van Meeteren 2008, 22). This statement is performative, and the playful reference to sheep farming is deliberately outlandish. By focusing on the irrationality of NeXT programmers’ stubbornness, it emphasizes their deep
conviction to peers in order to enact an identity of moral superiority and separateness from other programmers who deign to use lesser environments. As we will see, until the iPhone, NeXT and Cocoa developers’ commitment was proven greater the more a developer gave up the higher earnings they might obtain in greener pastures. During the height of the dot.com era, NeXT programmers could have joined Internet startups (and undoubtedly, many did), but those who remained on the tiny NeXT platform had to find a way to justify their decision. This justification was not based on
56
rational market choice, but was articulated affectively, involving a calling to a higher purpose:
In 2000—you had to be in it because you loved what you were doing, because there was no other reason to be there! (Ken Case, Interview March 23, 2012)
It is not strictly true that NeXT developers largely sat on the sidelines of the dot.com boom. NeXT had come out with one of the first object-oriented backend web development environments, WebObjects, in the mid-1990s, built upon the same design principles as the desktop application frameworks that would later become Cocoa. Some significant corporations relied on WebObjects-based solutions for their e-commerce, including Dell until the Apple purchase of NeXT made it a conflict of interest. WebObjects was a much-needed success for NeXT, and if the acquisition had not happened, it is likely that NeXT would have survived into the 2000s relying on it as its primary product. NeXT developers would have been able to continue developing using NeXT-based technologies, and would probably have made good money doing it, but this would have been for corporate enterprise software.
Moreover, WebObjects competed in a crowded field with a host of other web
environments, especially those based on Java, Microsoft ASP, and PHP, which most of the dot.com startups were using. NeXT would have continued to be seen as a marginal technology in the industry. NeXT developers worked on contracts for already large enterprises, while the startups stuck to industry-standard solutions like Java. Thus, while many programmers joining startups during the dot.com bubble had hoped to become overnight millionaires, NeXT programmers largely worked on steady, but profitable contracts from existing large institutions, forgoing much of the dot.com hype and benefiting from the Internet boom less directly. This is very different from the experience of Cocoa programmers during the iPhone gold rush of 2008-10, where they were now at the center of tech startup activity and investor speculation.
My point is that NeXT and later Cocoa programming until 2008 was largely articulated as a labor of love and devotion for what was a marginal, even obscure
57
software technology, despite the fact that it was possible to make a comfortable living doing it. Programmers who wanted to strike it rich in 2000 joined Internet startups programming in Java, rather than work as contractors writing web backends in WebObjects. In 2002, they would be even less likely to consider writing consumer applications for Mac OS X, a platform dwarfed in marketshare by Windows, as a sure way to retire early, especially by taking risk onto themselves without investors.
While issues of money were not unimportant to NeXT and Cocoa developers before 2008, it certainly was not the only or even primary motivation, as it would have been much easier to make money doing traditional Web or Windows development. This equation certainly changed after 2008, especially among most of the newcomers hoping to get in on the ground floor of the “mobile revolution.” Nevertheless, my focus in this chapter is not primarily on these newcomers, but on the old guard of the Cocoa community, the true believers that had stuck with NeXT and Apple through tough times and were developing exclusively with NeXT/Cocoa long before iPhone apps were seen as the surest way to get rich quick. Where did this devotion to Cocoa come from? What sorts of affective pleasures, normative values, and ideological commitments motivate indie Cocoa developers? These are the questions I will examine.