Have you noticed how seldom people put the modifier “computer” in front of “programming” nowadays?
This may be because our formerly esoteric discipline is now so mainstream that it needs no elaboration.
It may be that we’re all growing lazy.
But I think there’s something deeper.
“Software Engineering” isn’t good enough
The set of things besides traditional computers that need to be programmed is growing by leaps and bounds: TV remotes, holiday light displays, e-readers, smartphones and tablets, Arduino boards, fuel injectors, point-of-sale terminals, MRI machines, 3D printers, LEGO MindStorm robots, networks (software-defined networking / SDN), storage (software-defined storage / SDS), nanobots, social networks, clouds…
“Right,” I hear you say. “That’s why I like the term software engineering. Wherever you see programming, it’s software that’s in play. And engineering implies a more sophisticated approach than mere hackish programming.”
I think that’s true, but it misses the really big insight. Continue reading