I'm coming to Linux from the Windows world, and I want to learns the ins and outs of the system in order to make it my primary day to day work and hosting environment.

I'm pretty much a complete beginner as far as the OS is concerned, so I would have to start learning it from total scratch. I'm not afraid of getting dirty, but I'd also like the process to be sufficiently pragmatic. Once I'm familiar with the OS, I will be mainly developing Ruby on Rails and Clojure applications on it that I then hope to host on the same environment.

Excluding the more consumer-oriented distros like Ubuntu and Mint (or are they worth considering?), what are some good options for me from both a learning and server hosting perspective? I've heard good things of Arch Linux and Debian.

4 Answers
4

If you want a machine for local development (a desktop machine), and you want to learn a lot - then go with Arch. It will kind of force you to learn about some under-the-hood things about GNU/Linux because you have to assemble everything from command line, so be prepared, quite a lot of reading will be required although it's not actually that hard as people think. The first installation takes a bit longer if you are not an experienced GNU/Linux user, but maintaining it is a breeze. Arch also has extremely good wiki with tons of useful information, it has lots and lots of packages + AUR (Arch user repository (which has everything that Arch official repos don't have)). Arch also has all the newest packages since it's "bleeding edge". I wouldn't recommend it for a "production" server though for the exact same reasons. Servers need to be stable, not bleeding edge.

So, if you want a server distro - I would go with Debian. Very stable (but older packages), a bit easier to use than Arch in my opinion, not such a good wiki.. Also makes you learn quite a lot.

Gentoo would be a bit too extreme (too much hassle and too much time wasted on compiling stuff), but perhaps gives you the most knowledge because you have to dig very deep to make it work. It's good to be used for a while to learn stuff, but it's not that pleasant for regular everyday usage.

Although as others pointed out, there really is no wrong choice. You can learn a lot using any other distro. The difference is, Gentoo/Arch/Debian will "force you" to do so from the beginning. In the end it all boils down to basically more or less the same (or very similar) thing..

There really isn't any "right" distribution. The good thing about free/libre/open source software is that most of them are available free (as in beer) as well.

So you can experiment with whatever distribution you like, see if it fits your needs and try another if it doesn't.

Your requirement to host web apps is perhaps a bit too general. LAMP applications for example will run on just about any distribution.
If you want to host JBoss or IBM WebSphere Application Server applications your choices are limited a bit to supported operating systems like RHEL or SLES.

Another thing to consider is whether or not you need professional support or not.

You can have a look at DistroWatch to get an overview of most (if not all) available distributions.

I wouldn't count Ubuntu off as a consumer-oriented distro, it is actually a great option for both desktop and servers. They even have both desktop and server builds: http://mirror.anl.gov/pub/ubuntu-iso/CDs//precise/ . It is also a very common option to run on clouds such as Amazon EC2.

Run Ubuntu Desktop on your local work machine and Ubuntu server for your hosting environment and you'll get the benefits of using the same OS for both, ie: things will work the same locally and on your servers.

I actually prefer Linux Mint on the desktop these days, but since it's based on Ubuntu, you can run Ubuntu on the server and still get the benefit of it being almost identical.

Don't go for Fedora. It is a good distribution, but you mustn't forget that it's primary goal is to test new software packages for RedHat Enterprise Linux.

Gentoo is brilliant for leaning Linux, but you'll need to be prepared to do a lot of troubleshooting and patching. (Comes with its concept). I enjoyed this distribution for years myself, but I changed to Ubuntu because patching often broke the system, requiring troubleshooting. Lots of very good documentation and I always managed to get Gentoo up and running again.

RHEL & SLES/SLED (RedHat and Novell Suse) are enterprise distributions that require a support fee for receiving patches.

I'm not impressed with SLES/SLED (because of all the trouble in the office), enterprise grade Linuxes. That is my reason to avoid OpenSuse

I like the ease of use/installing/patching for Ubuntu myself. It is pretty straight forward, stable and has predictable upgrade cycle. I use it as main desktop and as server OS.

Maybe DistroWatch is a good starting point to read a bit more about various distributions.