Logically, programs stack like a baloney sandwich and assemble like the Avengers, right? One thing is for certain... and this I know for sure... no doubt in my mind...
Code is grown underground where it's damp and dark, because bugs like to live there and programmers smell like mushrooms.
So do I smell like mushrooms? Not anymore all thanks to my understanding of the Anthropic Principle. Don't feel bad if you don't know what that is. It sounds like a Star Trek episode. Believe it or not, it may be one of the deepest ideas there is. Something you'd look through a telescope to understand. Does this at all sound familiar?
In astrophysics and cosmology, the anthropic principle (from Greek anthropos, meaning "human") is the philosophical consideration that observations of the physical Universe must be compatible with the conscious and sapient life that observes it.
Catch that? A physical universe must be compatible with those who observe it. Ok I get the whole "we are here to observe so it must be compatible" tautology, but what does that have to do with software? Everything.
Software in the abstract is more like a universe than you might at first think. When we build these worlds, full of digital objects and structures, we define their properties and how they interact not just with each other but with the people intended to use the program environment. With each new device we progress toward the "always plugged in" society and our program environments become more interwoven with our experience of the world around us.
This means that we programmers and developers have to get out of our caves and work with everybody.
Focus on making human compatible projects where we consider feedback even from non-programmers. Scary. I know, right, but worth it.
In the old days we wrote utility programs intended to run in a command line, begging the Operating System for more resources. Now the simplest programs have sophisticated video and audio processing routines just to handle the User Interface; imagine beautiful 4K illusions cradled in 7.2 surround sound.
There are endless opportunities for programmers in the emerging High Definition Digital Multiverse we used to call the information superhighway. All you have to do is stay open to applying your considerable skills to projects that matter to other people and don't be afraid to tackle big problems. We are about to enter a whole new era of human civilization beyond current experience. The age of the smart phone is coming to an end and the age of omnipresent processing is on the horizon.
So do you see what software is now? It's what we build our dreams out of in the 21st century the way our great-grandparents' built our nation from iron and blood in their time. I have taken my ideas and thrown them into the fire. I hope you will join me in the crucible. As we forge the future together let the Anthropic Principle guide you, too.