More popular versions of Linux such as Ubuntu focus on enhancing the user experience by automatically updating packages and providing flashy, resource-heavy GUIs.
While user-friendly distributions (distros) certainly have their place, in this guide, we've tried to get back to the glory days when developers would customise their Linux build. These Linux distros allow you to fine-tune your development environment so whether you're a veteran programmer or relative newcomer, you can get on with your coding.
In short, whatever your programming preferences, you’ll find a distro to suit your needs in this top 10 roundup.
- These are the best Linux training providers and online courses in 2017
1. Arch Linux
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 OS which is included with the Raspberry Pi. As the Pi was designed as an educational tool, Raspbian is the perfect system for those interested in getting started with coding.
The Raspberry Pi website has excellent 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. 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, Fedora also comes with DevAssistant, which automates the process of setting up your development environment and publishing your code with simple commands.
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-produced 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.
This results in a highly stable system. The CentOS repository also contains the Developer Toolset 2.0, 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 and PHP.
10. Puppy Linux
Puppy Linux is an extremely lightweight distro based on either Ubuntu or Slackware. The entire OS is only around 220MB 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.