13

Possible Duplicate:
Linux distribution geared towards developers

I don't know if this question qualifies to be a question to be asked here. But can anyone tell me what's the best (linux) distro out there for programmers? I program in multiple languages, including java and lisp. I would be happy to know of a distro that's good enough for programmers yet remaining small enough for a quick download+install. Any suggestions and constructive criticisms are welcome. This is my first question here, please help me out.

IDEs I use: Eclipse/Emacs/KDevelop
Languages : C, C++, Java, Python, Perl, Lisp 
3
  • I would add information such as the IDE you're using, if any, target systems for the finished program, are you looking for something to run under a VM? Natively? In parallel to another OS?
    – Didi Kohen
    Oct 28, 2012 at 17:05
  • @DavidKohen I won't go Parallel. I run code in VM and Natively as well. Any distro for these kinds of things? Oct 28, 2012 at 17:12
  • 5
    It doesn't matter what you pick: the tools you'd use are the same. You code in Emacs, compile with GCC, document in groff, view the documentation with man; when stuck, google with Firefox, etc. See where I'm getting? Any distribution will do with minimal variation in how you use the tools. But, as you'd focus on programming, you'd pick a distro that's not goofy/experimental (probably one with a package manager, e.g. Debian) because, you don't want to run in to problems with your OS (that might be undocumented/unknown for a small distro), that would disturb your coding efforts. Good luck! Oct 28, 2012 at 18:41

5 Answers 5

13

There's absolutely no "best" distro for programming. One may argue that Unix in general is more programmer-friendly (and even this is debatable), but comparing distros on this level is just nonsense.

In other word, a skilled Unix user will know how to turn any distro into her favorite programming environment with little efforts. However, depending on your current skill level and the amount of effort you want to put into customizing your system, here're a few preliminary checks you could make:

  • Note the versions of the executables you're interested in, and check if they're present in the repositories of your distros. For instance, certain distros will be notoriously slow to adopt the newest version of Python/Ruby/whatever. You mention Lisp, be aware that 64-bit Debian does not include a package for GNU/MIT Scheme. Java on the other hand is removed from all distros' repos due to stronger licensing since the Oracle takeover. The only packaged version of Java offered by Oracle is an RPM (Red Hat based, SuSE based distros will manage this).

  • If you're doing C/C++, make sure the distro you're choosing supports the architecture you're working on.

  • If you need special compilation options on your executables, it's maybe better to consider adopting a distro that does everything from source like Gentoo, although it's not necessary.

Note: The fact that a distro doesn't present your favorite app in its package manager repository is not that bad. You can always get the source and compile yourself.

About Java: If you're not adopting an RPM-based distro, say Debian, you have a couple of options to run Java:

  • Oracle presents a generic "Java" tarball that should work on any distro, although not through the package manager.

  • You can adopt alternative implementations of the language, like Open-JDK.

Bottom Line

There's no such thing as a "better" distro. Try one, preferably the same one as someone you know, so you have a real person to answer your questions. If it doesn't fit, try another one, until you're good.

Further reading:

Is there a difference of stability between Linux distros?

1
  • Thank you for your kind words :-) Indeed, linux/unix guys are nicest.! :-) :-) Oct 28, 2012 at 17:50
6

Well, the "best" thing about linux is that it's up to you how you going to use it, and for whatever purposes, and it's all free :p I would suggest you to start with debian, it's hairy enough to meet the begginner linux programmers needs on software side and yet it's minimalistic and flexible enough for "users" Would not suggest to use ubuntu since it's not free enough :P

1
  • Thank you for your kind words :-) Indeed, linux/unix guys are nicest.! :-) :-) Oct 28, 2012 at 17:51
5

2015 UPDATE

The situation has changed drastically during the last few years.

Today the answer is: "Run all of them - AT THE SAME TIME!"

