- Java: If its big, and complicated I pull out multi purpose language. It runs anywhere, can create a sophisticated GUI, and has static typing. What more could you ask for ?
- Grails: Fast and full featured you can build quite a sophisticated web application. Lots of plug-ins save time and effort.
- Groovy: Do you need a sophisticated script, or to build a java class quickly, Groovy fits the bill. It simplifies many common programming tasks but still lets you leverage your java knowledge.
- Powershell: Do you need to talk to Microsoft applications like office, etc. and mange Windows machines? Powershell is your tool. Its a cross between shell scripting and .net programming. and you can access any .Net library too. (Powershell is available on most windows platforms.)
- C#: If nothing but a DLL will do you can do it with C#. Don't worry, if you know java programming in C# is an easy transition. (Visual Studio Express is free too!!)
- Lua: A fast scripting language that runs interpreted scripts almost as fast as C. Its great for stuff that needs to run in near real time. Available on most common platforms and can be ported to any platform that has an ANSI C compiler.
- PERL: Sometimes you need to deal with text files and nothing does it better than PERL.
One of the keys to building a programming toolbox of your own is to be pragmatic. I'm a big open Source/JVM fan, but I do a lot of work on windows as well, so Windows tools are are a part my toolbox.