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?
|show 1 more comment|
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:
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.
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.
|show 2 more comments|
I don't agree with @Juaco.
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).
|show 1 more comment|
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.
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.
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.