As long as you can run Docker on your distro (and there's a good chance that you can) then you can run programs in any Linux distro at will. E.g. see my Docker Experiments and you'll find some shell scripts there that run over 20 (sic!) different Linux distributions on every script invocation. Today it matters even less which distro I use, if every command I run can be executed in any other distro if it makes sense.

Here's my original answer from 2012:

Best Linux distribution

The best Linux distribution for programming is ... all of them. There is really no distribution that I know about that would be bad for programming. The tools and languages that you use are available on every Linux distribution. The differences are not with tools or languages but with package management systems, versioning, philosophy, release schedules, default desktop or software installed by default, but this can usually be changed easily.

Debian

For example if you use Debian Stable then your system will be rock solid but would not get any new features after release, only bug fixes and you never know when the new Debian Stable version comes out: it's released when it's ready.

If you use Debian Unstable then you will have a running version that is always on the cutting edge but you pay the price that not everything is tested as thoroughly as on Stable.

Ubuntu

Ubuntu is based on Debian but the versions are more recent than on Debian Stable and it has a predictable release timeline so you can plan your upgrades ahead of time and you can use the Long Term Support version and be sure to get bug fixes for 5 years.

The other difference is that Ubuntu doesn't support as many architectures as Debian so software that is only available on intel architectures can be used by default while it cannot be used by default on Debian.

The most important difference of Ubuntu other than cosmetics is AppArmour and Upstart but if that is an advantage or disadvantage is entirely up to you. Both Debian and Ubuntu are very developer friendly in my experience.

Arch Linux, CentOS, Fedora, Gentoo, openSUSE, Slackware...

You may also want to see what distros offer commercial support, or if they are available in hosting companies that offer shared hosting, dedicated servers, VPSs etc.

For example Linode currently offer those distributions: Arch Linux 2012.10, CentOS 6.2, Debian 6, Fedora 17, Gentoo, openSUSE 12.1, Slackware 13.37, Ubuntu 10.04 LTS, Ubuntu 11.10, Ubuntu 12.04 LTS and you pretty much can't go wrong choosing any of them. It's nice to have the same system on your laptop than on your server, but then again you might not care. It may give you some idea on how tested and widely used they are, though.

Communities

Another way to make your mind would be to take a look of the online communities of the distros that you are thinking about. For example Ubuntu has Ask Ubuntu here on Stack Exchange so you can check it out.

Documentation

The documentation is also something that may be important to you. There is a nice documentation and wiki for Ubuntu. There are various Debian resource and documentation.

Those are just examples. Every distro has some community and documentation so search for it and see if it satisfies you. Keep in mind that not always the biggest community must be the best for you, you may feel more comfortable with a smaller, maybe even a very special purpose distro, with a community that would highly value your interest and possible contributions.

Live CDs

I would suggest to try as many different distros that you can reasonably try on Live CDs and choose whatever feels right for you.

You can start from the list of Linux-based live CDs on Wikipedia and read the Wikipedia articles about the ones that you are interested in for a good start.

Good luck.

2
  • Thank you for your kind words :-) Indeed, linux/unix guys are nicest.! :-) :-) Oct 28, 2012 at 17:50
  • Great post! About Debian, there are three releases: stable, testing, and unstable. I have used the unstable (nicknamed "sid") distribution for some time and it is not that unstable. I'd recommend it for everyday (night) computer use. I guess, for servers, RTOS:s, etc., you'd like a stable version. Last, about testing different distributions... I'd rather suggest, get one up and running, start do things! Why waste time changing back and forth? Oct 28, 2012 at 22:39
4

I'm going to go ahead and give my biased opinion. I initially began my Unix journey with OpenBSD. After I really got into .Net stuff at work, I began messing around with Mono. OpenBSD's port of mono is quite old and generally just doesn't work well. So, I set out to find something better. What I found was Arch Linux

I think there are a few things about Arch Linux that make it especially geared for programming:

  1. Extremely easy to manually create your own packages
  2. Rolling Release model, so instead of waiting a year for the next release to come out so you can get the latest software, the latest software is usually just there and available. Building from source is usually not required to get the most up to date (stable) version of common software (ie. compilers, interpreters etc)
  3. The whole community seems to be experienced with programming at some level. This is a side-effect of everything not being packaged in a pretty GUI
  4. Minimalistic in nature. Don't want a window manager, don't take one. You choose what is initially installed on your system.
  5. Huge repository of "unsupported" package build scripts. I've never seen a piece of software that didn't have a package build script for Arch Linux. (of course, some may be less than optimal, but it is unsupported after all)
1
  • plus 1 for explaining why Arch is a good idea, unlike the other 2-voted answer that didn't try. Aug 12, 2015 at 19:26
2

Any distro should do; it's up to you. I would suggest Ubuntu: large community, packages available for pretty much everything, lots of stuff working out of the box.

If you're willing to put more time into setting your system up and want/need a more bleeding edge environment, consider Arch Linux.

1
  • Thank you for your kind words :-) Indeed, linux/unix guys are nicest.! :-) :-) Oct 28, 2012 at 17:54

Not the answer you're looking for? Browse other questions tagged .