5 rock-solid Linux distros for developers

Developers want power, flexibility, stability, and ease, and these Linux distributions have it all

Developers love things their way and no other way. To that end, Linux stands to be the ultimate developer’s desktop environment. Linux is endlessly customizable, and it provides easy access to nearly all the software a developer might need. But a good Linux for developers must have other key attributes—like a comfortable work environment, good documentation, and useful features that a developer can benefit from generally.

Here we look at five major Linux distributions from the developer’s point of view and how they shape up to meet a developer’s needs. All of these are major, mainline projects, with years if not decades of user support and development behind them. There’s little risk in making any of them the basis for one’s development environment.

That said, each of these distros—Ubuntu, Mint, Fedora, CentOS, and OpenSuse—has different strengths and weaknesses, and each balances the needs for flexibility, ease, and stability in its own way. Depending on the balance you seek, you will undoubtedly be drawn to some more than others.

Ubuntu and its derivative Linux Mint both deliver a high level of polish and signature conveniences to users. Fedora stays current with each release, although the pace of release cycles may be too fast for those who want a set-and-forget experience. CentOS seems best for those who intend to develop specifically for RHEL, but it should also appeal to developers who want as little change from version to version as possible. Finally, OpenSuse Leap will woo plenty of developers with its smart setup, subvolumes, and the powerful tool set it provides for file system management.  

Ubuntu Desktop 16.04 LTS

A small cadre of Linux distributions hold sway as the most common and most reliable choices for users. Ubuntu Desktop is easily one of the most popular, and it's certainly one of the most highly regarded and most polished. The level of professionalism associated with Ubuntu, especially with its LTS (Long Term Support) editions, places it as one of the go-to distros for developers. It’s hard to go wrong with Ubuntu.

When choosing Ubuntu, it makes the most sense for developers to use LTS editions, which receive five straight years of support. With LTS editions, you can put off the jarring changes to the system that often come with major point revisions, but not deprive yourself of security updates. Developers hate having to stop everything and reconfigure their environments because of a wholly new OS version. With an LTS edition, you can have both peace and peace of mind.

Another nice plus: The install process for Ubuntu gives you the option to add support for proprietary hardware drivers and software elements. Not every developer needs these, but they’re provided as a convenient one-and-done option at the outset. Also, if you’re doing your Linux development work in a VirtualBox VM, Ubuntu 16.04 LTS pre-installs drivers to allow display rescaling and mouse integration. (It does not, however, seem to pre-install clipboard support utilities. If you want those, you’ll need to install the VirtualBox Guest Additions.)

Ubuntu’s default Unity desktop environment has a lot going for it from a programmer’s point of view. Clean, consistent, and unobtrusive, Unity puts the essentials at your fingertips while mostly staying out of the way. If you would prefer to use a different environment, it’s possible to add one through the command line, but Ubuntu also supplies a slew of respins with alternative desktops (including GNOME, KDE, Xfce, and LXDE) preloaded.

One especially developer-friendly feature in Ubuntu is a command-line tool called Ubuntu Make (not installed by default, but that’s easy to fix). Umake, as it’s also known, provides developers with a convenient way to install the entire development stack, tools, and various IDEs for Node.js, Dart, Rust, Swift, Go, Scala, Android, and so on. This is doubly useful in an environment like Ubuntu Desktop 16.04 LTS, because it allows the development stack itself to be kept up-to-date without potentially gumming up the rest of the system.

Finally, a wide variety of IDEs is available directly through Canonical’s repositories. You’ll find not only Eclipse, NetBeans, and MonoDevelop but also lesser-known projects like Ninja, Anjuta, and Geany. There’s also no shortage of plain old editors, from GNU Emacs to Bluefish.

ubuntu IDG

A broad range of development tools is available in Ubuntu by default from Canonical’s repositories.

Linux Mint 18.1

Linux Mint is an Ubuntu derivative, but it differs enough from Ubuntu to warrant its own discussion. The overarching goal of Mint is to provide a comfortable desktop environment, with almost all of the common decisions about the setup process already made for you. What’s the point of a developer going with a user distro, you might ask?

One reason is simple: A developer is also a user, and many of the features that make users comfortable also please developers. The Mint setup process, for instance, requires little decision-making if you simply want a functional system out of the box. Because the default file system is ext4 with both OS and user data on the same partition, you can always customize your creation—for instance, BtrFS for the OS and XFS for user data a la OpenSuse. But Mint’s defaults are sane, and by checking a single box you can install all of the third-party and closed-source drivers that are often used in a desktop environment.

Mint’s signature desktop, called Cinnamon, hews closely enough to Windows XP and Windows 7 to be immediately useful to non-Linux natives. It’s malleable if you need it to be, but useful enough out of the box without tweaking. That said, Cinnamon (and Mint itself) is highly configurable, scriptable, and customizable. Much of the development done is in Python, JavaScript, and C, meaning that any developer with experience in the first two can dive in and tweak the system freely.

The software available in Mint’s default repositories is an echo of what’s in Ubuntu. That’s more good news for developers, since Ubuntu comes well-equipped in that regard. Many popular development tools—Eclipse, NetBeans, Geany, MonoDevelop, Lazarus (the Free Pascal IDE), and so on—are readily available without having to connect to an external repo or install from a download. You can also install Ubuntu Make from the Linux Mint community site, putting Umake’s development stacks at your fingertips.

