Programming Never Gets Easier
Another comment on E.W.Dijkstra Archive: The Humble Programmer (EWD 340)
Dijkstra, in the essay, felt that at the current moment in time (1972) the programmer was limited by the tools. That their thought processes were limited by poor languages and poor environment. However, he expressed great hope that this was transitory. Our tools would improve but he warns:
As an aside I would like to insert a warning to those who identify the difficulty of the programming task with the struggle against the inadequacies of our current tools, because they might conclude that, once our tools will be much more adequate, programming will no longer be a problem. Programming will remain very difficult, because once we have freed ourselves from the circumstantial cumbersomeness, we will find ourselves free to tackle the problems that are now well beyond our programming capacity.
I believe he was right. Some might argue are tools have not improved and that is why programming is not better. Indeed they may say it is worse than ever. But, I think our tools have improved. They don't always improve linearly but they are improving in fits and starts, with steps forwards and steps back. No matter how much our tools may have improved the state of programming as a practice has barely advanced at all! We still struggle against our own inadequacies, our own failings. Even when the algorithms are clear, the problem well studied, the programmer rarely gets it right the first time. Programming doesn't get easier as the tools get better. Rather the scope of our ambition climbs. As it climbs the problems get harder and the tried and true solution of yesteryear seems quaint to the practicing programmer of today.
So, we cannot rest on our laurels. We must strive on and construct new tools which ease our current pains, even if inevitably new pains arise. For, in learning, there is suffering.