As a number of you probably know, I'm always plotting new articles to write, and one is getting to the point where it's almost pen to paper time --- the tools that we use on projects. Use the right tool for the job, that's how it's supposed to be. The trick is, how do you know you've found the right tool, how do you know if there's something better if you get too settled down?

Now the obvious way (to me) to frame the article is move from what I use right now, figure out what needs they fill, why those needs are applicable to others, and what influenced me to select that one tool over all the others out there.

But depending on the project, the needs change. Depending on the user, the selection process is different. So, I put the question to you guys. What tools do you use to get your project work done. There are general themes to things, we need to work with text, or communicate, or hack an engine, etc. However, the way they are expressed differs from person to person.

I'm particularly interested in developers, since besides IDA, hex editors, and general purpose programming languages, I have no clue what the specifics are.

Hopefully, as I see more responses, I get a sense of whether the notion I have in my head that I'll write about is close, or wildly different. Either way, an article will be coming in a week or two probably.

An extra requirement when looking at scripts, when trying to figure out the opcodes, or at least digging out a preliminary, rough version of the script, is to be able to detect pieces of text.
Those are, most of the time, encoded using Shift-JIS, or more precisely, CP932.

An editor I'd recommend is Madedit, an open-source hex editor with East-Asian users in mind. It can interpret hex bytes using several encodings, and has been ported to a handful platforms, including Windows, Linux and FreeBSD, using the wxWidgets library.
Its weak point is the lack of byte-to-byte comparison, which is often used when recompiling scripts and repacking game archives.
For this purpose, I recommend commercial software 010 Editor, by sweetscape, which also has other nice features such as finding in files, searching for patterns with generic wildcards, and a binary structure highlighter language.

PHP is my prime language for pet projects, although Python has the great advantage to be able to turn .py source into binaries (.exe). I also find that Ruby has a sexy syntax, but I don't master it yet to be able to do interesting things.

C++:
Mostly same as above, but with more syntactic niceties such as RIAA memory buffers.
Visual C++ recommended for ASM compilation, if applicable. Also needed for heavier development, such as game engine hooking.