Poll: What OS do you prefer for Web Development?

40 points by ekianjo ↗ HN
This is a little question I'd like to clarify. I see a lot of vocal HNers saying they prefer OSX over anything else, but is that a vocal minority or does that represent a majority here on HN ? Please indicate what you prefer using for Web Development, and why.

83 comments

[ 2.6 ms ] story [ 132 ms ] thread
I personally use a Linux Distro (OpenSUSE, and occasionally Ubuntu) for any Web Development, but I'd like to hear more about the choices of professionals in the field, those who earn a living with their work.
I use KDE mainly because it feels a lot faster than GNOME and Unity and because it moves out of the way when I don't need it. And the smart-as-shit rendering engine for Oxygen makes GNOME apps look native to KDE so it's like I'm at home. I use my laptop for gaming and work.
I wonder how many people have a different preference from their development OS to their daily use OS?

Personally, I like Windows, but developing Rails on Windows isn't ideal so for Rails stuff, I use Ubuntu (sometimes OSX). Node and PHP I've always done in Windows.

I use Arch Linux on my desktop and OS X on the laptop. I prefer Linux, but I don't want to give up the vertical integration on my laptop.
Arch is the OS I use for everything, including Web Development, in the rare occasions that I do webdev.
I vastly prefer Linux.

I actually work on a Windows 8 machine for most of my day, but all my actual development happens on a Fedora machine on my LAN, which I work with via Samba and SSH. The advantage of this setup is that it means that I can also work from my Chromebooks trivially - just SSH into my dev machine and hack via vim. I have a Macbook that I work on sometimes, but I frequently just end up doing the same thing there - connect to my dev machine via Samba and SSH, do my work, don't worry about the Apple tools tripping me up and getting in my way.

OS X is probably the nicest (prettiest?) shell available, but the OS as a whole is a pain in the ass from a development standpoint compared to the Linux alternatives. The shell also has its own little quirks - you end up using the mouse a lot more on an OS X machine than you do on a Windows or Linux machine, which slows me down.

I think that $YOUR_FAVORITE_DESKTOP_ENVIRONMENT works just fine as long as you are running all your actual code on a Linux machine or VM somewhere.

Can you explain further what makes OSX a pain in the ass vs a Linux distro (besides the shell quirks)? Any advantage you see by using OSX even though you prefer Linux ?
Well, for one, getting sane build tools is difficult. Apple doesn't ship anything GPLv3, which means that among other things, GCC and bash have stagnated. You end up relying on homebrew to provide modern versions of "basic" tools, which may or may not work properly depending on your use case. It generally involves a lot of trial and error and things mysteriously breaking until you find a StackOverflow question where someone has figured out the answer through exhaustive experimentation, and one of the sixteen prescribed fixes will actually work for your environment. OS X is better than Cygwin, but it's the same kind of mess - to get a functioning, cohesive GNU environment, you end up doing a lot of hacking around to balance things just so.

Since you end up relying on a third-party package system, and the OS itself makes no guarantees about the availability or compatibility of the development tools you need, upgrades become dangerous and unpredictable.

As for advantages...I dunno. Netflix, Photoshop (sorry, GIMP fans, Photoshop is still unmatched) and battery life? Linux power management is pretty horrid compared to OS X. However, basically the only time I care about that is when I'm on an airplane and won't be able to get to a plug for 4 hours, which is like...a half dozen times per year.

I find what you're saying interesting, because it doesn't really match my experience. I came from Linux to OS X not too long ago (three years maybe?) and while the first thing I do is install GNU coreutils and findutils, I don't find myself having to do much else to make the command-line environment feel very friendly. Most "Linux-only" scripts that I run across are really just "GNU-only" scripts, and work fine. Obvious exceptions are ones that do specifically touch Linux-specific constructs, but I find that most are just not tested with the default BSD tools and suffer for it.

My only other beef is that there's no rc.d system and OS X's startup stuff is messy, but I do that so rarely that it doesn't usually come up.

The other major advantage for me is Xcode. I did not get-it until Xcode 4, but these days I really miss when I'm not using it. (I do mobile and web development on the JVM, but I write games on the side.) I've yet to find a C++ IDE that's as nice as Xcode, and that's including MSVC with Visual Assist X.

