KISS my ?
By dannycoward on Feb 06, 2006
Have you paid your credit card ? Is there dirty laundry at home ? Owe your friends an invitation to dinner ? Have you called your mom lately ? Been to the dentist ?
I was thinking about the concept of simplicity this morning for some reason. And I was getting cross about an expression I've heard a lot in software design: Keep it Simple, Stupid (KISS). Life in general, and software design in particular, can be filled with such an intensity of background chatter, it can take a real amount of energy and discipline to disconnect from that and focus at what is important in the moment. Which is usually something quite complex enough, thankyouverymuch.
So don't get me wrong, I'm simplicity's Number One fan.
Take one of the small changes among the myraid for Tiger: JFrame.add(myComponent) now finally (thankyou) does what we all assumed it already did. Until we tried it. Pre-Tiger, its smiles prettily at you as you use it, then scolds you with a runtime exception at the last possible moment.
Use JFrame.getContentPane().add(myComponent) , STUPID ! Press 0 to blush, 2 to feel inadequate, and 3 to dimly remember an unpleasant childhood memory. GOODBYE
Who has ever used Swing without falling into that trap at least once ?
Learning the new API was not difficult. I never found it particularly difficult to remember either (focus on the word particularly...). But the additional complexity of needing to know, when one least needs to be bothered with it, that JFrames have an object structure that I shouldn't need to care about, created for me an internal narrative that required yet more energy to quieten.
Why did they make it like that ? And what is a glass pane for anyways ? Why don't they fix that ? Remember that GUI you were writing when you first fell into the trap ? What was I supposed to be doing ?
But as most of us that have ever created anything for someone else to use know, making that thing simple is time consuming and requires tradeoffs, difficult decisions and probably several attempts. My old boss used to say that one of the hardest things to do in design is to make something complicated simple (maybe because he managed an industrial strength product that will sell you a ringtone for your cell phone).
So don't give me KISS. I love simplicity, I \*heart\* simplicity, but please don't call me stupid !