Any programming language can be divided into two parts: some set of fundamental operators that play the role of axioms, and the rest of the language, which could in principle be written in terms of these fundamental operators.
I think the fundamental operators are the most important factor in a language's long term survival. The rest you can change. It's like the rule that in buying a house you should consider location first of all. Everything else you can fix later, but you can't fix the location.
I think it's important not just that the axioms be well chosen, but that there be few of them. Mathematicians have always felt this way about axioms-- the fewer, the better-- and I think they're onto something.
- Paul Graham on The Hundred Year Language
after reading up on hoon, the programming language on the urbit os, i've gotten deeply interested in the concept of axiomatization. the idea that you can specifiy a few simple building blocks in a system as axioms from which powerful, more complex systems can be derived is an enticing one.
framing complex systems as depending on basic axioms brings clarity to those systems and subsequent paths in the development of said systems.