Ape coding

Ape coding is a software development practice where a human developer deliberately hand-writes source code. Practitioners of ape coding will typically author code by typing it on a computer keyboard, using specifically designed text editing software.

History

The term was popularized when agentic coding (coding performed by AI agents) became the dominant form of software development. Ape coding first appeared in programming communities as derogatory slang, referring to developers who were unable to program with agents. Despite the quick spread of agentic coding, institutional inertia, affordability, and limitations in human neuroplasticity were barriers to universal adoption of the new technology.

Critics of agentic coding reappropriated the term during a period of pushback against society’s growing reliance on AI. Effective use of the primitive AIs available at the time demanded a high level of expertise, which wasn’t evenly distributed in organizations. As a result, regressions in software products and disruptions in electronic services were frequent within the first stages of adoption.

Ironic usage of ape coding as a positive description became commonplace. It highlighted a more deliberate approach to building software: one defined by manual craftsmanship, requiring direct and continuous human involvement.

Rationale

The central view of ape coding proponents was that software engineered by AIs did not match the reliability of software engineered by humans, and should not be deployed to production environments.

A recurring argument in favor of this perspective was based on comprehensibility. The volume of code AI developers could produce on demand was much larger than what human developers were able to produce and understand in a similar timeframe. Large and intricate codebases that would take an experienced human engineer months or years to grasp could be produced in hours. The escalating complexity of such codebases hindered efforts in software testing and quality assurance.

AI skepticism also played a part in the critique of agentic coding. There was widespread speculation on whether the nascent AIs of the period possessed true understanding of the tasks they were given. Furthermore, early AI implementations had deficiencies related to context length, memory, and continual learning, affecting quality and consistency of output.

Other defenses of ape coding reflected concerns about the impact of AI on labor markets. Despite the shortcomings of AI-written software, human developers were increasingly replaced by agents, with examples of high profile companies laying off large portions of their IT staff.

Tangentially, the responsibilities of human software engineers shifted when an essential aspect of their work (coding) was automated. The activities that remained were more similar to management, QA, and in some cases assistant roles. A common observation was that the human engineers who were still employed no longer enjoyed their line of work.

Advocacy for human-written software

Ape coding advocates argued that a return to human-written software would resolve the issues introduced by AI software development. Interest groups campaigned for restrictions on agentic coding, subsidies for AI-free software companies, quotas for human developers, and other initiatives in the same vein.

Although ape coding advocacy enjoyed a brief moment of popular support, none of these objectives were ever achieved.

Decline

Advances in AI quickly turned ape coding into an antiquated practice. Technical arguments for ape coding did not apply to newer generations of AI software engineers, and political arguments were seen as a form of neo-Luddism. Once virtually all software engineering was handed over to AIs, the concept of ape coding fell into obscurity.

Revival and modern practice

A resurgence of interest in ape coding has revived the practice among human hobbyists. Communities and subcommunities have formed where ape coders—as they came to be known—discuss computer science topics, including programming languages and software engineering.

Prominent ape coding clubs have attracted hundreds of thousands of members who exchange ideas and human-written programs. The clubs organize in-person as well as virtual gatherings where teams of ape coders collaborate on software projects.

The main value of modern ape coding appears to be recreational. Ape coders manifest high levels of engagement during coding sessions and report feelings of relaxation after succeeding in (self-imposed) coding challenges. Competitive ape coding is also popular, with top ranked ape coders being relatively well-known in their communities.

Aside from recreation, humans pursue ape coding for its educational value. Many have described ape coding as a way to gain a deeper understanding of the world around them. While an interest in ape coding was initially perceived as an unusual quirk, it is currently seen as a positive trait in human society, signaling curiosity.

Members of the software archaeology community published a series of articles on the human-written Linux kernel that had a deep impact in the larger ape coding world.

Considered by ape coders to be the ultimate work of human software engineers (in scale, complexity, and longevity), Linux inspired a wave of initiatives to build large scale software projects featuring thousands of human collaborators.

The most promising of these efforts is based on studies by the AI-written software interpretability community. The goal is to produce an entirely human-written compiler for the AI-designed programming language icon. A fully compliant implementation is estimated to be many times as complex as the Linux kernel, but a prototype with limited scope is within human capabilities and is currently the primary focus of enthusiasts.

Results so far have been encouraging, as the latest version of h-icon is able to build functional binaries for small programs. However, the initiative has recently suffered a setback as core contributors to its codebase left to work on a fork. The split was motivated by heated debates on whether C is the most suitable programming language for the project; dissenters expressed a desire to rewrite it in Rust.