History Repeats Itself

There is a common saying, which is very cliche at this point, but still true:

Those who do not learn from history are doomed to repeat it

George Santayana

Programmers around the world embody this quote in their everyday lives. We mindlessly follow the collective thoughts of our group, bowing down to our technology overlords. Influential individuals tell us exactly how to feel, and we feel exactly how they want us to. Our opinions are a product of how long we’ve been stuck in this endless cycle. The great irony of this all is that freedom is only gained when we stop caring.

We’re all human 1, creatures of habit. We do things how we’ve done them in the past. When asked to justify our decisions, we say well that’s how we’ve always done it. Isn’t that a curious phrase? I could linger here, but I think it speaks for itself. Most of us don’t like change, we’ll resist it at any cost. We don’t just resist change, we fear it. Because change means we would have to adapt, we would have to evolve. Since it takes less effort to stay the same, we do that unless absolutely necessary.

It is then very peculiar that within programming, history repeats itself. We seem hell-bent on ruining all nice things we have. Hitpieces and over-the-top critiques come out so often that they lose all meaning. Dijkstra made history with Go To Statement Considered Harmful, and now every computer science student dreams of writing their own X Considered Harmful essay. And a lot of them do 2.

Oftentimes, these criticisms are so opinionated that they just end up hurting their cause. Other times, these articles are more over-the-top and dramatic than a high-school play (which is utterly humiliating for the author, and quite frankly a solemn blow to my heart). It’s also common for the author to be so self-obsessed that the entire article is practically a circle-jerk for anyone who agrees with them, and a death threat for anyone too stupid to not get the point (since I am far humbler an author, I would never engage in such practices). The bottom line is, these kinds of things are stupid and unhelpful.

These incoherent grumblings achieve nothing but fanning the flames. And since everyone is so stuck in their ways, we all argue for our own side, and refuse to acknowledge arguments from our “mortal enemies”. This culminates in endless bickering and a refusal to compromise3. Us programmers are in constant flamewars and have an undying dedication to our side. When someone says they don’t like our favorite tools, programming language, etc, we feel personally attacked. A difference of opinion is like a knife in the back. I’m 16 years old at the time of writing this, but we need to grow the fuck up.

Bikeshedding and debates are fine for a while, but neither will help us get anything done. And this is the crux of the problem. I said earlier that freedom is only gained when we stop caring. If you didn’t get it then, maybe you’ll get it now. The court of public opinion rules over all of us, but we can try to block out the noise. Until we learn to stop the cycle, history will keep repeating itself.


  1. Excluding GitHub copilot and our GPT overlords [return]
  2. Here’s a better critique of Considered Harmful essays: “Considered Harmful” Essays Considered Harmful [return]
  3. You heard it here first folks, adults acting like children. [return]