I am looking for the best flavor of Linux that would appeal to the developer's side of me. I am a lover of open source and use several different languages.
Is there such a thing as a Linux geared towards developers?
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.
Sign up to join this communityI am looking for the best flavor of Linux that would appeal to the developer's side of me. I am a lover of open source and use several different languages.
Is there such a thing as a Linux geared towards developers?
In practice the distros all use much the same development tool chain, so they don't really differ significantly as a platform for general development work. Some do, however, have specific advantages that may be relevant to certain types of development work:
The commercial distros (RHEL, SLES) have the best support from third-party closed source vendors. If you want to work with (say) Oracle you might be better off with one of these, although Oracle can be made to work with most distros if you install the right libraries. CentOS is compiled from RHEL sources and will play nicely with most if not all commercial software built for RHEL.
If you want to tinker, you might try Linux From Scratch. It's quite a good tutorial on how a linux distribution hangs together.
If you want something for which just about everything that is or was ever open-source is available from repositories, then a Debian based distro (either Debian or Ubuntu) may be a win. There's a reason Canonical picked .deb to use as the package management system for Ubuntu.
If you want to tune everything to the n-th degree then Gentoo lets you rebuild your entire system for your specific processor architecture.
If you want a 'traditional unix' experience then you could try Slackware or FreeBSD (which is not a Linux distro but might be of interest to the OP). Also, the BSD family are particularly strong in networking so they may offer advantages over Linux to developers working in this field.
Of those, I've used CentOS, Debian, Fedora, Ubuntu, Slackware and FreeBSD at various times in the past, plus a few others (Vector, SLS, Yggdrasil and assorted versions of Redhat from about 4.0 onwards). As a 'unix' development environment they all offered the tools of the era and could have been used for development work with the bundled tooling or by downloading and building whatever else you needed.
Unix was once described as an IDE masquerading as an operating system, or words to that effect. Any unix or linux variant can give you the unix developer experience if you want that. At one point I didn't really care much for the environment. I really just used the window manager to open xterm windows and start a few apps; everything else was pretty much done from the command line. Most varieties of unix or linux can do that.
If you're into C then vim or emacs with ctags, make and gcc works pretty well; you can use gdb with or without a frontend. This tool chain also provides good support for languages such as perl or python and comes with a rich ecosystem of support from third party tools.
For a more GUI-centric workflow it really comes down to a personal choice of window manager, desktop environment and development tools. If you're into Java then Eclipse and netbeans have builds on most major distros. Various conventional IDEs exist with support for C/C++, perl, python and other scripting languages. These can be made to work on most if not all Linux distros. Java is only supported on BSD through 3rd party ports so you're probably better off with linux if you're working with that.
Is there such a thing as a Linux geared towards developers?
Yes. It's called Linux.
Fedora (or any Red Hat derivative) is as good as any Debian, Slackware, Gentoo or whatever. Seriously, you can develop with any major distribution, it's a silly question to ask for a "developer oriented" Linux.
It's also silly to say that any of these distros is better than the others for developers. It just isn't serious.
This question really begs for arguments.
I've tried out quite a few distributions because I really enjoy doing so.
I'm a developer and I've also wondered about a good Linux for developers, and in my experience there aren't any Linux distributions geared specifically for developers.
The reason is that as a developer, not only will you be able to customize any distro to suit your needs, but you'll definitively need to know how to do such customizing.
So basically if you're unfamiliar with Linux:
1) Debian, because a lot of production web servers are running Debian, so it's probably a good idea to get to know how Debian machines are organized. The good thing about Debian is that since it's definitively the most widely used Linux (including it's derivatives such as Ubuntu) the support, community and number of pre-compiled packages available is extremely extensive. The bad thing about Debian is that it's geared towards being a stable production environment and as such rarely offers you the latest bleeding-edge stuff that you might want to try out as developer.
2) Arch-Linux (ArchBang actually) is my current favorite for 3 reasons: - It doesn't provide much in the way of easy one-click install and configure stuff but has a great tutorial to help you get everything set up like you want, this approach allows you to learn a lot about how things work in the background and means that by te time you've got everything set up properly you'll be feeling pretty damn comfortable using a Linux/Unix system. - It's rolling release, wich means you'll never have to download the new version and reinstall everything, you just update the system and Voila !. - It tries to implement all the lastest bleeding edge stuff so you'll always be keeping on top of new improvements to the software, and as a developer that's really appreciable. -Oh and it has a great community too.
But anyway it basically is up to you to try out a few stuff and decide what works best for you, what I can garanty is that no matter wich Linux you end up tying there's always a way to configure/customize stuff to your liking, so the big deal is learning how to do that customizing, and then you choose something that's already pre-configured as close as possible to what you want to end up with.
There's more and more different flavors in Linux distros–for instance there are distros like Qimo or DoudouLinux which are oriented for children.
Of course you can change them to fit your needs (we're talking about Linux, right :]), but still, you'll waste a great amount of time.
Some will argue that it's a great way to learn new things. However, you will have to take some time to dig in the distro and tune stuff anyway, it's inevitable with any distro.
But the most important thing is the packages.
Some brings you fresh ones (e.g: Arch) and some others very stable ones (e.g: Debian).
The documentation varies also a lot, as for hardware support (drivers, drivers, drivers!).
Considering these 3 points (packages, documentation, drivers) and your own skills, you should take some time to discover some mainstream distros.
A good start could be here: http://distrowatch.com/
Fedora is an early adopter of new technologies, allowing you to experiment and develop with them months before they're available in most other distros. It supports many programming languages and libraries out of the box, and makes it relatively easy to add to your system any that may be missing. It has a pure open-source philosophy, choosing to allow third parties to provide packages for features that are contrary to that. Just don't call it "Fedora Core" (it lost the "Core" after Core and Extras merged for Fedora 7).
I think, based on my own experience and the answers here, you're looking more for a suite of applications and tools that will make development easier and more practical.
The cool thing about Linux is that any distribution is very easy to customize. I would recommend you find a list of software you use most often while developing and make a large tarball which you can bring from computer to computer (if you switch workspaces a lot).
For Java/Eclipse development, consider Debian over Ubuntu/Linux Mint (and possibly even 32bit over 64bit).
Background: I have been doing some Java / Eclipse RCP* development and have been using Ubuntu and later Linux Mint, but have run into all kinds of annoying bugs, either related to instabilities in the desktop environment (Cinnamon on Linux Mint), or a somewhat complicated procedure to install Sun Java6 JDK (which is used by our project ... Ubuntu/Linux Mint ships only with OpenJDK in their repos).
I recently fired up Debian 6 Squeeze in a virtual machine, and realized how these things were working much better. Installing the Sun Java only requires adding the "non-free" keyword after the main repository string in /etc/apt/sources.list and then installing via apt-get, and the (Gnome2) desktop shipped with it is also much more stable than the Gnome3/Unity/Cinnamon alternatives in Ubuntu/LinuxMint.
[*] Eclipse RCP means that you use Eclipse not only as a GUI but also as a library for building your own GUI, sort of.
Ubuntu is great, seriously.
They have all the packages, up-to-date and easy to install. Use the default configuration (= Gnome) and you will spend most of your time programming and not configuring.
Installing the gcc compiler suite, make, autoconf etc. takes 5 minutes with a decent internet connection. Thirty more minutes and you have Ruby, Python, the Sun JVM and Eclipse ready-to-run.
Edit: Ubuntu delivers extra packages with debug symbols for a lot of libraries. Nice to have for C/C++ developers.
The answer is that there is not a good Linux for development enless you create one and no other linux really provide as much in this area as gentoo. You compile everything from source (something you should be frailer with to be a dev. The installation process teaches you more about the system than any other distro per-answering many questions you are going to have as you create applications.
The best part is you can pick what kind of programs you want to develop. If you want java install javac or gcj or both. Community support is like no other so if you have questions they will be answered or get you where you need to go to find the answer.
Every IDE you can think of is available to "emerge"/ install into gentoo. Though it is not incredibly easy to install or "simple" to understand, nether is programming and if you can not install a copy of gentoo, I would not want to run your programs on my machine. Most of the difficulties people have installing it are derived from a lack of fundamental Linux knowledge. I promise you will like it after you have everything setup the way you like it.
After you get it installed you can make a tar back up and put it on any computer that you have time to reconfigure a kernel for or use it restore when things get out of hand.