Finally, since all the Mint releases are based on Ubuntu LTS releases, they’re guaranteed to have a long window of service updates. Mint 18.1, for instance, is scheduled to have support until April 2021.

mint IDG

The software selection in Mint’s repositories closely follows what’s available in Ubuntu. You can even use Ubuntu Make to install development stacks and tools for your favorite languages.

Fedora 25

Fedora has long served as a bleeding-edge proving ground for features that might eventually make it into Red Hat Enterprise Linux. It has also become a good desktop environment for Linux developers, particularly now that Fedora has been split into separate desktop, server, and cloud editions. The desktop edition is of course the focus here.

Fedora’s twice-a-year release cycle is both good news and bad news for devs who hate having everything refreshed on them. Good news: A new release does not automatically invalidate the existing one, so you can stick with a given release of Fedora for some time. Bad news: Individual releases are supported for only 13 months after release, and there are no long-term support releases. If you pick Fedora, you will need to perform a full upgrade at least once a year if you don’t want to lose support. That means you may want to keep your user and development data on a separate partition in case you need to completely swab the decks.

Fedora’s default desktop is GNOME 3, which is reasonably unobtrusive and easy to navigate. Developers who want a more minimal desktop experience can install another desktop, or simply grab another edition of Fedora (one of its Spins) with an alternative desktop pre-installed. KDE Plasma, XFCE, LXDE, Mate-Compiz, Cinnamon, and even the OLPC SOAS desktop are all available.

An entire section of the release notes for each new version of Fedora is aimed specifically at developers using the OS. Those notes go into detail about the different language runtimes packaged with Fedora and the new tools available for different languages (such as what’s new for GCC users in the notes for Fedora 24).

Fedora’s quick upgrade cycle means that the bundled languages and runtimes tend to be the most recent versions suitable for production. For instance, Fedora 25 includes Ruby on Rails 5.0 and Go 1.7. You’ll even find Mozilla’s Rust in the latest Fedora—a sign of how Fedora’s maintainers look to both the future and the present. Multiple editions of Python are all available side by side, along with PyPy and Jython. The most recent production release of Docker is included, too.

The development tools in Fedora’s software repositories range from traditional offerings like Eclipse and Vim to the likes of MonoDevelop, Code::Blocks, and Geany. You’ll even find IDEs for the Arduino and MCU 8501 hardware boards. There isn’t the variety you get with Ubuntu, but with Red Hat’s ubiquitous RPM package format, Docker, and Flatpak support, you have plenty of options for adding third-party software.

fedora IDG

Fedora’s roster of built-in and on-demand application development tools includes even leading-edge language runtimes.

CentOS7

Known among Red Hat aficionados as the RHEL clone with the serial numbers filed off, CentOS is for people who want RHEL’s stability and long support lifecycle but don’t want to pay for RHEL’s branding or support. Although the CentOS project and Red Hat started working together in 2014, CentOS is technically an independent project, and it offers a few versions of the RHEL code that are likely to appeal to developers.

The main motivations for using CentOS come down to the overall stability of the system and its complete binary compatibility with RHEL. If you’re developing software specifically for RHEL, compatibility will be the most important reason, but many devs are attracted to the RHEL-like stability, since it guarantees a predictable and reproducible environment. And like RHEL itself, specific editions of CentOS are supported for years on end. CentOS 7, for instance, will receive updates until June 30, 2024.

Now the bad news. First, the software provided in a given edition of CentOS is almost never changed. Support for the OS consists of bug and security fixes for the major versions of each package shipped with the OS, but does not include actual upgrades to those packages. One example: The version of Nmap that ships with CentOS 7 is 6.40, whereas the version that ships with Fedora is 7.12.

More bad news: Many common components found in a desktop build are not included by default in any of the CentOS editions. For instance, you won’t find support for MP3 playback in any of the default CentOS repositories. The same is true regarding common development tools like IDEs. About the only development tools available in CentOS by default are old reliables like Emacs and Vim.

This isn’t hard to work around, though. One of the biggest third-party repositories for CentOS, the Red Hat Software Collections repo, provides (as the name implies) software collections to address specific needs. The “devtoolset” collection, for instance, contains Eclipse, along with all of its support software. Setup takes only a couple of lines of typing: sudo yum install centos-release-scl and sudo yum install devtoolset-4. Another possibility, and one that devs might find particularly attractive depending on what they’re doing, is to install Docker and use container images for their software needs.

The setup process for CentOS is nearly identical to that for Fedora. The only major differences are options like whether or not to install utilities like kdump or enable security policies. However, if you want anything like a complete desktop development environment, you will have to set it up yourself post-install, either by hand or through the third-party repos described above.

Alternatively, you could snag one of CentOS’s more desktop-friendly respins like LiveGNOME and LiveKDE. (I went with LiveGNOME for the sake of this review.) However, while those versions give you a desktop environment, they don’t provide much in the way of additional developer- or desktop-centric software. Again, you’ll have to bring your own tools.

centos IDG

Tools like Eclipse aren’t available in the default repositories for CentOS, but they can be added by way of mechanisms like Red Hat Software Collections.

OpenSuse Leap

OpenSuse Leap is Suse’s new twist on a desktop-oriented distribution for enterprises. The guiding philosophy is to blend the maturity and reliability of the mainline Suse Linux Enterprise product with support for modern hardware and more regularly updated software. Leap is like a blend of the Fedora and RHEL (or CentOS) approaches, but its biggest appeal for developers will likely be its smart configuration defaults.

1 2 Page 1
Page 1 of 2