Atomic War in the era of the Great Combinator

Dostoevsky gave the world the Grand Inquisitor with his "why did you come to interfere with us?"
Ilf and Petrov - the Great Combinator.
That era has already ended, this has not yet begun.

Everywhere the same thing: any phenomenon can continue to be divided ... no, not to infinity, but to “atoms”, which received such a name because, literally translated, they are “indivisible”. This is not only about programming: for example, the music of both Beethoven and Shnurov is decomposed into only seven main notes and five more nameless notes; Chekhov's seemingly unfinished essays, Tolstoy’s verbose novels, the mean and gloomy postulates of Euclid are laid out in not so many letters. And so literally in everything.

Not for nothing in the Russian language the word "complex" is an abbreviated "folded": because complex ("non-atomic") phenomena are composed of simple atomic ones. Moreover, they take shape according to quite definite laws - whether known or not, but existing objectively. Even chaos is statistically distinguishable from other chaos, and in this sense there is a kind of order. The epoch-making conclusion follows from this:
The act of cognition is twofold: this is 1) a non-stop search for atoms, primitives, primary elements from which you can collect something, and 2) an equally diligent search for laws that determine what exactly and with what exactly, and how exactly it connects.
Programming is an act of cognition. At the very least, the tasks to be solved. In fact, a good programmer is not only looking for a solution to a specific problem, but (perhaps unconsciously; more often, consciously) also longs for a liberating generalization - " in everything he wants to get to the core ", to the system-forming principles, to formulate them as clearly and succinctly, and carry this fire further, and ignite others with it.
Therefore, a paradigm war - such as OOP vs FP or fascism vs communism - is always an atomic war in the sense that this battle is fought primarily for atoms, at the atomic level and by atoms, and not for more complex - derivative from atoms - constructions and certainly not by them.
At the same time, from the point of view of practice, atoms themselves are useless. Why a palette of saturated colors, if there is no artist who can paint a bewitching picture? Do you hear the ringing silence around? This world froze in anticipation of a new Great Combinator - the one who will submit to the complexity of digital systems of the XXII century!

My career as a programmer began with the ideas that laid the foundation for object orientation in its current - time-mutilated and business value - form: as atoms, I was promised classes that encapsulate the state and expose only what is allowed; and polymorphism and inheritance gave me out as rules by which I can steadily increase complexity. At first I believed, but the inescapable feeling, they say, “the matrix is ​​not in order” intensified, and I decided to go swimming openly. Soon, wandering here and there, accidentally stumbled upon an open continent long before me, called "functional programming." Now my function has become a primitive whose signature whispers its own special history. I have (almost) no state, in general, I have nothing to hide, and therefore the problem of encapsulation does not bother me.As combinators, I have been offered the composition operators of the same name — obvious, simple, and incredibly powerful. But that sensation for some reason does not go away ...

Here it is - my Atomic Third World:
IT as a profession, as a matter of life is still prohibitively young: it took medicine two hundred years to approve the most basic rules of hygiene and medical discipline.
We are now experiencing something similar: we dissect corpses that have fallen in bloody battles with excessive complexity, and blindly feel for the seventh proof of God; easy to superstition and fanaticism, heal ailments with spells, rites and copy-paste. Penicillins have not yet been invented. In this difficult time, we urgently need a debate about complexity - in the spirit of the Socratic dialectic, we must ask ourselves leading questions and, in an attempt to answer, deliberately address the root causes. These fruitful soul-saving conversations are so lacking that sometimes at the next pointless design meeting for yet another one system with poorly defined responsibilities and invariants of behavior it becomes stuffy and again involuntarily recall Fedor Mikhailovich: “first of all, air needs”.

All Articles