'It tries to intelligently DWIM and does the right thing nearly all the
time, except when you really need it to, when it gets confused and does
exactly the worst possible thing'.
Intelligence (-> irregular, DWIM behaviour) is useful, especially in user
interfaces, but *you must be able to turn it off*.
Posted Apr 10, 2008 10:43 UTC (Thu) by NRArnot (subscriber, #3033)
[Link]
Or more honestly
"It tries to rather simplemindedly DWIM and does the right thing often enough to keep a dimwit
happy. Indeed, you, the dimwit programmer, will be very happy indeed, because no other
interface to the system is provided, and the hotshots who might wish to show you up will be no
more able to use it reliably than you are"
(Remind you of a certain proprietary operating system at all? )
What If I Don't Actually Like My Users?
Posted Apr 10, 2008 23:37 UTC (Thu) by nix (subscriber, #2304)
[Link]
It reminds me of entirely too much of my own code before I realised the
problems with it. (The other problematic thing: thoughtless information
hiding. Yes, reducing coupling is good, but if you have an internal
parameter affecting the behaviour of the system, *export it* somehow, if
need be by way of a separate wrapping shared library with different
interface guarantees, so you can change the implementation and eliminate
or change those parameters, breaking the interface of that wrapping
library, without breaking the interface of the 'real' library. Why? So
that testsuites, not necessarily just those you write, can peek at enough
of the library's internal state that they can guarantee that they've
exercised all its corners.)
What If I Don't Actually Like My Users?
Posted Apr 11, 2008 6:18 UTC (Fri) by nix (subscriber, #2304)
[Link]
Good grief. I'm sorry about perpetrating that horrific run-on sentence. It
just sort of... metastasized withot my realising it.