Also, I haven't found serious issues with upgrades since moving to Homebrew from MacPorts. Your mileage may certainly vary, but I've upgraded the same Mac from 10.6 to 10.9 without any issues. I can't say the same for my Ubuntu system, but that may have been my fault. =)

It may just be quirks of the toolchain - I'm primarily a Ruby developer, and I dabble in Java (mostly for Android) and Scala. Setting up a CRuby environment that can compile native extensions under OS X is a minefield. It's not hard once you know what to do, but you can expect to spend several hours working around esoteric issues the first time or two you do it.

The lack of an rc.d system is another sore point for me - I can't ever remember the correct invocation to restart this or that service. Having to look it up each time is annoying.

I haven't used XCode significantly (I tend to stick to Sublime and IDEA's Java/Ruby IDEs), but I've heard great things about it from iOS developers.

Gotcha. Never got into Ruby beyond the basics, so I can't speak to that. It's funny that you mention IDEA, though, because I find it way, way better on OS X (day job is Android development, I'm also a part-time Scala cheerleader). It's just so amazingly fugly on every Linux machine I've ever used--it's a Swing problem, I've never been able to figure out how to fix that.

Heck, IDEA looking and feeling great on OS X was the reason I originally bought a Mac.

Usually this "-Dawt.useSystemAAFontSettings=lcd" will fix your fugly situation. Actually, at least since version 3 of PyCharm I don't have to muck around with java settings to make it look humane.
Tried it previously (I used a Linux machine as a daily driver for years). Doesn't look any different to me on Ubuntu.
>My only other beef is that there's no rc.d system and OS X's startup stuff is messy

Have you already looked at launched. I've heard a lot of praise from people who've used it. http://en.wikipedia.org/wiki/Launchd

I mentioned it above also, but I use `brew install lunchy` for a better interface to the launch/services system.
I hate the services/rc system on osx, but `brew install lunchy` makes it much much better.
Also, to be clear, power management for laptops depends entirely on which one you got, there are a few where it makes better use of the same battery on the same hardware than OSX could hope to.
Having moved from Windows to Linux to OS X for desktop I've found that nothing beats OS X for stability and uptime. Linux esp the Kubuntu was never stable. Windows same. OS X is bloody amazing esp when under load. I guess it all depends on what type of development and torture one puts the OS through.
That's opposite of my experience - my Windows machine (seriously, who'd have thought it) is more stable than my OS X machine these days. My Linux machine is currently running at 344 days of uptime, though, so there's that.
I haven't used Samba since university - don't you suffer from "Windows doesn't have proper file permissions" thing with it? How do you work with Git? Can you commit both on the host and Linux?
Arch Linux all the way, for any type of development. I love trying out different languages and frameworks , and pacman makes installation and updating a breeze.
Safari issues are rare (if it works in Chrome it pretty much works in Safari). IE issues on the other hand . . . which is why when I'm doing serious web development where I care about reaching all users, I prefer to use windows so I can quickly debug Chrome, Firefox and IE(s).
Virtualbox is great for IEx, especially now with modern.ie where I can quickly test 8/9/10/11.
Big fan of Linux (and in turn FOSS projects) so I'm a KDE + Ubuntu (moving to Debian when I can get all of my PPAs in easily) kind of guy. I use Krita/Karbon for slicing up PSDs and making quick vector images, Pencil for wireframes and light mockups and mainly Konsole, Vim and tmux for all of my webdev works (as well as Chrome and Firefox).

As long as you conform to standards, webdev is easy.

I'd prefer Linux but there is a huge downside - not being able to run Photoshop. The workflow still feels much more intuitive than Gimp. Virtualbox running Win7+PS could work though..
What's the reason people find Photoshop so important to web dev?

I used to use Photoshop and run my main dev setup in a VM so I could use it, but eventually I just used it less and less.

I'll agree Gimp isn't the best piece of software ever usability wise, though single window mode went a long way. But honestly I end up using Inkscape way more since it's so much easier to align boxes in layouts for mockups and create CSS-like effects, which is what I end up doing a lot.

I get Photoshop for Lightroom/really graphics heavy stuff, but as a webdev I find I either need to make simple vector graphic stuff that Inkscape works wonderfully for, or I just need to chop up stuff that someone else already created as a raster somehow, neither of which really make Photoshop a necessity.

