Windows for Front End Web Development

I’ve been using Ubuntu as my development environment for around 2 years now. Getting to know Linux has been surprisingly enjoyable – I had tried both Mint and Ubuntu, both of which were stellar OS’s. I didn’t switch from Windows back then because I expected a better OS, really. I did it because the web development world as we know it was using Apple’s OSX en masse. To me, Apple has always been a little pricey for what it is. I also had a little bit of attitude at the time against Apple – it seemed to be taking over the world while creating it’s own walled garden, and I wanted no part of that. Regardless of whether you have Apple hate, there was one thing that OSX had that was a big part of modern web development: the command line terminal.

Not having used the command line much since DOS days, I wanted to know what I was missing. To know the web dev world, I needed to immerse myself in the Linux command prompt that OSX had. And with my dislike of Apple, plus already owning a Windows laptop – I went the dual boot Windows/Ubuntu route. It was an awesome learning experience. With all of my dev work on the Ubuntu partition, I almost stopped using Windows entirely.

Despite how good Ubuntu is, I had a couple of nagging problems. The first was that my battery life was significantly shorter on Ubuntu. I have the feeling that it was because of the pre-installed Lenovo/Windows power management tools that were pre-installed on the Windows side of things. Second, and most important – was the lack of the Adobe Creative Suite. As much as I’d love to stop relying on our expensive industry standard tools, it was REALLY inconvenient to boot over to Windows every time I wanted to tweak a graphic.

I tried to get used to Gimp and Inkscape, but I really just couldn’t. Graphics were a pretty big sticking point that disrupted my flow.

Past that, Ubuntu proved a pretty awesome environment for not only doing real work, but a good baseline to see what was REALLY cross platform. All of the tools we know and love in the web dev world work cross platform: WebStorm, Node.js, Git, Grunt, Bower, Yeoman, Sublime Text, Chrome, Firefox, etc. More significantly, while I was learning the Unix command line syntax – I was also learning some syntax that doesn’t change from Windows to Linux to OSX. If you learn Git or Grunt on Linux, you’ve learned it on Windows as well.

That was the key. If all we’re doing is using cross platform command line utilities, then when it comes to OS choice, what’s the diff? One of the main differences for people accustomed to Windows was that it really doesn’t seem worth it to give the command line a chance. It seems counter to our nice GUI progress. I was certainly inclined to find visual based tools so as not to EVER touch the command line.

But, after adopting Linux, the command line became second nature…it just felt like the right way to do certain things. So, when I got a new machine this past December – I was faced with a choice. Keep the copy of Windows 8.1 that it shipped with? Or dual boot Ubuntu again? Ultimately, I decided to see how much effort it was to rebuild my dev environment in Windows.

All the usual suspects work as expected. WebStorm, Sublime, Node, Git….they all work great. Of course, as every Windows person can attest, the “command prompt” sucks. Luckily there are alternatives!

First I grabbed Console2. This is a great little replacement for the normal Windows Command prompt. Everything is configurable, just as good as the terminal from OSX or Linux. Though, what you type in the command line will be DOS based – so it takes some getting used to. No more “ls” to list directory contents – now it’s “dir”. But guess what? Install GOW (Gnu on Windows)! GOW will give you loads of the more commonly used Linux commands to use on Windows instead of the DOS syntax.

Lots of stuff is covered now! My command prompt with Console2 and GOW is as nice as it ever was on Linux/OSX. I briefly installed Cygwin which has it’s own command prompt and covers much more in the way of Linux, but unfortunately Node.js didn’t like the unholy combo of running a virtual Linux on Windows (I think it was all line-ending characters that screwed it up).

My favorite IDE looks just like it did before – except the terminal is now Windows based. But with GOW installed, it works pretty much the same.

All in all, fantastic. My Windows setup seems just about as good as my Ubuntu setup was. Now, however, I can just boot up Photoshop for quick graphical edits. And when I want to play around with WebGL, the browser/OS support will be better.

What about just getting a Mac? Still a little overpriced for my taste. At my dayjob, I was given a MacBook Air. It’s a nice machine – very tiny and comfortable in your lap. The battery turned out to be atrocious though. Barely lasts me 1.5 hours! The form factor did give me a taste for more with my Windows machine, though. That’s why I bought a Lenovo Yoga 2. At around $1k, its close to the price of the Air. It’s pretty much the same size, too. Some of the nice extras turned out to be a better battery life, and a screen that flips around back to be a tablet.

What really sets it apart for me, though, is the crazy good display resolution (3200×1800) and the fact that the screen is a touch screen. How handy is it if I’m working on a mobile version of my web application, and I can develop/test my touch events right on my dev machine itself?

Anyway, its quite nice to take my fear from 2 years ago that you really need a specific OS to do web development and debunk it. I’ve learned that if you use Windows, just make sure to TRY working outside of your comfort zone and get into the command line way of doing things. It really is worth it, and you’ll set yourself up for some expertise that the rest of the community is already on to.

