Software Developers are Nonfiction Authors
As of October 2025, GitHub hosts over 180 million accounts and 1 billion contributions to public repositories. These repositories contain everything from code that does nothing, to code that landed Neil Armstrong on the moon. Despite their differences, all of the code shares a common goal: to instruct a computer to perform a specific set of actions using a language it can understand. Rarely, though, do open source contributors intend for the computer to be their sole audience; they also write for others to understand and build upon their work. It can then be said that these contributors, all 180 million of them, are nonfiction authors.
Nonfiction writing is defined as writing that is presented as factual, objective information. A broad definition, but within it lie distinctive sub-categories. Expository nonfiction consists of information that is delivered objectively, clearly, and with strong structure. In the context of a codebase, this is the writing that has the computer as its intended audience: terse, objective, structured information. A computer crunching numbers and moving strings of data across registers does not need to know why it is performing these actions; it just needs to know what the actions are - it needs to be exposed to them. As a writer of expository nonfiction, the goal is to provide information - instructions - for a computer to act upon.
In contrast to the terse and rigid nature of expository nonfiction, there exists another type of nonfiction on the other end of the spectrum: narrative nonfiction. Narrative nonfiction explains a topic through a story containing a plot, characters, a climax, and a resolution. When contributing code to a public repository, an author not only needs the code they write to perform the intended task, but also to explain how the task will be solved to their peers so they too may understand its purpose.
In the narrative nonfiction of a repository, an author tells the story of their code’s intent to collaborators. Variables are named to convey their purpose and are used within functions that have clear expectations for inputs and outputs. Paired with the sequential nature of code (usually read from top to bottom), how the information is transformed follows a narrative arc, with the creator acting as the narrator.
Writing code that performs a specific task is a difficult skill. Writing code in a self-narrating manner such that it describes how a task will be accomplished is a skill that deserves much more credit than it is given. According to the Bureau of Labor Statistics, in the United States there are almost 2 million professional software developers, and roughly 135 thousand professional writers and authors. Given the literary skill it takes for a software developer to write accurate, self-describing code, more of them should be recognized as professional authors of nonfiction literature.
Sources
- GitHub Stats: https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/
- Nocode repository: https://github.com/kelseyhightower/nocode
- Apollo 11 repository: https://github.com/chrislgarry/Apollo-11?tab=readme-ov-file
- Definition of nonfiction: https://celadonbooks.com/what-is-nonfiction/
- Types of Nonfiction: https://lernerbooks.com/5KNF
- Narrative and Expository Nonfiction: https://celebratescience.blogspot.com/2024/01/narrative-expository-two-nonfiction.html
- BLS Software Developer Stats: https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm
- BLS Author Stats: https://www.bls.gov/ooh/media-and-communication/writers-and-authors.htm