What Is the A++ Programming Language and Why Learn It?
A++ is an educational programming language built on the Lambda Calculus, created for one purpose: to help people interested in programming understand the essentials of the art of programming as quickly and efficiently as possible. It is deliberately minimal — the site describes it as a "hard-core" language made of elements that cannot be further split up, in contrast to mainstream languages that carry many convenient "soft" features. If your goal is to learn programming fundamentals rather than to ship production software, A++ is designed for exactly that; if you need libraries, tooling, and ecosystem support for real projects, it is not the right tool.
The core idea: essentials over features
The site's argument is direct: learning the art of programming is not accomplished by becoming familiar with all the handy soft features a language offers. Instead, it comes from learning how to cope with programming problems by continuously applying three operations from beginning to end:
- Abstraction
- Reference
- Synthesis
This combination is what the project calls ARS Based Programming. In A++, ARS Based Programming "becomes ultimately visible to a programmer" — the language is structured so those three operations are not hidden behind syntax conveniences.
Because A++ is based on the Lambda Calculus, its elements are irreducible. That is the pedagogical point: with fewer moving parts, the underlying patterns are easier to see.
What you actually gain from learning it
According to the project, students who learn A++ get two things at once:
- A deep comprehension of programming, acquired quickly.
- Pattern recognition skills that transfer to most other programming languages.
That second point is the practical payoff. The claim is not that you will write A++ professionally, but that the patterns you practice in it are applicable elsewhere.
Implementations
A++ has been implemented in several languages using ARS based programming techniques:
| Implementation language |
|---|
| Scheme |
| Java |
| C++ |
| C |
| Perl |
| Python |
The Perl and C implementations are presented in detail in the A++ book referenced on the site. The other implementations are covered in Programmierung pur (Undiluted Programming), published in 2003.
Where to read more
The language is documented in books, including:
- A++ – The Smallest Programming Language in the World — covers the language and its implementation. First published in Darmstadt, Germany in October 2004; the 2nd edition was published in April 2018 by tredition GmbH in Hamburg.
- A++ and the Lambda-Calculus
- A++ und systemnahe Programmiersprachen
- Von A++ nach ARS++
- Programmieren lernen mit A++ (German)
- A++ Die kleinste Programmiersprache der Welt (German)
The site also notes new books available as of July 2018.
How to decide
Choose A++ if you want a deliberately small language whose structure forces you to confront abstraction, reference, and synthesis directly, and you are willing to learn from books rather than a large online ecosystem. Look elsewhere if you need a language for building applications, since A++ is positioned as an educational language, not a general-purpose production tool.