Jas: AI-Paired Engineering as a Revival of N-Version Programming
This paper presents a case study demonstrating that AI-paired engineering, when anchored by a precise executable specification and validated through parallel N-version implementations, enables a single developer to produce five distinct software ports in approximately 120 hours, effectively reviving the cost-prohibitive N-version programming methodology of the 1980s.
Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer
Imagine you want to build five different versions of a complex, high-end drawing app (like a mini-Adobe Illustrator). In the old days, this would be like hiring five different master architects, each speaking a different language, to design the same house. It would take years and cost a fortune.
Jason Hickey, a single developer, did something different. He built five working versions of this app (for Rust, Swift, OCaml, Python, and a web browser) in just seven weeks, working only in the evenings. He didn't hire a team; he used AI as his partner.
Here is how he did it, explained simply:
1. The "Master Blueprint" (The Executable Specification)
Usually, when you build software for different platforms, you have to write the rules for the app from scratch five times. If you want to change how a color picker works, you have to update it in five different codebases.
Hickey did the opposite. He wrote one single "Master Blueprint" (a 23,000-line document written in a language called YAML).
- The Analogy: Think of this blueprint not as a static PDF, but as a living recipe. It doesn't just say "make a red button"; it says, "Here is exactly how the button looks, how it reacts when you click it, and what happens next."
- The Magic: This blueprint is "executable." The computer reads this one recipe and automatically builds the user interface for all five different apps. If Hickey wants to change a rule, he changes it in one place, and it instantly updates all five apps.
2. The "Five-Headed Dragon" (N-Version Programming)
In the 1980s, engineers tried a method called "N-Version Programming." The idea was: "If we build five different versions of a system independently, and they all agree, it must be right. If they disagree, we know something is wrong."
- The Problem: It was too expensive. Building five different teams to write five different versions of the same code was a waste of money.
- The AI Twist: Hickey revived this idea using AI. Because AI can do the heavy lifting of writing the code for the different languages, he could afford to build five versions as a single person.
- The Safety Net: These five versions act like a five-person jury. If the "Rust" version of the app makes a color turn red, but the "Python" version makes it blue, the system immediately flags a problem. They "differential test" each other. If they disagree, it means the Master Blueprint was unclear, or one of the versions made a mistake.
3. The "Escape Hatch"
The Master Blueprint covers about 90% of the work. But sometimes, a specific computer platform (like an iPhone or a web browser) needs a special trick that the general blueprint can't describe.
- The Analogy: Imagine the blueprint is a standard house plan. But the "Rust" house needs a special reinforced basement because the ground is rocky. The blueprint handles the walls and roof for everyone, but the "Rust" team has to build their own special basement.
- Hickey calls this the Escape Hatch. It's the small amount of custom code needed for each specific platform, while the rest is shared.
4. How the Process Worked (The Loop)
Hickey didn't just type code and hope. He used a specific loop:
- Design: He wrote a plan in plain English.
- AI Review: He asked the AI to find holes in the plan ("What's missing? What's confusing?").
- Blueprint Update: He updated the Master Blueprint based on the AI's advice.
- Build & Test: The AI generated the code for all five apps.
- The "Human Eye" Check: This was the slowest part. Hickey manually looked at all five apps side-by-side. If one looked weird, he knew the Blueprint needed fixing.
The Result
- Time: ~120 hours of evening work (about 7 weeks).
- Output: Five fully functional apps sharing one core logic.
- Cost: Instead of "multiple developer-years," it took a single person a few months.
The Catch (Limitations)
The paper is honest about what this doesn't do:
- It's not a finished product: The apps are missing some advanced features found in professional tools (like complex 3D meshes or professional printing features). It's a "substantial subset," not a perfect clone.
- It relies on the AI: If the AI gets confused or "hallucinates" (makes up fake code), the system catches it because the five versions will disagree. But if the AI is bad at a specific task, the whole thing slows down.
- It needs a human: The AI did the typing, but a human had to check the results, fix the logic, and manage the "memory" of the project so the AI didn't forget what it decided yesterday.
The Big Takeaway
This paper argues that AI has changed the economics of software engineering.
Previously, building multiple versions of software to ensure quality was too expensive. Now, with AI handling the repetitive coding, a single developer can build a "jury" of five apps to check each other's work. It turns a method that was abandoned in the 1980s due to cost into a practical tool for one person today.
Drowning in papers in your field?
Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.