Gustavo Duarte wrote a neat entry on the simple joys of writing software. As a software engineering bachelor, I couldn’t agree more with his sentiments. There is something about designing a system, sometimes with a fair amount of complexity, and seeing it come to life and perform as designed after much blood, sweat and debugging.
But beyond the act of creating software, Gustavo goes further by giving several examples of how software has had and continues to have a huge impact in a large number of other industries and disciplines, from medicine to engineering and business. That, of course, is because software is part of the computer revolution, which I prefer to call the “information sharing and processing” revolution.
Indeed, modern telecommunications (the ability to send large amounts of information most anywhere on the globe at very high speeds) and computers coupled with software (the ability to process received information and send the result of that processing to others) is perhaps the greatest achievement of humankind, if our metric is based on the impact something has had on civilization. It really gives one pause to realize none of that existed only a hundred years ago.
There is perhaps one more thought of interest concerning where software design is heading: ubiquity. Indeed, it’s reasonable to assume humanity will continue to computerize systems over the course of the next several hundred years. It then becomes obvious that knowing how to write software will be as basic of a tool as knowing how to read and write. Much like today, there will be professional software writers, those people who have studied the methods and techniques of software engineering and perform such acts for a living, and there will be the rest of the population with various degrees of proficiency. But everyone will at least be able to write software; that much is a certainty to me.