As a professional programmer, the languages I code in during the day are very much dependant on the particular project I am working on. Also as a programmer I have a very low threshold for repetitive or complex tasks - basically if I have to do something more than twice then I'll probably write a quick program to do it for me (sometimes taking longer than the repetitive task would have done, but I have a lot more fun along the way :-) ). These little programs are throwaway pieces of code. I'll probably never run them more than once - I'll almost certainly never come back to them and I'm certain that no-one else will see them.
I find it interesting what language people choose to write these little disposal programs with - I call it your "Pocket Knife Language". Currently I would usually use C#, despite that fact that I code all day in Java. I would normally use C# just because it is that much easier to access the bits of the operating system I normally run on (Windows) - but there are a huge number of libraries and methods in the .NET framework to do the heavy lifting for me. Jumping between C# and Java is pretty easy for my brain to cope with.
But It's not always been like this for me. I guess my first pocket knife language was probably Excel and then I quickly moved on to Visual Basic. I stayed with VB for a while. At the time I was earning a living writing mainframe code - anything that requires you to write a 30 line program (in JCL) to just compile and run your code is not suitable for inclusion in anyone's coding pocket knife :-) In my professional career I then moved into web development, it was around this time that Java started to appear on the scene and I moved into J2EE work and at some point, I'm not quite sure when, I started using Java as my pocket knife language. I went through a brief spell when I was doing a lot of front end web development that I dispensed with IDE's and compilers completely and JavaScript and the DOM actually became my pocket knife of first choice. However I quickly saw the light. Once I started working on .NET projects professionally it didn't take me long to move to C# as my pocket knife language and it has stuck there for a few years now despite moving back to Java on the professional front.
I was having a chat at the weekend with a friend of mine who is currently doing some very clever and complex work down at a pretty low level which requires him to be coding in C++ all day long - however I found it interesting that he was using Java as his pocket knife language. Other people I work with would use Perl or Python as theirs.
So, dear reader, what is your pocket knife language and why?







Last night I had the privilege of being invited to a party hosted by the good folks running the Visual Studio Industry Partner program that Teamprise is a member of. The venue was the perfect place to host a party for nerds - they hired out the Kennedy Space Center Visitor Center. I have wanted to visit the space center since I was a child so this was a great moment for me. They even allowed us in to the IMAX theater to watch the
This morning we had a power cut which killed a particular tricky upgrade mid-way through trashing the machine I was attempting it on. Luckily the machine in question was a VM Ware image and I had recent taken a backup snap-shot so I only lost a few hours work.
I've been having one of those days today. It's setup day at TechEd Developers and I'm down at the Teamprise Booth. Still not really ready as the pedestal that we've got turned out to be far too big and we're swapping it for a couple of smaller ones. Hopefully everything will be ok for 10.00 tomorrow when the exhibition floor opens to delegates.