For the longest time, and I can't even justify this, I was using regular Windows Notepad for my coding work. I had Bloodshed's Dev-C++ for my C and C++ work, and I liked it pretty well. It was certainly more affordable then Visual Studio, and to this day I recommend it to my students are are looking for a good and free C or C++ IDE.
But beyond the world of C programming I was using notepad for all my needs, although for a time my needs were small indeed. As time went on, I found myself in need of more and more features from my text editor, not the least of which were syntax highlighting. Brace matching is nice too. Of course, since I'm programming in so many different languages (C and Perl are most often, but MATLAB, some Python as I learn it, and a few other scripts here and there) I needed an editor that was more flexible. Some people will, inevitably, stop here to ask "why don't you just use VIM, or EMACS, or editor X"? The answer is that in the past i've never found extensive keyboard bindings to be particularly useful to me, nor particularly fast and efficient. Plus, I've spend a lot of time using notepad, and I really need something that's going to be a plain text editor that works the way I expect it to work. A few visual features are always nice, of course, but in the end I want it to do what I want.
I picked up Notepad2 because it promised to be a drop-in replacement for notepad, all I needed to do was switch around a few binaries and it would be like this new editor had always been there. I liked the editor a lot: it was simple and efficient, and met my needs almost completely. However, adding a new syntax to the editor required modification to the C source code and a recompilation of the executable. I am looking at getting into some Parrot development (I'm especially looking to implement an Octave dialect to run on Parrot) and so I needed an editor that could support PIR and PASM as well. But, since both of these "languages" are still in development and subject to change, I didn't want to go through the hassle of compiling and recompiling the executable every time a change needed to be made.
A few of my students had clued me in to another notepad-like text editor, Notepad++. Notepad++ is similar in many respects to Notepad2 (they both use the Scintilla editor component), although Notepad++ has more features. Among these features are the ability to add new scripts without needing to recompile, a tabbed interface, a multiple-document view, and a slew of add-ons and extensions.
I'm slowly migrating to Notepad++, but I'm currently in the strange position that I have Notepad, Notepad2, and Notepad++ and different files and actions appear to open different editors. It's just another project for me to work on eventually.