by Blagovesta Pirelli
We have seen many types of programming being advocated.
Dijskstra titled his Turing Award Lecture “The Humble Programmer”. These were his words when he was receiving the award in 1972.
Why would a man of such great brain power say anything about being humble? Who of all programmers has the right to be arrogant about his achievements rather than one of the founders of our field? The message of the value of being humble comes from the stand of the highest recognition in the field of computer science.
So why do we need to consider being humble programmers?
Just for the last decade we have seen the cloud transforming industries, the fall of giants, the burst of bubbles and the crash of widespread insanity. Predictions are void, deprived of meaning. Our knowledge is bounded, and only the ignorant is confident in the future.
Even Dijsktra was wrong in his humble talk. Bug-free software in some 10 years. Unfortunately, it didn’t happen. Bugs are not what they were before. We don’t see hardware failures that often, and for sure it’s most of the time easier to compile code these days but to get rid of bugs, we need to get rid of people. We are not perfect, our brains cannot deal with the complexity of the programs we write. We need to accept our limitations and be aware that the unknown is more than what we believe it is.
When was the last time technology was invented with no application? We have a gadget that tell us where to go eat, what the weather forecast is, and to connect us with our social circles. And why do we use all of this? To browse cute <preferred_animal> pictures and to serve us in our lives.
Let’s remember the time we had to mail physically our letters. The reliability of the service - well, not so great. Time guarantee - sure, at some point it will arrive. Costs - you’d better have a good reason to be writing. Now, in a few clicks you can send me a message to tell me “I’m reading this. Here are my thoughts”.
Technology may come in fashion because it’s cool. But it stays because it’s useful. Of course, if we look into evolutionary theory, we can argue that what doesn’t hurt, doesn’t get churned out. But how often is it the case? With so many new technologies around, we have only that much time and attention. So we use what helps us the most, and ignore the rest.
How did we get here? By small and not so small constant contributions of humongous amount of people before us. Before any disruption happened, many small increments of progress accrued. All happened gradually until it accumulated and morphed into the software we are using, the hardware we are using, the processes we are using. People in the past imagined a future of some sort. They (we) wanted to have better something. And this innate pursuit of a better way to exist is purely human. We want to create. We want to be useful to others. We want to help. It is an optimistic view of the world but how often have you seen a developer who wants to do nothing?
Appreciate the aftermath of the combined force of so many people with a mentality of creators. We want to leave a mark (a bit egotistically). A small and maybe not so significant on a large scale but still ours. And by iterating and combining the effort of the triads of small marks, we have come to the point to see a masterpiece as created by the human kind.
Being able to create worlds out of our words is a great power. With a hit of a button, we can bring a system live and transform the lives of the people who are using it by transforming the programmatic word-y description into a useful tool. We need to be aware of this power; and use it wisely. How beautiful is it that we can direct our efforts into domains that improve and lay the foundation for the next contribution?
We build not only the world of today. We build the world of tomorrow.