…Our languages are changing from the static to the dynamic. I can remember when a program was developed as a single, self-contained and monolithic piece of code.
The advent of dynamic libraries allowed us to defer some of the functioning of a program until runtime, but the idea of a program as a single, known entity for which we had detailed knowledge and which didn’t change over the life of the program is still with us.
…the dynamic nature of the Java environment is basic to the functionality of the language, and it allows us to deploy systems that can be changed, upgraded and evolved over time as the requirements of the system change.
…we need to spend more time dealing with faults and exceptions, and less time adding features, which changes the nature of what we do.
…Using the network means we have introduced new ways in which our systems can fail, but it also means we can build redundancy into the system so that the failure of a single piece of hardware need not cause the failure of the overall system, making the whole system more reliable.
…Just as Socrates found that he was the wisest of men because he knew that he didn’t know anything (as opposed to others, who thought they knew something but were wrong), programmers must come to the realization that their knowledge of systems will be more and more Socratic.
Rather than knowing everything, we will know what it is that we do not know.
I really like this article by by Jim Waldo. Food for thought. Not that I don’t already preach this at work.
Karl, if you like the Zen programming article so much, how come you didn’t give us the attribution along with the long quote?
better? 🙂