As you might be able to tell, I’m passionate about software design.
To say that learning how to program has been formative for me would be an understatement. If I had to forget every language I’ve ever learned except one, I would unlearn English and keep C++.
Like all languages, programming is organized into prose and poetry. There’s plenty of room on that spectrum for some opinionated organization of ideas. As stated by Gerald Jay Sussman: “Thus, programs must be written for people to read, and only incidentally for machines to execute.”
Unfortunately, just like spoken language, sometimes the words of others can offend us. We may disagree on phrasing, structure, or even just denounce the message itself.
I myself have some preferences when it comes to how I write code. These preferences are called programming paradigms. I myself am a fan of the functional programming paradigm and return-early / guard pattern. Maybe someday I can write articles discussing just these concepts at length.
Today however, we will perform a case study of a very unique, relatively unheard of paradigm.
One thing I will say before I begin is that they definitely did an excellent job of documenting, explaining, and justifying the individual philosophies that make up the paradigm. If nothing else, Elegant Objects might be the most well-documented programming paradigm ever published.
Let us dive into this documentation to learn more, shall we?
Firstly, some of these individual philosophies are definitely something I agree with strongly.