HomeNews and blogs hub

Desert Island Hard Disks: Greg Wilson

Bookmark this page Bookmarked

Desert Island Hard Disks: Greg Wilson

Author(s)

Greg Wilson

Posted on 15 August 2014

Estimated read time: 4 min
Sections in this article
Share on blog/article:
Twitter LinkedIn

Desert Island Hard Disks: Greg Wilson

Posted by s.hettrick on 15 August 2014 - 10:00am

You find yourself stranded on a beautiful desert island. Fortunately, the island is equipped with the basics needed to sustain life: food, water, solar power, a computer and a network connection. Consummate professional that you are, you have brought the three software packages you need to continue your life and research. What software would you choose and - go on - what luxury item would you take to make life easier?

Today we hear from Greg Wilson, founder of Software Carpentry.   Like most people who have moved from programming to managing (and in my case, teaching), I feel nostalgic for the good old days when all I had to do was fix memory leaks in multi-threaded C++. So when I imagine being stranded on a desert island, my first thought is, I could use the time to learn how to program again! The reality is that programming has moved on in the decade since I last shipped a product, and I'd enjoy reacquainting myself with the craft I used to love.

The first software package I'd bring with me would therefore be the Glasgow Haskell Compiler (GHC). There are many newer functional programming languages, like Clojure, Scala and F#, but Haskell seems to have inherited the title of a tool for thinking about programming that for many years belonged to Scheme. Becoming a native speaker of Haskell would, I hope, force me to see all of programming with fresh eyes, and re-instill the sense of wonder I first felt when writing a small Pascal interpreter in Pascal more than thirty years ago.

The second tool I would bring would be Mercurial. After a lot of grumbling, I have finally come to accept that distributed version control systems actually are better than their older counterparts. This isn't actually because they support decentralisation—in practice, everyone still uses them in hub-and-spoke mode—but because lightweight branching is a better way to manage development than anything else we have.

So why Mercurial and not Git? Because the latter is one of the most user-hostile tools I've ever had to work with. Its syntax is baroque and inconsistent, and as others have documented, there's a wide gap between its conceptual model and how it actually works. As many people have said, Git is the price one pays in order to use GitHub. Mercurial has its weaknesses, but they're fewer and smaller, so given a free hand, I'd take it to the beach with me.

My final choice was surprisingly hard to make. I thought about Python, but if I brought that, I probably wouldn't force myself to learn Haskell. I also thought about Thunderbird (my preferred email client) so that I could stay in touch with friends, but I know what effect that would have on my productivity. In the end, I decided on LaTeX. It might make Git look clean and simple, but it's still the best tool I know for creating professional-quality manuscripts, and there are a few books I'd like to get out of the way...

For my luxury item, I'd probably bring a saxophone. We all spend too much time at our keyboards, and making music the old-fashioned way is a good way to remind myself that there's more to life than software.

Share on blog/article:
Twitter LinkedIn