Well in the Desert
The scientific method is bogus, functional programming is good, time is a flat circle, and desert is beautiful
There is a top-notch TV show called True Detective, the first season of which was phenomenal (except for the last episode, the last episode was bad). The screenwriter was a Nietzsche fan unlike me, and he liked to force his characters into philosophizing about life — the eternal recurrence, you know, time is a flat circle, what has happened will happen again and again and again, there is nothing new under the sun.
Let’s imagine that we don’t comprehend the concept of the flat circle properly and take it too seriously. Then time is a flat circle would mean that wherever you didn’t go, you would find yourself returning back to your beginnings, just like the alchemist, as if you have been following a hero’s journey in a circle.
I am no hero and not wishing to become one. Nevertheless, I somehow manage to return to where I come from without gaining any relevant information. For example, September began with functional programming and is going to end with functional programming, and the author hasn’t dumbed up even for a degree.
I am not feeling any nostalgia regarding the start of this essay production, and it might not be the last essay in chronological order. But I guess it makes sense now to take a look back at what has happened in order to reflect on and derive some conclusions. It’s going to be a long rant, as usual.
Since the pandemic kicked in I wrote at least 100K words, more than half of which was just wasteful babbling. Then there came a reason to write on Medium (participation grades ain’t no cheese), and I picked my first topic about Lisp and functional programming. What’s weird is that not only I chose the right thing to talk about, but I also managed to clench my teeth and do some fine research. All the essays since then were mostly meh, as everything must be done for its own sake, not with a goal in mind. Doing things with a goal in mind results in dreadful outcomes.
The essay on Lisp was my first introduction to functional programming languages, as I wasn’t aware of the existence of any other programming paradigm except for the bloody object-oriented. It formed my views about functional programming and programming as a whole, which was strange considering my lack of knack for programming. Several days after publishing the article I updated it with the following paragraph:
“You should learn Lisp sooner or later to become a well-rounded programmer, to have a “good upbringing”, but what is the use of having a good upbringing if you are dependent on learning what the market demands? The market doesn’t look for mastery, it looks for profit.”
Reading that should not be peculiar, considering my love-hate relationship with consumerism and Capitalism, and my obsession with the notion of mastery. But I am not writing all these to say “hey look, I have such a cool belief system, and you would do it wrong if you didn’t adopt it”. Don’t get me wrong, I want to say that too, especially after reading Joel Spolsky’s praise for functional programming, but there is also something more important to note down. That thing is rather abstract and explaining it will take from me a good deal of effort to not ridicule myself for writing this essay.
Let’s switch on the philosophy mode and talk a little about cause and effect, empiricism, rational thinking. I am not even going to address how many people are blindly believing in the correctness of the scientific method. I understand the reasons behind it, as a year ago, I’d mock everything I believe in right now; but it should be strange that the more I think about science and technology, the more my rational brain seems to reject all the fundamental ideas that I used to be certain about.
There is no way that my generation gets everything right — one only needs to question all the common rational beliefs that emerged in the past several hundred years, or to take a lesson from Einstein’s cosmic religion. It’s easy to do it when you realize that you cannot explain many things in life merely with the help of the scientific method. Rational thinking can prove the existence of particles, for example, but it cannot prove the existence of feelings — although we are sure that feelings exist and there can be no doubt about it.
Coming back to cause and effect — my point is that not every cause has a trackable effect. For example, you can trick yourself into believing that there is no use in learning the history of something, you may assume that it is ok to not know your ancestors, where they come from, who they are, just because you don’t see any visible potential effect of this new knowledge on your life. You cannot empirically extract any benefit from it. But that is out of the question whether studying your ancestors makes you more powerful or not; your feet simply get more grounded, you gain the feeling of power and confidence in your abilities, your mind becomes less lost and more oriented in life. It does not sound very logical or rational, it is abstract and meaningless, but if it seems to you as if there is something wrong with that, then you just simply got used to thinking too scientifically.
When you learn something, you will not necessarily see its impact on your life. What’s the benefit? you are going to ask, as there is no empirical benefit, nothing that you could track down. But those that seem meaningless, too spiritual, or even illogical may have fine consequences on your decisions. We can generalize this realization to many things, but as we should be talking about programming right now, let’s specifically concentrate on it.
When I say “you should learn Lisp sooner or later to become a well-rounded programmer” I have no idea what I am talking about. I am not sure if Lisp is really good, or even if I am going to learn it or not. But the more I study programming, its history, about different programming paradigms, concepts, the more opinions I take into account, the more I get a feeling that functional programming is the essence of computer science.
I don’t know why I came to this realization. It might be because “the time spent for the rose is what makes the rose valuable”, or because I want to feel unique by believing in something that I assume is not that conventional. Or because of something else — it doesn’t matter, I hope it doesn’t matter. Although one thing is certain: this realization will affect my future decisions.
As it’s usually a good idea to repeat the overarching theme of an essay over and over again until it becomes too convex to not fall out of attention, I will conclude this essay by making emphasis on repetition. If my point is slowly becoming clear then it is this: whenever you learn your craft and reach a point when you have to study meaningless things, such as learning the history (of programming), reading old scientific papers, studying legacy products, or something in this kind, do not fall into the naive assumption that there is no sense in doing what is meaningless. You cannot reason or understand what is irrational or track down its outcome, nor you can extract some visible benefit from it. But doing tasks of the tiniest matter can form your outlook about your craft in a way nothing else is capable of. Or as one wise man would like to say: “What makes the desert beautiful is that somewhere it hides a well.”
As I promised, it was a long rant. Let’s finish it off.