Centaur Programming: Enhancing Human Coding with AI Collaboration

cen·taur [ˈsenˌtôr] noun, greek mythology

  1. a creature with the head, arms, and torso of a man and the body and legs of a horse: 
  2. “in Greek mythology, centaurs were notorious for their wild behaviour.”

In 1997, world-famous chess grandmaster Garry Kasparov faced a historic match against IBM’s supercomputer Deep Blue. After defeating an earlier version of the machine in 1996, Deep Blue unexpectedly defeated Kasparov on May 11, 1997, with a final score of 3.5 to 2.5. This stunning event marked the first time a reigning world chess champion lost a match to a computer under standard tournament conditions. Inspired by this event, Kasparov developed the concept of “centaur chess,” also known as advanced chess,” where a human player teams up with a computer. The idea was to combine human intuition and creativity with the brute-force calculating power of AI, creating a new form of chess that could elevate strategic play to unprecedented levels.

Warp ahead nearly 30 years, and, thanks in no small part to the development of Google’s transformer deep learning architecture and the emergence of thoughtful reasoning seen with the o1-preview release of ChatGPT, the same collaborative approach to what we used to call “paired programming” is beginning to emerge with the concept of “centaur programming.”

Centaur programming is a hybrid approach where human programmers collaborate closely with artificial intelligence (AI) tools to develop software. The term “centaur” is borrowed from mythology—a half-human, half-horse creature—to symbolize the fusion of human creativity and machine efficiency.

Given that AI can handle repetitive tasks, suggest code snippets, and automate testing, this man-machine fusion allows developers to focus on more complex problems and the more enjoyable aspects of software development. As a developer, I enjoy creating the user experience – my story translated into buttons, lists, sliders, progress bars and a pleasing aesthetic using SwiftUI code. AI tools can identify potential bugs or security vulnerabilities early in development. AI can also serve as a real-time mentor, providing insights and best practices to developers. This last point, having a skilled and ego-less mentor at your side, is quite powerful.

It’s not all sunshine and moonbeams, though. I have been using the centaur-programming workflow for most of this year, and like any new technology, it has its advantages and disadvantages. It also requires a radically different developer workflow—one that takes a more story-centric holistic approach rather than one focused on a reductionist feature-driven methodology.

Where will this brave new frontier take us as software developers? Let’s find out. The use of AI in software development will only accelerate as the latest large language models emerge later this year with ChatGPT and early next year with Claude 4.

Over the next few posts, I will share my experiences developing apps in tight collaboration with the two dominant AIs: OpenAIs ChatGPT o4-preview and Antropics Claude 3.5 Sonnet. I published one to the Apple App Store and another that was, rightfully upon reflection, rejected. This journey has been a learning experience, and I hope it inspires and guides you in your own centaur programming adventures.

It’s not that AI is about to change the world. Instead, it’s the humans who can tell an AI a good story that will change the world. This reiterates our role as developers, empowering us to shape the future of AI and software development.

Portions of this article were generated by ChatGPT o1-preview. The image of the grey-bearded centaur was generated by Midjourney V6.1.

Published by Douglas J Farmer

I'm a freelance developer of Apple ecosystem apps including the iPhone, iPad and Mac.

Leave a comment