Now the main piece of software I like that doesn't run on Linux is Sequel Pro. I really really wish that it had a Linux version.

As for what I use, I always do my development work in Linux, whether VM or regular install. Getting stuff to work on Mac can be a headache (you absolutely need homebrew, and most of the time it works alright, but compared to just using Linux it's not always convenient, especially when you want to use a piece of software that's never really been built to work with Macs), and it's generally impossible on Windows. These days my desktop distro is Mint, though I stick with LTS based.

As a front end developer, I get most of my assets in PSD format. Although the uptake of mobile browsers (and the corresponding use of media queries) is slowly chipping away at Photoshop as a web design tool, Photoshop files are still the most common format I receive.
I actually prefer GIMP. It's much more light-weight (RAM), and it does everything I need (which is usually just resizing and recompressing). Though, I see the need for PS if you have to do more involved stuff.
I use OSX at work, and it's fine... but you have to install so much third party stuff, it's too easy to set up a machine non-case-sensative and then get screwey issues later on, and none of the 'fake' tiling window managers are really that convincing in the end. I prefer straight debian.
I'll move from OSX to Linux as soon as the Adobe suite runs on Linux.
Why the downvotes? I develop on Linux, but I feel the problem secoif talked about.
Lubuntu - single screen setup, easy config sync between home/work and new PCs (setup in <30 seconds, sync with dropbox/git-annex).

Multi workspaces, allows minimal distraction for UI, Sublime Text 2, Chrome.... love it. Been using Linux since 2006 and wouldn't switch to anything, though I recently bought a MBA and that has been converting me slowly - what a great portable machine.

A linux user. Running nginx, memcached, *nosql and a wide variety of new stuff is fairly easy on linux.
I do considerable design and photographic work in OS X. I've been on the Mac platform for my entire life, and I have no real reason to switch now. That said, most of my development work is platform independent– it probably wouldn't make that much of a difference if I did it in Linux, maybe a bit more if I did it in Windows. I just have no reason to do so and I'm comfortable with OS X.
A Mac OS X box, with Vagrant/VirtualBox running as close a copy of the deployment environment as I can manage. (And a VM running Win/IE too when needed). So my editor is mostly running in Mac OS X, but most of the dev actually happens on a Ubuntu, CentOS, or recently ARCH Linux environment.

Why? Mostly inertia - I've been using Mac OS daily since System 7 days, and I've never chosen to spend the time becoming familiar enough with any particular Linux distro (or Windows) to become familiar/comfortable for the rest of my day-to-day work - I like my text editor (BBEdit) and my other toolsuite much of which is OSX only. I'm happy enough in vi from a command line when needed, but I'm not as productive or efficient there. There's a little bit of liking the hardware too - I still like my (~3 year old) MacBookPro - it's a _really_ nicely made piece of kit - far nicer than most other brand laptops I see around. (I have little doubt that there are nicely engineered and designed Windows/Linux laptops, but most of them I bump into are plasticy or boxy or flimsy-feeling.) I do have a Toshiba Notebook and a non-name wintel box with Ubuntu12 under my desk, but it's a 27" iMac and a 13" MacBoo Pro that I spend all my time in front of.

This sounds pretty similar to my setup - all the actual build and dependency stuff happens on Linux, but the shell can just be whatever you're most comfortable with.
Still figuring this out. 5 computers, 5 different OS...
I switched from Windows to Ubuntu a couple years ago, because ruby and rails were a PITA on Windows. Now I use Windows only when I absolutely need to use Photoshop, and it just feels so slow
Linux or OSX, pretty much the same; currently using OSX because I have MacBook Air (and love the HW). I didn't find too many reasons to install Linux on it yet.
A unix shell + Tmux + Vim and I'm good. That's one hell of an IDE and it runs everywhere. (Except on windows.)
You should check out Nitrous.IO, if you want this setup anywhere :)
Windows because that's all I can afford. I can think of Linux, but I have been brought up on Windows. It's like my personal glass ceiling.
I use OS X for a few reasons: it's the default OS on my laptop of choice, it's easier to setup ruby on OS X than Windows, and I prefer the OS X UI to that of any Linux distro (and to that of Windows 8 and Windows 7 too)
Debian. And I don't understand how people manage to get anything done at all without a package manager and (binary) repository. I've recently had to help a colleague set up development environment on OSX and it was pure torture.

