Larry Wall 1 once said that there were three virtues of programming:
- Laziness: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful and document what you wrote so you don’t have to answer so many questions about it.
- Impatience: The anger you feel when the computer is being lazy. This makes you write programs that don’t just react to your needs, but actually anticipate them. Or at least pretend to.
- Hubris: The quality that makes you write (and maintain) programs that other people won’t want to say bad things about.
I love these virtues. But I think that they are more than just three virtues of programming; I think they are the virtues of innovation.
Nobody needed the telegram. Sending letters could suffice. But writing letters takes effort and takes time. Nobody needed the telephone, but sending telegrams required planning and were cumbersome. Nobody needed a mobile phone, but having to be at a certain place to make a phone call was inconvenient. Nobody needed a smartphone, but it was more convenient than a dumb phone.
I don’t need a fan in the bathroom that knows once I’ve finished showering, left the room, and knows it should stay on until the moisture levels in the air dropped below a certain point and then turned itself off. But it would use less power, keep the bathroom dry and free me from the responsibility of remembering to return to the bathroom and switch off the fan 15 minutes later.
Slowly we make our way from increasing the usefulness of a technology (letter to telegram to telephone) to increasing the convenience (telephone to mobile phone to smartphone.)
I think the greatest thing about our “conveniences” are that once commoditised, they can greatly improve the lives of those in less developed countries. Think about the impact that cellphones have had. Now consider what automated “smart” appliances could do in a country where each household may have limited reserves of power because they don’t have a grid to draw power from, instead they have a battery, charged by a solar panel.
So don’t feel bad about not building something for the developing world, or about building something that other people think is superfluous, or about just making something more convenient.
Because more convenient, does change the world.