Sunday, January 24, 2010

A followup on using Windows 7 for Ruby and Java development

I wrote 2 weeks ago about adapting to using my new Windows 7 laptop (inexpensive, well constructed, and 4 cores). This is a followup with some miscellaneous advice.

I was having some problems writing with Latex so I re-installed MikTex doing a complete installation (well over 1 gig). My Latex problems are solved with some brute force. Still, when I know that I will be mostly writing, I still boot my MacBook to use TexShop, etc.

With a much faster laptop (4 cores!), I am very much enjoying using the new IntelliJ 9 for Java, Scala, and Clojure development. I am currently writing code that wraps the Sesame RDF data store, my own geolocation code, and Lucene. (I am writing a book on the AllegroGraph product and I want all of the examples to also run using my wrapper for Sesame, my geolocation stuff, and Lucene.) I am also writing idiomatic wrappers (to my wrapper) in Clojure and Scala and it is great to have everything in one large IntelliJ project.

I continue to rely on E TextEditor (a Windows TextMate clone) for most Ruby development and miscellaneous text editing - highly recommended.

I find that once I get things set up on my Windows 7 laptop, then I have an enjoyable developers experience. However, setting it up has been a terrific pain in some cases, for example: installing PostgreSQL and PostGIS was a real nuisance.

I found the text in the Command Prompt windows where I run bash shells to be a little difficult to read so I increased the default window size, switched to a larger font size, switched the default font to Lucinda Console, and reduced the contrast by making the background a very light blue (almost white) and the text a medium blue.

I also find it useful to remap the CAPS LOC key to act as a third control key - this reduces strain on my left hand when hitting control characters on the left side of the keyboard while using Emacs and other software that makes good use of the control key. This saves wear and tear on the tendons because I don't have to twist my left hand or to use the control key on the right side of the keyboard.

On dual booting Ubuntu: as I mentioned a few weeks ago, I have both a bootable Ubuntu installation and a separate one that runs inside of Windows using VirtuaBox. I am just about ready to figure out how to remove grub and reclaim the separate partition. It is very convenient using VirtualBox so I think I am going to just use it when Linux is best for a work task.

One big advantage of using Windows is the utilities TortoiseSvn and TortoiseGit. Highly recommended to integrate svn and git support into the file explorer.

One huge disadvantage of Windows is that most new computers do not come with Windows install disks. This is awful - shameful behavior, really, on both Microsoft's and computer manufacturers' parts. This is simply lack of trust in their customers. I have burned a few "bootable repair/recover" disks and I am using the built in system backup software (backs up to an external disk), but I won't know if this works until I need it.

The bottom line is: when I am working in a bash shell, SSH'ing to remote servers, or using a heavy weight IDE like IntelliJ then I find Windows 7 to be equally pleasurable for development use as OS X or Linux. For some things, I still like my MacBook. I paid $800 for my new Toshiba laptop and a comparable MacBook Pro for my work flow would have been about $2000. I am not yet sure if the price savings has been worth it because of the time required to set up my new laptop. One advantage though is the flexibility of also having a Windows box handy for testing, etc.

2 comments:

grant rettke said...

Windows + Cygwin on a blazing computer is the new secret-good-thing.

A few weeks ago I went back to using a Windows XP box with 2GB or ram, and installed Cygwin so that Emacs would be a bit happier and help me work remotely more easily. It has just been an excellent experience. It is the perfect combination.

Kevin Brubeck Unhammer said...

Hehe, this reminds me so much of when I got a MacBook, after having used Ubuntu for some time. My thoughts were:

"I find that once I get things set up on my Mac laptop, then I have an enjoyable developers experience. However, setting it up has been a terrific pain in some cases"

:-)

(Nowadays I just don't have the time to mess about with all those installation gripes, so I guess I'll go with Linux for my next laptop.)