And yeah, once you get a hang of tiling window managers everything else just looks silly.

Can you elaborate on the advantages of a tiling window manager? I like them, but once I pass about 3 windows, things start feeling cramped and I can't really get anything done because there are things I don't care about competing for visual attention.
I use wmii, so this might not apply to the other tiling WMs (although it does seem to be similar from observing other people), but here goes:

The main advantage of wmii to me is that I can always get to my destination window with a single keystroke. I don't have to grab the mouse and I don't have to shift my focus to the window switching process itself like it happens when you Alt-Tab in Windows / OSX. I switch between windows a lot so it was a major annoyance when I used to work on Windows. Maybe for someone with a different work style it would be a lot less important.

Most of the time I have one maximized window per "virtual desktop" so there's really no competing for attention issue. But when I do use multiple ones (e.g. for multiple IM clients) I really enjoy the fact that I don't have to do the layout manually (using mouse, again).

Finally, it might be silly, but I just realized that "imperfect" windows layout (where there is unused space between windows) bothers the hell out of me. OSX is particularly bad in this regard (and I've noticed other people bothered by this as well).

Maybe I just need to learn to set one up correctly. It sounds interesting.

I hear you on the OSX "space waste" thing. Windows has the awesome Win+Up/Win+(Left/Right)/Win+Shift+(Left/Right) shortcuts that I dearly miss when I'm on OS X - being able to move windows around and maximize/restore them with the keyboard is fantastic.

That's the one thing I missed on OSX too, BUT BetterSnapTool does just that and a lot more.

I also kinda missed the (true) window maximize button, but then again there's RightZoom which does it.

Give Slate [1] a try, it's a little bit of a pain to set up initially, but it lets you easily assign hotkeys to your prefered window locations.

Personally I've also got PCKeyboardHack [2] and KeyRemap4Macbook [3] setup to disable capslock and remap it to a 'hyper' key (command+option+control+shift) so that I can assign my own key combos without having to conflict with other software.

[1] https://github.com/jigish/slate

[2] https://pqrs.org/macosx/keyremap4macbook/pckeyboardhack.html...

[3] https://pqrs.org/macosx/keyremap4macbook/index.html.en

Tiling manager - Amethyst ( https://github.com/ianyh/Amethyst ) is port of xmonad for Mac OS X. Binary repository - brew cask lets you distribute Mac Apps as binary files. Furthermore in boxen ( http://boxen.github.com/ ) they did some work with adapting brew to distribute all software, even command line tools as binary packages.
Homebrew developers are doing god's work but I wouldn't compare it to agt-get.

Yeah, if you sweat for a couple of days you can turn your OSX (and even Windows) into some remote resemblance of a linux. But what good parts do you have left after that?

I get CentOS people always telling me their distro is better. Would love to know if as Debian users we're getting cheated out of something awesome there :)
I don't know that CentOS is necessarily better, but I haven't used Debian enough to make a really valuable judgement there. It's certainly good, though.

yum is a very capable package manager, and Redhat's distros have been very well supported for a very long time. The flexibility of having both Fedora (bleeding edge, you'll probably cut yourself, but can always get the latest goodies) and CentOS (LTS, you know it's going to work properly) is really nice, too.

Talking of window managers, I'm using qtile on ubuntu and I think it's good.
Linux or Windows.

Apple has a serious design VS usability problem with their keyboard and I seriously don't understand how people get used to it. And the unique menu bar.

Also, a windows box for testing is a must have since it's the most popular OS => no need for slow browserstack or vms.

As a Mac user, I actually don't use the menu bar often. Instead, I most often use keyboard shortcuts. When I do use the menu bar, I'm using the Help menu to search for the menu item.

What keyboard usability problems are you referring to? Compared to Windows, I quite like using the Command key instead of the Control key for most keyboard shortcuts (thumb instead of pinky).

I prefer to use windows for everything else, but development is easier on osx.
Windows because we use C# / ASP.NET MVC and Visual Studio / Resharper is a very productive combination. Our test and production machines are Linux/Mono however. Our system utilizes a number of services which are best run under Linux, in particular Redis. On our dev machines we use Vagrant / VirtualBox to host these. Git works fine under windows, and I find myself working in the git shell a lot for general tasks as well.