May 30, 2007

One person's leak is another person's fountain

Back in March the 37signals folks posted Auto-mode vs. shooting manual. (Yes, this has been sitting in my todo box for a while.) I have tons of respect for them and am jubilant about the focus they've brought onto simplicity in frameworks. But saying you don't use an IDE because it gets you 'closer' to the code and being the driving force behind massive abstractions like Rails and Active Record doesn't quite work for me.

I'm not going to fall back on the "right tool for the job" crap (I hate that). A few years ago I posted about not liking IDEs. I admit to some snobbery, looking down on those pussies who needed intellisense to get their job done.

But after posting that I got an email from someone telling me to take a look at something besides Netbeans, that there could be much, much more to IDEs than Intellisense and looking pretty. (And there must be another dime dropping into Microsoft's coffers every time someone justifies IDEs with Intellisense.) So I tried out IntelliJ -- and never looked back.

When coding Perl full-time I wished every day I had IDEA. The things it lets me do with the code allow me to push decisions until I absolutely need to make them: let's test out with this for a while, nope, that didn't work -- pull that method out of that class into this one and extract an interface that everybody will use from now on, then delegate the implementations to something else. Or even as simple as naming -- I don't have to think of the absolutely perfect name the first time I create something, because I know I'll think of a better one later, and that I can with certainty change it everywhere in my codebase, and that the IDE will rename variables and arguments for me so I don't have the cognitive dissonance of types mismatching names later.

Are some of these things easy? You bet. But I don't have to think about them, just like anyone using a modern editor doesn't have to wonder if copy and paste will work. And when more and more actions become easier, even second nature, then the wonderful state of flow is always near, always waiting.

It's not the be-all, but it ain't nothing, either.

Next: I can subscribe to delicious, thanks
Previous: New use for MS speech recognition