Skip to main content

You Better Get It

Posted by editor on February 23, 2007 at 4:45 AM PST

Can you code without your favorite tools?

Kathy Sierra has a set of scenarios that might strike you as familiar:

It's lunchtime at the cafe and you give the cashier a $20 bill for an $8 purchase. She gives you $32.78 in change. You mention the mistake. She says, "But that's what the cash register says I owe you." She can't cope with the cognitive dissonance between reality and What The Machine Said. Later that day you get a frantic call from a co-worker--a recent addition to the programming team. "I keep getting this error message that it can't find the classes I'm using!" You ask, "By 'it' do you mean the compiler?" He answers "I don't know. I'm using an IDE." That night, you're helping your 12-year old son with his math homework when you realize--in horror--that while he's quite good with the calculator, he couldn't multiply two three-digit numbers using only paper and pencil if his Wii depended on it. These tools were designed to make us more efficient, so that we can focus on something more important than the tedious task of, say, giving change, organizing source code, and doing calculations. But are they helpful timesavers, or are we dumbing ourselves--and our users--down?

Kathy makes a call for tranparency, for tools to not hide what they're doing but rather make it more manageable. An IDE, for example, could offer an "understanding mode", which would allow the user to ask the tool what it's doing and why. She also calls on teachers to make students do things "the old-fashioned way" before introducing complexity-hiding tools, such as making developers write their first few apps with simple text editors and compiling on the command line instead of using IDE's.