(mis)adventures in software development...

12 June 2014

How to turn a Windows box into a development machine

Category Programming

Things to install on a Windows machine to make it (sort of) suitable for development.

One of the problems with a new Windows machine (or a clean install of an old one), apart from the fact it is a Windows machine, is the time that will inevitably be spent looking at progress bars while the many, many pieces of software a Windows PC needs to be usable as a development machine (or anything else more productive than web browsing device) are downloaded and installed.

The following are the things I installed recently on a new Windows 8.1 machine to suitably geekify it for my coding purposes, in approximate order of geekiness — from least technical (things all Windows machine will probably need to have installed, like browsers, document viewers, etc) to the most technical (IDEs and development tools).

Given a choice, I generally prefer to do development work on a Linux box. But sometimes having a Windows machine handy is a necessary evil.

This was actually my first experience with the much maligned Windows 8 UI. But I will reserve judgment until I’ve have a chance to use it for a while. My initial reaction so far is pretty much what I expected — Metro on a desktop is somewhat clunky and horrible, but nowhere near as bad as it’s been made out to be.


Obvious first step is to avoid having anything to do with Internet Explorer.

So goodbye IE, hello Chrome and Firefox.

Document Viewers

Kindle for PC — for reading eBooks.

Adobe Reader for viewing PDF files — be sure to deselect any options for McAfee crapware.


You’re probably gonna want the desktop client from the Dropbox website, not the Metro app.


At this point I installed backup software and did an image of the hard drive, so that I’d have a clean and minimal image I could revert to if necessary.


I’m an Emacs kinda guy, so even on Windows some kind of Emacs is compulsory.

After trying other variations, I inevitably seem to go back to the standard GNU build.

This time, I looked around for alternatives, and came across ErgoEmacs. I hadn’t heard of this variant before, but it wasn’t the “ergonomics” aspect that interested me — it was the fact it comes packaged with Windows ports of many common Unix commands, along with other configuration niceties. So I thought I’d give it a go.


Despite having Emacs on my Windows machines, I also like to have a more typical Windows text editor available, for those times I might want to just view files.

I find Notepad++ fills this need nicely.


Despite being primarily a development machine, having an office suite installed can come in surprisingly handy, even if it’s just to view/manipulate CSV files in a spreadsheet.

Libre Office will usually do for those not wanting to go down the Microsoft Office route.


A machine without Python is just not a development machine, as far as I’m concerned. But I will save the gory details of my Windows Python setup for it’s own post.


Even if you have no intention of actually developing in Java at some point you’re likely to need at least the runtime, if not the whole SDK.

Be sure to opt out of any crapware options included in the installer.

Development Tools

So with the main preliminaries out of the way, it should now be safe to install actual development tools.

To each their own, but my Windows development needs at the moment revolve around a combination of Android and Qt.

For Android development there’s the choice of Android Studio or Eclipse with ADT.

These appears to work fine with Java SE Development Kit 7, even though Android is (currently) limited to the Java 6 API.

For any desktop UI work Qt is currently my preferred framework (usually via Python bindings). When I tried to install Qt Creator using the online installer., it got stuck while downloading files the first time round. But I ran it again and it worked. Go figure.


Finally, because all too often on Windows I want to do something that is just much easier/faster/better done on Linux, I installed VirtualBox, then created a Linux Mint virtual machine.