Jeff Atwood, the acclaimed founder of Coding Horror and co-creator of Stack Overflow, has launched a significant open-source initiative aimed at revitalizing a foundational piece of computing history: the games from David H. Ahl’s seminal book, "101 BASIC Computer Games." This ambitious project seeks to update these decades-old programs, which were instrumental in shaping a generation of programmers, into 10 modern, memory-safe scripting languages. Hosted collaboratively on GitHub, the initiative not only aims to preserve these digital artifacts but also to introduce contemporary coding practices, such as the use of subroutines, to a new audience while offering a tangible incentive through donations to Girls Who Code.
A Legacy Reimagined: The Genesis of a Computing Revolution
The origins of this project are deeply rooted in the early days of personal computing, a period vastly different from today’s intuitive, graphically rich interfaces. In the 1970s and early 1980s, booting a computer didn’t lead to a vibrant desktop environment; instead, users were greeted by a stark, often green-on-black command line. This text-based interface was the gateway to interaction, demanding precise commands to operate. While some fortunate users had access to peripherals like cassette tape drives for loading pre-recorded programs, the reality for many burgeoning enthusiasts was far more hands-on.
David H. Ahl and Creative Computing: A Pioneer’s Vision

For a significant segment of these early computer users, the only way to make their machines "do anything" was to manually type in programs from books. Among these, "101 BASIC Computer Games," first published in 1973 by David H. Ahl, stood as a monumental resource. Ahl, a visionary who had previously worked at Digital Equipment Corporation (DEC), compiled these games primarily from submissions to his groundbreaking publication, Creative Computing Magazine. This magazine, which Ahl launched in 1974 after leaving DEC, was itself a testament to early entrepreneurial spirit and dedication. Ahl famously invested his "sweat equity" into its creation, handling everything from editing and writing articles to photography, illustration, layout, and even the physical distribution of the first 8,000 copies from his basement. Creative Computing quickly became a vital forum for the nascent computing community, sharing ideas, programs, and fostering a sense of collective discovery.
"101 BASIC Computer Games": A Million-Selling Phenomenon
Ahl’s book, "101 BASIC Computer Games," transcended its role as a mere collection of code. It became a cultural touchstone, a gateway to understanding and interacting with computers for an entire generation. At one point, astonishingly, there were more copies of this book in print than there were personal computers available worldwide. This fact underscores its profound impact; individuals would often purchase multiple copies for a single machine, meticulously typing lines of code, often for hours, to bring simple games like "Civil War," "Hamurabi," or "Lunar Lander" to life. The book’s popularity propelled it to become the first computer book to sell over a million copies, a staggering achievement that cemented its place in computing history. Its pages, adorned with the whimsical original art by George Beker, were not just instructions but invitations to a new world of digital creation and play.
The games themselves, primitive by modern standards, were direct reflections of the computing capabilities of the era. They typically involved text-based interactions, simple numerical calculations, and basic decision-making logic, often presenting scenarios like managing resources in a kingdom or navigating a spacecraft. Despite their simplicity, they offered profound lessons in programming logic, problem-solving, and the sheer satisfaction of making a machine respond to one’s commands.
The Need for a Modern Update: Bridging Decades of Code

While the historical significance of these games is undeniable, their original BASIC code, replete with line numbers and lacking modern structural elements, presents a stark contrast to contemporary programming paradigms. This disparity prompted Jeff Atwood to initiate a comprehensive modernization effort. He points to a previous attempt in 2010 to port these games to SmallBasic, noting that while it removed line numbers, it largely failed to integrate more advanced programming concepts. "Certainly we can do a bit better than merely removing the line numbers?" Atwood questioned, highlighting the absence of fundamental modern practices like subroutines, which he famously championed as "the greatest invention in computer science."
Atwood’s Vision: Beyond Line Numbers
Atwood’s vision for this project extends far beyond a simple translation of code. It is about re-interpreting these classics through the lens of modern software engineering principles. This includes adopting modular design, improving readability, and, crucially, implementing subroutines to manage program flow and reduce redundancy. The goal is to transform these historical curiosities into educational tools that demonstrate how core programming logic can be expressed elegantly and efficiently using today’s best practices, thereby making the original spirit of BASIC accessible and relevant to contemporary developers.
Recognizing the immense cultural and historical value of Ahl’s work, Atwood sought and received permission directly from David H. Ahl to undertake this ambitious project. This endorsement from the original author lends significant legitimacy and historical weight to the initiative, acknowledging its role in preserving and updating a shared digital heritage.
The Collaborative Blueprint: Modernizing with Memory Safety