This also proves one of the PC’s main strengths over Apple – the fact that there are many companies trying out many different form factors. I don’t need to wait for Apple to make me a Macbook Air with a Retina touchscreen – I can simply buy one from another manufacturer.

I should also disclose that now that I’ve been using Windows, OSX, and Ubuntu constantly – I like them all. Windows 8 has quirks, sure. I don’t like how I keep accidentally swiping the edge of my trackpad and loading the Metro view. But then I have similar complaints for OSX and Ubuntu. That’s the beauty of doing web development. I can just switch my OS again if I get sick of my current one.

Hope that helps someone who might feel “stuck” on their PC and is wondering if they need to switch to Apple. Of course the answer is no, it’s not necessary – but there’s also certainly no reason not to give OSX or Ubuntu a chance. Try it all, and see what sticks for your personal taste!

12 thoughts on “Windows for Front End Web Development”

  1. +1 for cross platform. Wish Adobe would get with the times and make their toolset truly platform agnostic (not just Win+Mac).

    I’m going the other direction having used Windows fairly exclusively that last few years I bought a new laptop and recently installed Ubuntu on so I could go back to Linux. Already setup a VM so I can run Windows and access Creative Suite when I need it.

    On Windows I strongly suggest giving ConEmu a try.

    http://thecrumb.com/2012/11/30/searching-for-the-perfect-windows-terminal/

    There is also cmder (http://bliker.github.io/cmder/) which is a nice looking GUI wrapper around ConEmu.

    TCC/LE + GOW + Gitbash fill in the blanks for me.

    1. Nice, thanks! Actually – it may have been your post that originally pushed me to try Windows again in the first place. I had my new laptop coming in the mail, and while I was considering whether to dual boot it with Ubuntu again, I came across your post. I think you were having a Facebook discussion with Sean Corfield talking about this, so I attributed the post to him and could never find it again.

  2. I just did a similar thing – switched to Ubuntu on a Chromebook to save a ton of money – both the wife and I switched and sold our MacBook Air’s. A year later, and I had to buy a desktop for a client job which required Photoshop. Soon I’ll ditch the Chromebook and desktop and grab a 17″ laptop.

    My desktop is Windows 7 so I was searching for someone’s experience of doing web dev work on Windows 8. Thanks for the info!

    1. Since I just got the reply from Glenn – I’ll say that I’ve slightly changed my tune in the past few months. I was running Windows pretty happily, but occasionally when doing some more advanced stuff with Node.js like working with Bluetooth, I’m finding that many authors don’t support Windows. Just a Node ecosystem thing.
      So now, I’m setting my machine up to dual boot with Ubuntu. Actually tried running the OS on an SD card which was a little too slow, so I’m going to purchase a USB thumb drive soon. I considered running ONLY Ubuntu, but then Chrome doesn’t handle a High DPI display well on Linux, and neither does my favorite IDE: Webstorm.
      The other major thing I’ve come across recently, is GitHub for Windows. It actually gives you a pretty decent shell window that gives you basic Linux commands and infects your normal command line with all that good stuff.

    1. Defective or maybe just old. It’s a 2010 or 2011 model. Quick googling shows this article about the decreased battery life of a MBA over many charge cycles https://gigaom.com/2013/08/15/what-happens-to-your-macbook-air-battery-in-a-year/. I think what I noticed loosely correlates to the 3-4 hours he’s claiming. The 1.5 hours I claimed may have been in webex meetings where I’m running or watching a presentation from someone and it ended up dying on me in a very short amount of time.

  3. Thanks for this post. By the far the most helpful I’ve come across with respect to determining if I can employ a modern FEWD workflow via Windows and use all the tools you mentioned in the 5th paragraph.

  4. The logical choice is the best of both worlds. I like using Windows as well but to get the user friendly features of windows and the POSIX compatibility the best choice is to use OS X. Why use two operating systems when you can just use one?

    1. With a strict front end workflow, you’re not necessarily wrong. I do lots of other things though – some require Windows, some require OSX. Sometimes people developing tools and software for either platform pretend the other one doesn’t exist. I like to stay on Windows at home while using OSX at work to keep grounded and stay as cross platform as I can be

  5. So… you switched your entire development stack over to Windows just because you needed to use a couple of Adobe products every now and again (despite quality FREE alternatives being readily available)?

    If Muhammed won’t go to the mountain then the mountain must come to Muhammed, eh?

    1. And before that I switched my development stack to Ubuntu because I needed a couple of utilities on the command line despite quality free alternatives being readily available (which is what I wrote about). I hate knocking great OSS projects, but you’re probably referring to Gimp and Inkscape. I’ve given those a shot occasionally, but I’ve never found them easy to use and able to produce the output I want. I also use several other Adobe tools for video, animation, etc. If I hated Windows, I’d stick it out, but I find lots of value in getting to know all the OS’s equally. I also find a lot of folks who make tooling tend to ignore Windows completely, and I’d prefer not being one of those people – so running that at home and OSX at work is great for that.

Leave a Reply