For me, I always think of software development is the dream factory. Software is so free of any rules, you can do whatever you want to do. It's like a blank sheet of paper. In 3D. Or as many dimensions as you chose to define, because you genuinely can choose how many dimensions you want.
In construction, if someone is building a house, they can't suddenly ask to add another storey. In software this isn't an unreasonable request. Artists are still limited by the materials they use.
When people write games they have to build or use a physics engine. Pause to think about that for a moment. Even the rules of physics don't apply!
Every piece of software is like a whole new world.
Real engineering is heavily restricted by physical limitations. If you are designing a frame, you're pretty sure you are going build it out of steel. Sure more exotic materials might be an option (carbon fibre, titanium, nanotubes etc), but most are too expensive to be viable. So you'll design it to be built out of steel, the same way an engineer 50 years ago might have done.
Engineering means designing and building from known patterns and materials. You'll use the same basic mechanisms, materials and machines. The configuration might change but the basic materials and patterns are the same.
Aren't there limits in software?Now software does have some real bounds. Compute, latency, bandwidth and storage are all limited. However in the age of cloud computing, only latency and bandwidth are truly limited. Even these limitations change rapidly, compared to other industries.
This is the industry that runs on Moore's Law, where computing performance roughly doubles every 2 years1. Imagine being an engineer, where the materials you work with doubled in strength every 2 years!
Most software is limited only by willingness to spend time or money creating it. The only real bounds are the ones you create yourself.
Welcome to the Dream Factory
This is why I call software the dream factory. It is truly the stuff of dreams, limited only by the skill and imagination of it's creators. Software itself does not impose any real bounds.
Welcome to the dream factory, enjoy your stay.
1 Moore's law is more a measure of the number of transistors on a chip doubles every 2 years, however performance is a rough approximation↩