Sunday, October 28, 2007

software and taps

What software and taps have in common is the public interface: APIs vs knobs.

In case of software, you expect that the API will work as documented and without side effects. Sometimes the paradigms used in the API are so common that they simply need no documentation or one does not have to read it before using the API. This is the case of the setter/getter paradigm in Java Beans or the basic REST methods.

I agree that in case of taps there is no documentation to read, nor that I'd read it before taking the first shower in the new flat. I simply expect them to work as ... expected.

Now, in the flat I am staying in UK, here is how the "undocumented public interface of the taps" works (the arrows show how to turn the taps on):


Every now and then when I try to adjust the water temperature, the water becomes too hot and burns my skin. The same thing happens to me when I use bad APIs.

1 comment:

John Torjo said...

That was deep man :) But soooo true...