Solving a Solved Problem
As anyone who has come anywhere close to what we call programming will tell you, there is an infamous quote:
Do not reinvent the wheel.
The reason I say it’s “infamous” is that many people since the 2020s have been actively rejecting this—particularly during the UI framework boom.
Something that I have been more interested in recently is pop philosophy. While I disagree with many of the pop philosophers of our time, I do find many of their works valuable. One example is the popularization of the inherent repetitiveness of the human condition. This, of course, is nothing new, as beautifully put in Ecclesiastes 1:9.
What we consider to be “new philosophy” is typically just an argument that people made thousands of years ago. Or, so it is commonly understood.
I personally disagree with that analysis based on a basic thought experiment against the possibility of an all-knowing being: If such a being knows all there is to know, then there is a new fact—that the being now knows all there is to know—which was not in the original set. In a more practical sense, even if someone possesses wisdom and propositions, the reality and conditions of the ever-changing outer world mean there is always more to know.
That said, I am still extremely sympathetic to the view that there is “nothing new under the sun,” and in many ways, we are just repeating ourselves. It is unclear what is actually new about a “new” item at McDonald’s, even though it is, technically, new.
I have been thinking about this more and more lately, as it seems a lot of the challenges in software are just solving problems that have already been solved. From ray tracing to parallelism; all the advancements in AI, only to make yet another CRUD app. There is a new version of macOS releasing every year, but the interactions have stayed largely the same since the 90s.
Yes, there are new things. But in many ways, it seems people are overwhelmingly trying to solve problems that someone else has already solved. For a relatively young field like computer science, this might seem quite surprising.
While I certainly felt bored by that for a while, I now want to offer a bit of my own analysis, aided by the knowledge these pop philosophers helped popularize. It doesn’t really make sense to separate “English philosophy,” “Continental philosophy,” or “Russian philosophy” because the underlying human conditions are all the same. These topics have been discussed not only by people from those places but throughout different eras. Yet, it still makes perfect sense to group them that way because the specific time and place in which those people came up with an idea provides the exact material required for those ideas to exist.
Software people might have been doing basically the same thing for a very long time. However, it seems to me that—similar to philosophy—nothing is quite the same. Even more similar to philosophy: the fact that someone has done it before is not a valid reason not to do it yourself.
People like to talk about “Not Invented Here Syndrome,” and it can be quite annoying at times. However, from a cynical perspective: those repeating tasks are exactly what hold companies together. Just like the stories we tell each other are what hold a culture together. It is a group activity that humans do—ironically using the things that everyone does to tell the “in-group” and “out-group” apart.
In many ways, even if AI does all the CRUD apps in the near future, people will probably still develop them. Just as people still use pens and pencils after the invention of the camera. These “silly” things don’t need to be better to be good.