"Programmers should be tool builders. If you're not building tools to make your life easier, you're wasting time. That was really the point of Karl's talk. Although he was making the point in terms of open source projects, the concepts apply universally."
I think that Textmate is really popular for this reason. Its malleable, and on top of that its easy to build tools that help you program for Textmate. I use TextWrangler right now, because most of the tools I build use shell scripts, python and so forth. Its also the reason why out of the three operating systems, I am really comfortable with OS X and Linux, but not with Windows. Windows though has its own tools (batch, windows scripting), I'm just not comfortable using them yet. Cygwin is good, but it just doesn't seem natural. Now their is even more to learn on the Windows platform. Power Shell, Iron Python and so forth. I don't like limiting my choices in terms of platform. Use whatever it is that gets the job done.
I am thinking more and more on the lines of emacs, simply because its cross platform. It means though that I am going to have to learn elisp. I already have one customization that I make to emacs on a new install:
(setq scroll-step 1)
Here is a screencast on emacs.