Recently a high school student told me he was advised to major in mechanical engineering rather than computer science because ‘computers are just a tool; you need to learn to do something with that tool.’ Interesting thought. Deserves a response. Maybe this is one of the reasons so few people are studying computer science, despite its intrinsic fascination and despite outstanding career prospects. Maybe people are so accustomed to computers that they take them for granted and don’t view them as objects of intellectual interest or world-changing potential any more. Maybe computers are now no more interesting than roads or motors or batteries—things that just work and you use them to do something more interesting. Oh wait. You mean there’s still interesting and important work to do on roads and motors and batteries? So isn’t it at least plausible that there is interesting and important work still to be done with computers?
I’ll grant that a computer is ‘just a tool’ in some sense. But the programmability of this tool makes a profound difference. By the way, this is why software is especially interesting and important, in my (biased) view.