Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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?

share|improve this question

closed as too broad by Braiam, garethTheRed, Ramesh, slm Aug 23 at 19:17

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Open discussions are not appropriate to post here. –  Ignacio Vazquez-Abrams Nov 8 '11 at 2:58
2  
I edited your question so that it avoids closing. –  MaxMackie Nov 8 '11 at 3:04
2  
@MaxMackie that you man.... –  Jaison Justus Nov 8 '11 at 4:54
9  
You should specify a bit what you mean - Developers have very strong (and often opposing) views of what constitutes a developer-friendly distro. –  l0b0 Nov 8 '11 at 14:28
1  
@l0b0: Developers need a big selection of up-to-date packages. Updating packages manually because they are too old, not vanilla enough or just not in the distro's repository is a waste of time. End users usually don't care if the up-to-date libxyz-dev package is inside the repository. –  Philip Nov 22 '11 at 20:31

9 Answers 9

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.

share|improve this answer
    
Of course FreeBSD is not a Linux system. That may not matter for the OP's purposes. Note that there are several other BSD distributions (OpenBSD, NetBSD, and I've probably missed some). There's also a free version of Solaris if you're into that kind of thing. –  Keith Thompson Nov 8 '11 at 20:58
    
No, it isn't, and I'm guessing that it may or may not matter for much the same reasons. I picked that one because most of the other BSD distros are pretty specialised, perhaps witht he exception of Dragonfly or PC-BSD. FreeBSD is about the most mainstream of the BSDs, I guess. –  ConcernedOfTunbridgeWells Nov 8 '11 at 21:42
2  
IMHO only bullet points one and three are relevant to developers. Tuning or Unix experience are only interesting for power users and sys admins. They lead to incompatibilities (Unix) and unpredictable instabilities (Tuning), both poison for developers. –  Philip Nov 22 '11 at 20:24
    
The BSDs and Solaris are sorely lacking in hardware support, and after having had an advantage of sorts in networking the BSDs have lost out on that end too. –  vonbrand Jan 16 '13 at 12:36

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.

share|improve this answer
4  
It's silly to say that it's a silly question to ask for a "developer oriented" Linux unless you provide good arguments for why it's silly. –  N.N. Nov 8 '11 at 22:08
3  
In fairness, juaco is right. Linux is good for developers, period. –  Sirex Nov 10 '11 at 11:49
4  
You really need to qualify "Fedora is as good as any Debian, Slackware...". Surely there's must be reasons why there are different distros, and that means they can't be equally good in any given task for different people. –  Tshepang Nov 14 '11 at 9:19
    
@Tshepang:You're right, they aren't equally good "for any given task" except for development. For other tasks they do sometimes show differences, but for dev'ing, all major distros are equally good. –  ata Nov 14 '11 at 12:39
1  
Doing my work I need stable environment. Considering this eg. Fedora and Ubuntu are far from stable and I don't recommend them. You can say "Linux is good for developers" to Windows user because it's general state. When you're talking to Linux users they probably are interested in more particular things which would improve their efficiency. –  marines Feb 5 '13 at 10:52

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.

share|improve this answer

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/

share|improve this answer
    
I did say major distributions ie. mainstream, to refer to the fact that there aren't big differences between these when it comes to development. I'm not referring to niche distros. –  ata Oct 6 '12 at 2:29

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).

share|improve this answer
    
Who called it Fedora Core? –  Tshepang Nov 8 '11 at 8:22
    
Plenty of people. For years. –  Ignacio Vazquez-Abrams Nov 8 '11 at 8:25
    
@IgnacioVazquez-Abrams what about gentoo and archlinux –  Jaison Justus Nov 8 '11 at 8:30
    
I can't tell you about distros I don't use. But certainly don't try to correlate "builds from source" with "good for programming". –  Ignacio Vazquez-Abrams Nov 8 '11 at 8:32
3  
@IgnacioVazquez-Abrams: You should also not correlate uses newer technologies with better to develop on. Anyways, the question is not specific enough... it depends on what you are developing. I'd bet most of the world's development relies on not-bleeding edge technology. OTOH, Fedora is the distro I'd suggest if one wanted to do GNOME development, same as SuSE for Mono and KDE development (this based on the fact that SuSE is the initial funders of Mono project and is among the few major distros to embrace KDE as default desktop. –  Tshepang Nov 8 '11 at 9:29

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).

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer
    
Your comments apply to nearly every other Linux distribution! –  fpmurphy1 Nov 22 '11 at 16:03
    
Interesting... go2linux.org/debian-ubuntu-centos-fedora-comparison and oswatershed.org (right column) Trust me, Ubuntu is developer's friend. –  Philip Nov 22 '11 at 20:19
    
ubuntu is a windows rewrite of unix –  Joe Oct 5 '12 at 21:46

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.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.