Kinda a big announcement
The other day I was talking to a young developer working on a code base with tons of COM code, and I told him that even before… Read more "Kinda a big announcement"

The other day, I was talking to a young developer working on a code base that was filled with tons of COM code. I told him that even before he was born, everyone knew that COM was already so deeply obsolete that it was impossible to find anyone who knew enough to work on it. And yet, they still had this old COM code base, and they still had one old programmer holding onto their job by being the only human left on the planet with a brain big enough to manually manage multithreaded objects.
COM, a technology that was once considered important, had become a relic of the past. It was something that people could understand long enough to pass an exam, but ultimately, it was mostly just a demonstration of how far human intelligence could be made to stretch under extreme duress. Gödel's Theorem, a concept from mathematical logic, seemed to mirror this situation. It was important, but ultimately, it was a testament to the limits of human understanding.
As I reflected on this, I remembered that programming changes slowly. Really slowly. Since I learned to code forty years ago, one thing that had mostly, mostly, changed about programming was that most developers no longer had to manage their own memory. Even getting that going had taken a long, long time. I took a few stupid years trying to be the CEO of a growing company during which I didn't have time to code, and when I came back to web programming, after a break of about 10 years, I found Node, React, and other goodies, which were, don't get me wrong, amazing? Really really great? But I also found that it took approximately the same amount of work to make a CRUD web app as it always had, and that there were some things (like handling a file upload, or centering) that were, shockingly, still just as randomly difficult as they were in VBScript twenty years ago. Where were the flying cars?
The biggest problem was that developers of programming tools loved to add things and hated to take things away. So things got harder and harder and more and more complex because there were more and more ways to do the same thing, each with its own pros and cons, and you had to choose the right one for your specific situation. This led to a situation where developers were constantly juggling multiple tools and frameworks, trying to find the best fit for their projects.
But there was a silver lining. As programming tools became more advanced, they also became more user-friendly. The focus on making development easier for developers meant that the tools were designed to minimize the cognitive load and make it possible for more people to contribute to projects. This shift was a testament to the fact that the things that made it easier on your brain were the things that mattered.
In the end, the young developer I spoke to was working on a code base that was a relic of the past, but he was also part of a generation that was building the future. The challenges he faced were different from those of his predecessors, but the core principles of programming remained the same. The key was to find the right balance between using the latest tools and frameworks and understanding the underlying principles that made programming possible.
As I left the conversation, I couldn't help but think about how far we had come as a field. We had moved from manually managing memory to using garbage collection, from writing our own multithreading code to using high-level abstractions, and from struggling with basic tasks to having powerful tools at our disposal. But despite all these advancements, the fundamental challenges of programming remained the same. The real test of a developer's skill was not just in knowing the latest tools and frameworks, but in understanding the underlying principles and being able to apply them in new and innovative ways.
In the end, the young developer's situation was a reminder of the fact that progress in programming was slow and incremental. It was a testament to the fact that the things that truly mattered in programming were the ones that made it easier for developers to think and create. And as we continued to build the future, it was up to us to ensure that we were not just adding more complexity to the world, but also simplifying it where we could.










