After having Windows XP crash on me in an infinite loop of blue screens last week (I was running it with unsupported and outdated drivers, so I guess I had it coming), I had to spend the weekend installing Windows Vista and reinstalling all my basic software for everyday use. In order to remember what I actually did, and hopefully make the process easier the next time around, I wrote down a list of my Windows essential developer tools (not including plug-ins, drivers and other hardware-specific stuff):

  • Mozilla Firefox. This is usually the first thing I install after getting the network up and running. Not much to say here. It’s just something to get out of the way so I can move on with the rest of the installations.

  • JungleDisk. This is the second thing to be installed, mainly because that’s where I keep my backups and shared files. JungleDisk provides convenient access to files stored on Amazon Simple Storage Service (Amazon S3) via a mapped network drive.

  • WinRAR and DAEMON Tools (Lite). The easiest and simplest way to deal with compressed files and CD/DVD image files. WinRAR can handle pretty much any (useful) compressed file format out there and DAEMON Tools allows you to mount CD and DVD image files on a virtual drive. Together they can save you a lot of time, bandwidth and plastic discs.

  • Cygwin. I use this as my default shell environment and for running Bash, Python, Perl and Ruby scripts. If you do cross-platform development or want the power of the Unix/Linux shell, scripts and utilities on Windows, this is the way to go.

  • Komodo Edit. This happens to be my current favorite text editor for text, HTML and XML files as well as Python, Perl and Ruby scrips. It’s a bit heavy to start, but once it’s up and running I just keep it open.

  • TortoiseSVN and TortoiseCVS. I use these to access various Subversion and CVS repositories. The tortoise shell extensions make version control as easy as any other file operation in Windows Explorer. I prefer these over integrated revision control in other programs, because they give me better control and allow me to manipulate the repositories independently of any specific development environments. This is particularly useful when working on projects with multiple implementation languages or different development environments.

  • Python, Perl and Ruby. I usually run the Cygwin version of these, so they can be installed together with Cygwin, but since I tend to forget them the first time around, I put them here as a separate item.

  • LyX. This is a great software package for writing documentation and working with structured text documents in general. In their own words: “LyX combines the power and flexibility of TeX/LaTeX with the ease of use of a graphical interface.” The default Windows installer automatically downloads and installs MikTex, making it possible to work manually with TeX/LaTeX documents outside of LyX. I used to edit .tex files manually and process them on the command line, but after discovering LyX I rarely bother with that anymore.

  • Adobe Acrobat Reader and PDFCreator. These I use to read and generate PDF files. For those of you who don’t know PDFCreator, it’s a very useful printer driver that allows you to print your output to a PDF file from any Windows program. It’s a valuable tool for debugging printing or when you want to distribute or archive something electronically.

  • OpenOffice.org. I prefer this to Microsoft Office because it’s open source and the difference in functionality is hardly ever important to me. I mostly use it to read Word and Excel documents that other people send me, and for this it works very well. Sometimes I also use it to edit existing Word and Excel documents or export documents for others.

  • Eclipse and the latest JDK. Much can be said about Java IDEs, but I’m not going to. I simply use Eclipse because I like it and it works well for me (most of the time).

  • Microsoft Visual Studio and the latest Windows SDK. If you develop Windows software in C, C++, C# or Visual Basic, you know why you need this. If you don’t, you probably don’t need it either (although the text/code editor is really nice). Note that if you don’t require the added functionality of the complete versions of Visual Studio, you can download and use the Visual Studio Express Editions for free.

  • Skype and Windows Live Messenger. You may not think these are essential for a developer, but when working with distributed development teams, they actually are (at least to me).

It’s interesting to see that with the exception of JungleDisk, all programs on the list are either open source or free to download and use.