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.

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 
share|improve this question

marked as duplicate by Mat, jasonwryan, rahmu, Renan, Gilles Oct 28 '12 at 21:54

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

    
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? –  David Kohen Oct 28 '12 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? –  Prototype Stark Oct 28 '12 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! –  Emanuel Berg Oct 28 '12 at 18:41

5 Answers 5

up vote 6 down vote accepted

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

share|improve this answer
    
Thank you for your kind words :-) Indeed, linux/unix guys are nicest.! :-) :-) –  Prototype Stark Oct 28 '12 at 17:51

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?

share|improve this answer
    
Thank you for your kind words :-) Indeed, linux/unix guys are nicest.! :-) :-) –  Prototype Stark Oct 28 '12 at 17:50

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.

share|improve this answer
    
Thank you for your kind words :-) Indeed, linux/unix guys are nicest.! :-) :-) –  Prototype Stark Oct 28 '12 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? –  Emanuel Berg Oct 28 '12 at 22:39

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.

share|improve this answer
    
Thank you for your kind words :-) Indeed, linux/unix guys are nicest.! :-) :-) –  Prototype Stark Oct 28 '12 at 17:54

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)
share|improve this answer

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