One of the more recent directions of Linux appears to have been to simplify the user experience, in order to make it more familiar and friendly to Windows users. After all, enticing users from Windows to the joys of Linux can hardly be a bad thing, right?
And yet to achieve that means some degree of compromise to the Linux environment itself.
Originally a haven for coders, flavors that aim to simplify Linux for users can result in problems for more experienced users. Too many programs and software addons can result in interference and bugs being introduced when trying to code your own programming.
This can especially be a problem for developers who need as much of an uncluttered work space as possible – or at the very least, as little interference as possible from other applications.
So while making Linux attractive for a wider user base has its uses, it also has its limitations. This is one reason why some distros look to ensure the experience can be either simplified or more customized. This means only the most necessary software boots up, or can be selected to do so, leaving plenty of room and resources for user programming,
We'll therefore take a look at some of the more flexible flavors that allow a greater feature range than just appealing to the newer user, and so allow for a much more personalized experience.
Here then are the best Linux distros for developers.
- These are the best Linux training providers and online courses
- 10 of the best Linux distros for privacy fiends and security buffs
- 10 best Linux distros: which one is right for you?
- What's the best Linux distro for beginners?
- How to choose the best Linux distro for laptops
- 10 of the most popular lightweight Linux distros
- Want your company or services to be added to this buyer’s guide? Please email your request to [email protected] with the URL of the buying guide in the subject line.
Arch Linux offers a powerful level of customisation during setup, allowing you to download and install only the packages you need. While this is definitely not for newbies to coding, the fact you can install only a minimal number of programs on your machine using the Arch Build System and Arch User Repository, reduces the possibility of anything interfering with your coding.
This means, for instance, that you can install a barebones window manager like i3 to be certain your system will respond quickly when using your chosen text editor. If you run into difficulty, the Arch Linux Wiki offers a helpful installation guide.
Debian is one of the oldest Linux distros and is built with stability in mind. All programs included with Debian have to meet the Debian Free Software Guidelines. Packages are carefully selected and tested for inclusion in the 'Stable' branch of Debian meaning that while some may be dated, there's very little chance of system instability, making this OS ideal for programmers.
The Debian website has extensive manuals, including a chapter on programming talking you through the basics of creating a script, compiling it, and using Autoconf to allow your scripts to be compiled on other Linux distros.
Raspbian is the default operating system which is included with the Raspberry Pi. As the Pi was designed as an educational tool, Raspbian is the perfect OS for those interested in getting started with coding.
The Raspberry Pi website hosts some impressive guides on using the visual programming tool Scratch, which is used to create animations and games. There's also an excellent section on getting started with Python, which is supported out of the box.
Younger coders might prefer to learn to use the programming language for Minecraft Pi, a mini-version of the highly popular sandbox game.
Named after the fast-swimming penguin, Gentoo is sometimes called a 'meta' distribution as users download and compile its source code manually according to their needs. This not only makes it a perfect match for the hardware requirements of your machine, but it allows you to decide exactly which versions of packages can be installed.
Gentoo suffered a minor setback a few years ago when its comprehensive Wiki went offline. Fortunately, it has since been restored and now includes the official Gentoo handbook. There's also a small diehard Gentoo following on Reddit if you need further help.
Unlike barebones distros like Arch Linux and Gentoo, Ubuntu is designed to be ideal for beginners, complete with a desktop interface and automatic updates.
Ubuntu is the chosen distro of the Android Open Source Project for building source files. The Android build is regularly tested using the most recent versions of Ubuntu.
You can also install other development environments using Ubuntu Make.
Ubuntu now supports the 'snaps' application packaging format, using the Snapcraft tool, which allows you to write apps in the programming language of your choice and package them with all the required dependencies. Visit the Ubuntu Developer portal here.
Fedora is a community supported derivative of the commercial distribution Red Hat Linux. It also enjoys the distinction of being the distro of choice of Linux kernel creator Linus Torvalds.
Aside from being very easy to set up and install, Fedora has a dedicated Developer Portal. Simply click 'Start a Project' to see dedicated guides on developing web, command line, desktop and mobile apps. There's also an excellent section on working with hardware devices such as Arduino.
If this wasn’t enough, the Fedora repositories also include Eclipse, a fully featured and multi-language IDE. Eclipse is probably best known for Java, but also has a C/C++ and PHP IDE. You can expand its functionality even further with plugins.
OpenSUSE (formerly SUSE Linux) is a distribution specifically designed for software developers and system administrators. Installation and system configuration is a breeze with the integrated YaST tool. This allows you to install all the '-devel' packages needed by developers with one click.
OpenSUSE comes preinstalled with all the basic tools a software developer needs, such as the Vim and Emacs text editors, build automation tools such as CMake and packaging tools like RPM. The operating system also comes with OBS (Open Build Service), a tool for developers to build software for various distros and platforms.
Like Fedora, CentOS is a free, community-based variant of Red Hat (a commercial version of Linux). Many of the packages are the same and theoretically it's possible to build a version of CentOS which is functionally identical to Red Hat itself, although this is difficult to achieve in practice.
This results in a highly stable system. The CentOS repository also contains the Developer Toolset, which boasts a range of essential programming tools.
For developers, the Xen virtualisation platform offers a way to compartmentalise your projects and run applications safely inside a virtual machine.
You can find instructions on how to do this and other developer tips in the excellent CentOS Wiki.
Solus is special in that it's one of the few Irish Linux distros, and also because it follows a curated rolling release model. The advantage of this is that once you've installed the OS, you can keep running updates rather than a major upgrade. Solus, however, tries to avoid installing extremely recent packages and beta software to maintain system stability.
Solus supports several editors and IDEs such as Atom, Idea and Gnome Builder, as well as the Git GUI, GitKraken. The Solus project website also claims that the OS supports a number of programming languages such as Go, Rust, PHP, Node.js and Ruby.
Puppy Linux is an extremely lightweight distro based on either Ubuntu or Slackware. The entire OS is only around 330MB in size, meaning it can be run entirely in RAM as well as installed to an ordinary hard disk. It comes with a minimal number of packages, although you can add more, such as devx which contains various development tools.
The Puppy Linux 'Wikka' details the programming languages supported by the OS. One notable language is BaCon, which can convert code written in BASIC to C.
The Wikka also has an extensive selection of tutorials on writing Bash scripts and getting started with Python.