This article is for those of you who are Linux-users/Distro-hoppers who are trying to find the perfect distro to do Programming/Software Developing activities in. Let’ go ahead and explore what choice we have and analyze their differences in an attempt to choose the best Linux Distro for Programming/Software Developing activities.
Let’s start by look at the short version of the answer for those of you in a hurry to start your Software development quests!
The Short Version Of The Answer
Distro#1: Ubuntu and its derivatives
Distro#2: Fedora and the RHEL family of distros
That is just the short version of the answer, let’s go ahead and look at the longer and more informative version and learn what were the factors considered, what other choices you have and see why Ubuntu is chosen as the best distro for Developing Software along with some valuable resources for getting started with your Software development quests!
If you have done some research on finding the best Linux distro for programmers and developers, you will find that most answers around the internet will say go for any distro and distro choice does not matter. While this is true for Advanced Linux users, this is not true for beginners to the world of Linux!
That’s because advanced users, who have been using Linux for a few years already can tinker around and hack their way to solve possible issues that come up during day to day programming activities, but this tinkering around without experience can be a daunting experience for beginners and will certainly reduce their overall productivity for the first few months, to say the least. Since one of the main reasons programmers try out Linux is to increase their productivity by automating repetitive tasks, if they choose the wrong distro to begin their journey of Programming on Linux, this can lead to a bitter experience and make them quit and go back to Mac or Windows.
Our goal of this analysis is to find out what factors are important for software developers and find the best distro that can fulfil these needs and can be set up with the least amount of hassles.
Linux & The Desktop Arena
Linux has already captured a huge percentage of the server market and it is the most dominant player there. As Linux is getting more and more famous lots of distros are being developed to enhance the desktop support for Linux.
The setup programmers would need for coding will be radically different than the setup artists and video editors would need for content creation and editing! Hence some factors that are considered important for using Linux as a workstation depends upon the kind of work that you are planning to do with it.
But some factors are common across all types of work. These include
- support &
If you plan to do all of your productive activities over on your next Linux distro then I suggest reading the article I wrote recently given in the link below where I have analyzed and compared several options in order to figure out what is the best distro for workstation purposes.
Reasons Linux is The Best for Software Development
It is no secret that programmers love Linux. This is despite the fact that many better IDEs for software development are available for use exclusively in other operating systems like Windows and Mac’s OSX. I myself have recently switched to Linux and have moved all my software development work to Linux from Windows. In this section let’s explore some of the reasons which push Software engineers to Linux.
The Top 7 reasons that make programmers love Linux are the following!
- Reason#1: There are more devices running Linux than Windows and OSX running devices combined!
- Reason#2: Freedom that comes with Open-Source free software
- Reason#3: Lack of options on the other operating systems
- Reason#4: Ability to automate tasks using GNU Tools
- Reason#5: Sophisticated tools
- Reason#6: Easy of installing and updating software
- Reason#7: Efficient usage of resources
If you wish to read more about the above reasons I recommend reading this article below where I have described the above 7 reasons in detail!
Next, let’s look at the needs of software developers so that we have a list of factors to consider while choosing the best distro!
Needs of Software Developers
Software development is a huge arena filled with various technologies targeted at various sectors. There are several types of software engineers like the ones who develop web applications (front end, backend or Full-Stack), Java developers, Python developers, Android developers, Firmware developers, Machine Learning and AI developers etc.
But all these developers have the following basic needs in common
Basic Needs of All Programmers
The following needs are the common ones among all programmers
- A good code editor: VS Code, Atom, Sublime Text or Brackets.
- Virtualization software to test your apps on several operating systems: On Linux, you have support for VirtualBox and GNOME Boxes
- Source code management software like Git
- DevOps tools like GitLab
- Good community support for solving any issues that might come up
These needs are common no matter which technology you are developing on, be it web development or android development everyone is going to need all of the above-mentioned tools for their development activities. But that is not all you are going to need, as platform-specific tools are a must since the entire industry is very competitive and you are going to need all the resources you can get to help you stay on top of your performance and productivity!
Programming Language-specific needs
These are the 4 main platform-specific tools that you are going to need!
- Support for your programming language/technology
- Support for the favourite IDE that’s best for your programming language
- Support for frameworks, libraries and software development kits for your programming language
- Support for special tools that you might need
Now that we have seen the Needs of Software developers, let’s go ahead and have a look at the distro choices we have to fulfil the above needs
The Distro Choices To Fulfil These Needs
Below are the 3 most popular distro families
- The Debian Family: Debian, Ubuntu, Linux Mint, etc
- The RedHat Family: Fedora and CentOS
- The Arch family: Arch, Manjaro, etc
- Other distros like Gentoo, Solus, etc.
The above distros are the most popular distro families, as such, they come with excellent online community support and good online repositories with most software packages.
Now that we have seen the distro choices, let go ahead and have a look at 7 different fields of software development and see which distro is best for those particular fields.
7 Different Software Development Fields
I have written separate articles on the following platforms, be sure to check them out if you line of work matches with one of these platforms.
#1. Java Developers
The article below is an analysis to choose the perfect distro to do Java programming in. The article explores the available choices we have and analyses their differences in an attempt to choose the best Linux Distro for Java Development activities.
#2. Android Developers
The article below is an analysis to choose the perfect distro to do Android development in. The article explores the available choices we have and analyses their differences in an attempt to choose the best Linux Distro for Android Development activities.
#3. Python Developers
The article below is an analysis to choose the perfect distro to do Python development in. The article explores the available choices we have and analyses their differences in an attempt to choose the best Linux Distro for Python Development activities.
#4. Front end developers
The article below is an analysis to choose the perfect distro to do Python development in. The article explores the available choices we have and analyses their differences in an attempt to choose the best Linux Distro for Front-end Development activities.
#5. Node.js Developers
The article below is an analysis to choose the perfect distro to do Python development in. The article explores the available choices we have and analyses their differences in an attempt to choose the best Linux Distro for Node.js Development activities.
#6. Full-stack Web developers
The article below is an analysis to choose the perfect distro to do Python development in. The article explores the available choices we have and analyses their differences in an attempt to choose the best Linux Distro for Web Development activities.
#7. Machine Learning and AI developers
The article below is an analysis to choose the perfect distro to do Python development in. The article explores the available choices we have and analyses their differences in an attempt to choose the best Linux Distro for Machine learning and AI Development activities.
Best Distros for Software Developers
After researching and writing all these articles, one thing I noticed is the fact that for most of the above categories (Android being an exception) Ubuntu came out on top and Fedora came in second place! Analysing the reasons, it became clear that the main reasons behind Ubuntu and Fedora coming out on top is because of the following 6 facts
- The biggest user base in the Linux World
- Best Online Community Support for solving day to day issues
- Most IDE companies test their products against these 2 distros
- Most software developers use these distros
- Official repository support for most packages: Both software applications and drivers
If you are interested in reading more about the 6th fact above, I recommend that you read the article below.
These are the 6 facts that make Ubuntu and Fedora come out on top among a multitude of distros in the Linux world when it comes to programming and software development activities!
Reason Ubuntu and derivatives get 1st place
The reason Ubuntu gets the first place over Fedora are the following
- Ubuntu has a slightly larger user base and online community as opposed to Fedora
- Ubuntu is more beginner-friendly
- Ubuntu is considered more stable than Fedora, as only the tested software gets released from the official repos.
If you are uncomfortable with their Unity desktop, you can go ahead with one of their other flavors like Kubuntu, Xubuntu, Lubuntu, etc. You can read more about these flavors in my other article given below.
Debian is considered to be a distro for advanced users and hence it does not have a big user base. The same goes for other derivatives of Debian which does not have a large user base as Ubuntu. This leaves us with Ubuntu and flavors of Ubuntu as our best bet for IDE compatibility purposes!
Reason Fedora gets 2nd place
Fedora is from the RedHat family, it is used as a testing ground by RedHat to test their latest features before releasing them in their RHEL enterprise edition. Hence Fedora is the most popular distro in terms of support for the latest advancements in the field of Linux. It also has a big user base, only second to Ubuntu. Due to their big user base, this is another distro IDE developers test their software again.
If your app is supposed to be run from a server or a cloud, then since most of the servers are running RHEL, it makes sense that you use Fedora do develop your app. As a bonus, you get to work with some experimental features months and sometimes even years before you get them in Debian based distros like Ubuntu!
What about Arch and Family?
Arch and its derivatives are all about catering to the needs of advanced users who can tinker their way through problems. Hence the IDE companies don’t invest much of their resources in testing their app in the Arch Ecosystem as the Arch users are proficient enough to solve any problems they might come across.
Thus as a beginner, I would recommend going for Ubuntu family of distros. If you were to ask me to recommend a particular distro/flavour I would recommend trying out either Linux Mint or Kubuntu for your development activities. If the latest packages are not available on the official repo, you can always download directly from the software provider and install the latest packages! If you have been around the Linux world for a while and you wish to change from Ubuntu, then try out Fedora!
After a few months of developing on these beginner-friendly distros, you can always move your development activities to a more customized and efficient environment, perhaps just a terminal and a window manager!
And with that, I will conclude this article!
I hope you guys enjoyed this article and learned something useful.
If you liked the post, feel free to share this post with your friends and colleagues!
Here are some of my other articles that might interest you!