There isn't anything you can do with one that you can't do with the other and considering that most every production enviornment uses a source-compiled version of Ruby (whether directly compiled or through rbenv/RVM), there isn't that much needed from the server OS other than stability. Perhaps you want to install Nginx or Postgres from a repo and need a version that one of the distros doesn't have but that's hardly a reason to choose a distro.

In general, the only correct answer to this question is use what you know best.

On a personal note, I prefer Debian over Ubuntu because it's more stable (by definition, not necessarily so practically speaking). Ubuntu is more akin to Fedora.

I use CentOS because of stability. My second choice would be Debian for the same reason... however, that is based on talking to people who run hosting companies - they seem to think those two are the most stable platforms for web hosting.

However quite a few companies in the Rails world, such as 37 Signals, use Ubuntu - so maybe it's good enough too.

I've used both in production environments and I tend to prefer CentOS in most cases, but that is strictly my opinion. I think it really comes down to personal preference with what types of package tools and update intervals you expect out of your platform. They are both capable and stable, however I feel like CentOS offers a more predictable environment because of the nature of the product being designed for enterprise computing. Ubuntu on the other hand tends to implement new features quicker. If you're happy with one or the other though, I don't think there are any compelling reasons for you to up and switch on a whim.

I only see hype for Ubnutu for the GUI.. but 99% of the time I'm using SSH. Never saw Ubuntu really as a enterprise grade product to be using as a server but others see a difference. I just like stability and CentOS has always been there. Guess I shall stay with what I know best.

We use Ubuntu for all our production systems. The key motivator for us is that we have a lot of experience and knowledge of it and resolving issues & provisioning new equipment is a far easier & quicker process when you know what you're doing. Of course, that doesn't preclude us from learning something new should the need arise but right now we're in a good place with Ubuntu.

If you ever really want to learn Linux, there's and amazing project called Linux From Scratch. It it basicaly a series of tutorials that take you from zero to a your own custom, complete Linux operating system. As an analogy, it's like getting all the parts you need to build a car and building the car until it's complete. Of course the system you build would be very difficult to use in production because you wouldn't have the conveiance of apt/yum to update software but the things you'll learn are amazing and will make you very good at whatever production-grade distribution you're using.

Recently been using Ubuntu thanks to Nitrous.io. And I'm considering installing Ubuntu on my desktop just to get more experience with how the GUI OS handles with desktop development. I normally just SSH in from my Windows machine otherwise. But the GUI desktop is tempting for development purposes as Windows doesn't always play nice.

I switched from using Windows to using Linux (Ubuntu 10.04) about 3 years ago. I've followed all the upgrades to 13.04 but I really hate the controversial Unity Desktop so much that I switched to using Linux Mint with the Cinnamon desktop http://www.linuxmint.com/ last week and can highly recommend it. Not sure that I feel I could recommend Ubuntu any more but like I say it's controversial and a personal thing and everyone will have their own opinion on this.

Just as simple to install as Ubuntu but I do feel the Mint Software manager is not a patch on the Ubuntu Software Centre but I can install the Ubuntu software centre into Mint if I really really want to.

Whatever distro you choose just install and play. See how you get on. I don't miss Windows at all but then I'm not a gamer and that is really the only reason to use Windows but even that is changing. Steam is porting all their games over to Linux and other majopr games manufacturers are starting to do the same. Most of the latest games that I am interested in do seem to run quite happily under Wine but not all.

My daughter keeps a windows HDD lying around that she just plugs in whenever she wants to play Sims and uses Linux for everything else. My Son really struggles with his games under Linux, want's to switch but sticks with Windows.

IMHO, I think Debian and Ubuntu are both great, Ubuntu got distribution updates more often which is not always cool for sysadmin. Debian have more outdated packages, but most major services (nginx, postgresql, etc) provides they own repository with the last versions.

I've followed all the upgrades to 13.04 but I really hate the controversial Unity Desktop so much that I switched to using Linux Mint with the Cinnamon desktop http://www.linuxmint.com/ last week and can highly recommend it.

I could not agree more. Unity is a disaster. Mint is based on Ubuntu but done right. It's the way to go if you want a Debian/Ubuntu system on the desktop.

IMHO, I think Debian and Ubuntu are both great, Ubuntu got distribution updates more often which is not always cool for sysadmin. Debian have more outdated packages, but most major services (nginx, postgresql, etc) provides they own repository with the last versions.

I tried both and I'm now using debian 7.1 (without GUI, it's useless

A few clarifications:

Ubuntu has two tracks of releases: the regular releases and the Long-Term Support (LTS) ones. The regular releases are every 6 months and the LTS are every 2 years. Regular releases are supported for 9 months while LTS releases are supported for 5 years. If you are concerned about long term stability (like you might be with Rails) the LTS version is the way to go for a production environment. Of course you can upgrade the regular versions when they come out but you are risking introducing incompatabilities if you have a stable Rails app running.

Debian has three tracks: stable, testing, and unstable. "Debian" generally refers to stable. Every package goes from unstable to stable as it matures and receives updates. This may make stable packages seem "outdated" but in reality they are just much better tested. That's what makes Debian Stable so rock-solid (and along with RHEL/CentOS) one of the two defacto major Linux server distributions. (Ubuntu LTS comes in a distant third in terms of market share.) Unlike Ubuntu, Debian does not have strict release and support time-frames which some people like and some don't.

Ubuntu *is* a snapshot of Debian testing with some modifications and rebranding. This makes Ubuntu less stable than Debian but it allows the packages to be based on newer versions of software. The Ubuntu view is that Debian testing (with some minor mods) is good enough in exchange for getting slightly newer versions of software. Like time-frames, this is an area where people have to make their own judgements.

Even though the two are very similar, one should never assume he or she should use the same track on their desktop and server. The server should be stable and well supported. It usually only needs to run a small set of software very well for long periods of time. A desktop on the other hand has to run many types of software for short periods of time. A desktop does not have to be as stable and it's very common to use Ubuntu's regular releases or Debian testing (or even unstable) for a desktop.

Finally, GUIs are meant for desktop use or for very inexperienced server admins (I say "admins" with hesitation because you cannot administer many required things without the command line.). Everything can and should be done on the command line as GUIs add a lot of unnecessary overhead to a server. Also, GUIs seldom cover every intricate feature that can only be accessed on the command line. It may take some time to get comfortable on the command line but it is essential if you are running production servers.