The project, hosted on GitHub under the banner coding-horror/basic-computer-games, is designed as a collaborative, open-source endeavor. This model directly contrasts with the solitary experience of typing programs from a book in the 1980s, fostering a global community of contributors working together.
Strategic Language Choices: A Diverse Toolkit
A key aspect of Atwood’s modernization strategy is the selection of programming languages. The project targets 10 memory-safe, general-purpose scripting languages, carefully chosen to offer a diverse range of modern programming environments while adhering to principles of robust software development. Initially, the list included Java and Pascal, but it evolved to reflect current best practices and community feedback. As of March 2022, the chosen languages are:
- Python: Renowned for its readability and widespread use in web development, data science, and automation.
- Ruby: Popular for its elegant syntax and use in web frameworks like Ruby on Rails.
- JavaScript: The ubiquitous language of the web, crucial for front-end and increasingly back-end development.
- C#: Microsoft’s versatile language, foundational for Windows applications, game development (Unity), and enterprise solutions.
- Go (Golang): Developed by Google, prized for its performance, concurrency, and efficiency in systems programming.
- PHP: A long-standing server-side scripting language, powering a significant portion of the internet.
- Swift: Apple’s powerful and intuitive language for building apps across its ecosystem.
- Rust: A systems programming language celebrated for its memory safety, performance, and concurrency without a garbage collector.
- Kotlin: A modern, statically typed language that runs on the Java Virtual Machine, gaining popularity for Android development and beyond.
- Lua: A lightweight, multi-paradigm scripting language, often embedded in applications and games for extensibility.
The emphasis on "memory-safe" languages is a crucial modern consideration. Memory safety prevents common programming errors like buffer overflows and null pointer dereferences, which can lead to security vulnerabilities and program crashes. By selecting these languages, the project ensures that the modernized versions of these classic games are not only functional but also adhere to contemporary standards of reliability and security.
The GitHub Nexus: A Global Programming Guild

The GitHub repository serves as the central hub for this global collaboration. Contributors are invited to port the original BASIC games into each of the 10 target languages, following specific guidelines outlined in the project’s README. This collective effort transforms what was once an isolated learning experience into a shared, dynamic, and educational journey. Imagine, as Atwood posits, a world where developers from across the globe are simultaneously "typing these programs in simultaneously together online," correcting errors and refining code collaboratively, a stark contrast to the solitary frustration of a typo in 1984.
Incentivizing Contribution: Supporting Future Coders
To further encourage participation and underscore the project’s educational and philanthropic dimensions, Atwood has established a unique incentive. By the end of 2022, for every functioning program submitted in each of the 10 specified languages, he pledged to donate $5 to Girls Who Code. This organization is dedicated to closing the gender gap in technology and inspiring girls to pursue computer science careers. This initiative aligns the historical preservation effort with a forward-looking commitment to fostering diversity and inclusion in the tech industry, adding a meaningful social impact to the technical endeavor.
The Enduring Impact: Preservation, Education, and Community
The "101 BASIC Computer Games" modernization project carries multifaceted implications for the computing community and beyond.

Safeguarding Digital Artifacts: Art and Code
Firstly, it is a vital act of historical preservation. These early mainframe and personal computer games are "precious artifacts of early computing." By translating them into modern, maintainable codebases, the project ensures their longevity and accessibility for future generations of historians, programmers, and enthusiasts. This includes preserving not just the code, but also the context and the original artistic elements, such as George Beker’s memorable illustrations, which are integral to the books’ charm and historical identity.
Educational Resonance: Learning Modern Practices from Classic Logic
Secondly, the project holds immense educational value. It offers a unique pedagogical bridge between the foundational logic of early computing and the structured methodologies of modern programming. Beginners can explore fundamental algorithms and game mechanics through simple, understandable examples, while experienced developers can hone their skills in new languages or contribute to an open-source project with clear, manageable tasks. The emphasis on subroutines and memory safety provides practical lessons in code organization, modularity, and robust development, showcasing how basic problem-solving principles can be applied with contemporary elegance.
Fostering Collaboration: The Open-Source Spirit

Thirdly, the initiative exemplifies the power of open-source collaboration. It provides a tangible opportunity for individuals to contribute to a meaningful project, learn from others, and be part of a global community. This collaborative model reflects the very essence of modern software development, where shared knowledge and collective effort drive innovation. It also serves as an excellent entry point for new contributors to open source, offering well-defined tasks and a supportive environment.
Looking Ahead: A Call to Action
Jeff Atwood’s call for community involvement extends to seeking project co-owners who can help organize and manage this large-scale undertaking. He encourages individuals who are passionate about the project to demonstrate their capabilities and join the leadership team, further decentralizing and strengthening the collaborative effort.
As a unique New Year’s resolution, the project invites programmers and enthusiasts worldwide to dedicate some time to contribute to "our project to update a classic programming book — one of the most influential books in computing history — for 2022 and beyond!" The ongoing discussion topic on the Coding Horror Discourse forum serves as a hub for questions and community engagement, ensuring that contributors have the resources and support they need.
In an era of rapid technological advancement, pausing to revisit and re-imagine the foundational elements of computing is not merely an exercise in nostalgia; it is a crucial act of preserving our digital heritage, inspiring future innovators, and demonstrating the timeless principles of programming through a lens of modern best practices. The "101 BASIC Computer Games" modernization project stands as a testament to the enduring power of classic code and the collaborative spirit of the global programming community.
