PyCon Nigeria Annual Conference

Python as a Social Fact


David Mertz

David is Principal Engineer for Service Employees International Union. He created the data science training program for Anaconda Inc among other companies. With the advent of deep neural networks he has turned to training our robot overlords as well. Earlier, David helped build the world's fastest, highly-specialized, supercomputer for performing molecular dynamics. David was a Director of the PSF for six years, and remains co-chair of its Trademarks Committee and of its Scientific Python Working Group. His columns, Charming Python and XML Matters, written in the 2000s, were the most widely read articles in the Python world. He has written previous books for Manning, Packt, O'Reilly and Addison-Wesley, and has given keynote addresses at numerous international programming conferences.


Python communities—and technology-oriented communities in general—have an independent existence, above and beyond those individual people who make them up. Our software communities have norms, sociological and psychological structures of identification, histories, and ethics and values. We humans contribute to these social entities, but equally much we are created as humans *by* them.


I'd like to address a topic a bit different from most at PyCon conferences. The audience can be challenged to think about things from domains of thought than they might be most accustomed to. While I've, of course, enjoyed the PyCon keynotes and talks about community in a general way, and also those about more specific technical developments in the language or its major libraries, what I have enjoyed the most at PyCon keynotes are those that push at the edges of humanities and social science disciplines, being "technical" in a certain sense but not primarily in the computer science/programming sense.

The ideas of Émile Durkheim, and later sociologists inspired by him, provide a rich framework for thinking about collective entities—that is, an attention to "social facts" as independent observable and empirical entities—of open source communities, and of the Python community specifically. I think it is fruitful to think about our community(s) as their own sociological objects that are not reducible to the individual humans involved in it (as wonderful as so many of them are, and such dear friends in many cases).

We can compare different open source—or programming languages more broadly (i.e. even closed-source communities)—and think about what constitutes communities in a sociological or anthropological sense, rather than around specific features of the programming language. Obviously, those factors overlap.

A productive analogy is in considering how people sometimes convert between religions (a Durkheimian theme). That might sometimes happen because someone identifies with the theological tenets of a different religion than the one they formerly followed. However, I think far more often it has to do with the different communities and social networks that make up the group they join.

With programming languages, affiliations sometimes follow a job opportunity or demand. You work at a company, and your boss tells you "We're going to develop something in language B rather than language A" ... and so you learn that other thing, and become involved in its communities. That is somewhat akin to affiliational identities of religion, ethnicity, nationality, or party membership, in which individuals very often simply allow themselves to occupy the social positions assumed about them.

With open source, I believe affiliation often exposes a more liberatory and utopian possibility. Of course, people genuinely do like the "theology" of particular programming languages (its syntax, semantics, its approach to concurrency, or mutability, etc). But the "social facts" also come into play fairly often, and these identities as e.g. a "Pythonista" are more often deliberately chosen identities, but simultaneously identities that must be considered as realities of the groups with which people choose to identify. The values embodied in a group both attract people to that group and shape those who belong to it.

Let's let Python embody a spirit of cooperation, community, sharing, and devotion to human betterment.

Audience level: Novice