Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
March 17 2018 - Jonathan Goes Windows

Jonathan Goes Windows

It's "official", I have switched to Windows! Some may call me crazy (and maybe I am) but I've actually been enjoying the web dev experience on Windoze. Like those brave soles before me, I have decided that it's time to combat the Mac monoculture and try something different.

It's strange to me that the web is all about open technologies and inclusiveness and then we all use Mac and preach our technology choices hard from the rooftops. I started off using Windows for photography in 2005 on a severely under powered machine, switched over to Mac around 2007 and then became a semi-hardcore Linux user from about 2013 to 2018. I've come to learn that it really doesn't matter which machine the web developer is using, as long as they get the job done at the end of the day.

Tools That Made the Switch Easier

Obviously, I couldn't give up the tools that I need to do my job. I was curious if there would be useful alternatives on Windows. Turns out, things are quite well supported.

.dotfiles

Dotfiles are super cool. They hold all of the configuration and setup information for your computer and are generally source controlled. I have been using my own set of dotfiles for a least a couple of years now. Problem was, I had 0 Windows-based configurations. I didn't even know if dotfiles would be possible on my new Windows system.

Luckily, I found a great little Windows dotfiles repo on GitHub just FULL of handy ideas.

Before I knew it I was scripting in PowerShell like a beast. Now, if I want to setup a new Windows computer, I just need to clone down my dotfiles repo and run my new-computer.ps1 PowerShell script.

Git Bash

Being an ex-Linux user, I have come to love Bash. Although the syntax can be awkward at times, I love how you can count on it being installed on just about any system and how common it really is. Of course, it's not installed on Windows. 😢

To get Bash running on Windows and have common Bash commands available to you from the command line, I recommend installing Git Bash. Since I use Git anyways, this was the easiest choice for me.

You can also install Cygwin which makes a entire UNIX-like environment available to you from the command line. For my purposes this was overkill.

For real Linux geeks out there wanting to try Windows again, you should know that Windows 10 has the Linux Sub System for Windows baked into the OS! 😄 This is really handy. I installed Ubuntu as it is my preffered Linux OS. If you take this road, you will have full access to your Windows files and system from the Linux command line, which can be super handy when scripting in Bash or using rsync to sync files.

Hyper

The other thing that I was worried about when making the switch was finding a shell to use with (Git) Bash on Windows. The standard Windows command prompt is so 1995. It hurts.

I'd like a shell with a few more features (like ability to copy and paste). Luckily, there is Hyper.

Hyper is a terminal built on web technologies and is fully themable.

Unfortunately, you can't use PowerShell inside Hyper, well, not yet anyway. You can however use GitBash with Hyper which suits me just dandy.

Chocolatey

I hadn't heard about Chocolatey before I decided to go Windows. It's super cool. You know how in Linux Land you have package managers like apt that handle the installation of all your software? Oh.... you don't know about that?? Ah, you use a Mac - well, maybe you know about Homebrew?? You do!? Oh OK, good! Well Chocolatey is just like apt-get or brew but for Windows!

This makes installing software (or writing a script that installs software) a breeze! Just: choco install <package-name>

Checkout all of the possible software packages at https://chocolatey.org/packages.

Pain Points

Switching to Windows was not without some friction.

Bash

I do miss native Bash. There are certain commands that are not available in Git Bash. While you can write scripts for Bash and run them with Git Bash, I just never really feel confident that they will work all the time. If you call a command that Git Bash doesn't know about or that isn't install on your Windows system, the command will fail (obviously).

The biggest crux was getting SSH to work while respecting my ~/.ssh/config file. This still hasn't really happened yet. Or rather, I haven't found a good way to go about it. My config file works if I am using Git Bash interactively as a normal shell. However if I run a script that uses ssh from something like cron, then the script will fail because it cannot read the config file.

Cool Factor

This is a small point, but people tend to expect a web developer to own and use a Mac. Heading to meetings with my 2014 IBM Thinkpad throws people off. It's strange, but I feel like they may be taking me less seriously simply because I am not rocking a Mac laptop. My computer does have a lot of stickers on it though. I think this contributes to my credibility. 😉

Cost Savings

Credibility aside, I have noticed that my Windows machine can do everything my past Mac machines could do. As a web developer you are basically just editing text files (which any modern computer could do, really). You don't need a lot of processing power to run a browser and a text editor and with my new SSD installed, my Windows rig boots up faster than any computer I've ever owned!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.