Development on Windows

Last weekend CircleCI hosted ClojureBridge and I volunteered as a TA. It was a super rewarding experience and I hope to be more involved in these types of events in the future. One thing I noticed (and I have noticed a similar trend in my previous experience as a mentor at various hackathons) is that many students and junior developers run windows.

Trying to run and develop Node, PHP, Rails, and even some Python apps on windows can be a pretty painful experience. Most developers who write in these languages use either Linux or OS X, and nearly all production applications written in these languages are running on a Linux server. In addition a lot of documentation assumes that you are running either Linux or OS X for many libraries and sample projects.

Most commonly Windows users will be encouraged to use a VM with VirtualBox and Vagrant. This is not bad advice and for most folks will probably be the best solution while you are learning. Vagrant is certainly worth learning, and I cannot stress how important it is to have a solid understanding of Linux.

However, I am stubborn enough to try to get things to work on Windows and after last weekend I consider myself a self proclaimed Clojure on Windows expert.

Common Gotchas

  1. The Windows PATH is very different from Linux or OS X.
  2. Remember that file paths in Windows use “\” while in Linux and OS X they use “/”
  3. CMD, vs PowerShell, vs Git Bash, vs Bash For Windows. Common theme is differences in the PATH. If you are used to doing stuff via the CLI, or are following some instructions online you can not typically just copy and paste.

Although Windows is generally more difficult for general FOSS development, when it comes to installing third party services and tools (such as databases, queues, app servers) it is typically easier from a beginners perspective to get started because pretty much every major service out there has a point and click GUI installer and configuration system.

There are certainly pros and cons to local windows development. I have a pretty beefy machine at home that I used to play games sometimes. I installed some development tools on it and realize that its a much more powerful computer than my Macbook Pro. I look forward to finding the edge cases and complaining about them in public here on this blog.

Leave a Reply