So, which operating system is the best when it comes to software engineering? While this might seem like it should be a relatively simple question to answer, it really isn't.
Like anything in life, different solutions have advantages and disadvantages over one another, and any final choice is a matter of balancing the strengths and weaknesses of each. That being said, let's take a quick look at some of the most common choices.
What do Operating Systems do?
An operating system, for all intents and purposes, is the most important software that runs on any computer. It effectively manages the computer's memory and processes, as well as all of its software and hardware.
Simply speaking, a computer's OS also allows you, the user, to communicate with the computer without knowing how to speak the computer's language. Without an operating system, a computer is simply an expensive piece of furniture.
"Your computer's operating system (OS) manages all of the software and hardware on the computer. Most of the time, there are several different computer programs running at the same time, and they all need to access your computer's central processing unit (CPU), memory, and storage. The operating system coordinates all of this to make sure each program gets what it needs." GCF Global.
There are several main options for you to choose from, and, depending on your needs, you should weigh up the pros and cons of each. At times your choice of OS may be predetermined, but there are some OS' that are leagues ahead of the rest.
Which OS is best for software development?
We will discuss this in more detail further on in this article, but one of the most popular OS' tends to be Linux. This is true for a number of reasons, but the main reason that this is the go-to OS for software engineers is that it tends to be a lot faster than Windows or even some macOS (formerly OS X) systems.
macOS, however, also comes highly recommended by programmers. Especially for any Unix-type developments. However, it should be noted that Apple will begin to transition their Macs to its world-class Apple silicon, which will integrate Linux as standard without the need for the Visualization tool, or any modification to iOS and iPadOS.
It should also be noted that the operating system you might want to choose will depend on what apps or software you are developing, and your personal preference (to a degree). For example, if you are developing software for the Microsoft ecosystem, you will pretty much have your hand forced.
For deployment on Windows, Windows Phone, Surface, web stuff using .NET, etc., Windows is your only real option.
In fact, unless you are developing apps and software under your own steam, you will likely have your hand forced by the company you work for. This is especially true if you are working as part of a team as, ideally, all members will be using the same operating system and other IT environments.
If you don't have this restriction, the best advice is to choose, at least initially, the operating system that you feel most comfortable using. Especially ones which offer the tools, and other features, that you need or like to use.
Of course, you can find solutions that will give you the best of all worlds. You could consider running a split partition with Windows and macOS plus using an external drive for Linux (or a remote server)?
The choice, as they say, is yours.
What are some of the most popular operating systems for software engineers?
We should note that a lot of software engineers will not necessarily prefer one over the other, and, in fact, there isn't an obvious "best" option for most. The ultimate choice will be a mixture of personal preference, current work practice at a company, and platform(s) which the software will run on.
We will focus mainly on Windows, macOS, and Linux here but will also discuss some other very popular operating systems, too. We will also offer some of the pros and cons of each featured OS.
And so, without further ado, here are some of the most popular, and highly recommended, operating systems used by software engineers around the world. The following is in no particular order and is far from exhaustive.
1. GNU/Linux is a very popular operating system for software engineers
GNU/Linux is, hands down, the most highly acclaimed operating system for software engineering. It comes with an absolute ton of development tools and has unprecedented performance with regard to software development.
Linux, in case you are not aware, is a free, open-licensed operating system. This means that it is very developer-friendly and can be, to a certain extent, customized to your own desires.
But, it is not for everyone.
Linux comes with a large selection of distributions (called distros in the trade). Each one, unsurprisingly, has the Linux Kernel at its core, with other components built on top. Many Linux users will tend to switch between these distros until they find the perfect 'recipe' for their needs and tastes.
We will highlight a few of these towards the end of the article.
What are some of the pros of using Linux for software development?
1. One of the main benefits of Linux, not to mention the Linux ecosystem, according to software engineers, is the amount of choice and flexibility it provides. This really does make it the jewel in the crown of operating systems.
2. Linux is free and open-sourced. This means you don't have to fork out tons of cash on licenses for the OS and other apps used on it.
3. It is easy to install directly on your computer, or you can boot Linux from an external drive like a USB flash drive or CD. You can also install it with or inside Windows if you need both.
4. Linux is famous for its stability and security. While it can become infected with viruses, the chances are considerably lower than, say, Windows or macOS.
5. It consumes a very limited amount of your computer's resources while operating. It is quite possible to run it using only 500 MB of drive space and 300 MB of ram.
6. Linux has many alternatives to nearly all the programs on the market like Photoshop, MS Word, etc. These also tend to be entirely free.
7. Linux has an amazing support community for troubleshooting. This is worth more than its weight in gold (if you could ever measure such a thing).
What are some of the cons of using Linux for software development?
1. Its proprietary Windows and OS X/macOS can mean you are stuck with the system as designed, which can impact the user experience. This can make some programmers steer clear of it.
2. Using Linux can be something of a trial and error experience. It is most certainly not a "straight out of the box" operating system like Windows or macOS.
3. If you are used to Windows or macOS, you will need to learn the ins and outs of the OS in order to use it. This can be off-putting for some software engineers. However, this is more than compensated for by the snazzy features and freedom that it offers a developer/software engineer.
4. Linux doesn't have drivers for external peripherals, per se. There are plenty of workarounds but you can run into problems with some hardware -- especially older ones.
5. Most users recommend you perform a dual boot if considering making the leap from another OS, like Windows. This is because you can't get proprietary programs, as we've already alluded to, which are exactly the same as those you might be used too. Alternatives for things like Photoshop just aren't the same.
2. Software engineers also tend to love macOS
macOS is another very popular operating system for software engineers. Most programmers and software engineers will be divided on which is better - macOS or Linux, but it is clear that macOS is one of the best options.
It comes with a variety of built-in, or easily and freely available, UNIX-type development tools that also have excellent support, in most cases. The main bone of contention in any choice between macOS and Linux is the conflict between the "walled garden" approach of the former and the open-source approach of Linux.
What are some of the pros of using macOS for software development?
1. One pro to using macOS is its intuitive, simple, and clean user interface. This is especially true when comparing it to something like Windows. If you are developing apps for iOS systems, the similarity with macOS' UI is a great advantage.
2. Multitasking is at the heart of macOS. The operating systems come with various native features that really make having various programs open at one time a breeze to navigate and manage. The ability to switch between them at the press of a button saves tons of time, along with your sanity, especially in the long run.
3. macOS is optimized for software and hardware compatibility. This means that it runs with zero to minimal conflicts throughout the lifetime of the system.
4. macOS is also famed for its reduced susceptibility to malware and other security issues. While, like Linux, it is not immune to security issues, the chances of getting infected with a nasty piece of software are reduced when compared to Windows.
5. When developing apps and other software for Apple products, macOS provides seamless compatibility. macOS and iOS have a very similar user interface and workflow logic making it the perfect choice for such software development. Files and data are readily synchronized between devices and can be shared through their dedicated Apple cloud servers.
What are some of the cons of using macOS for software development?
1. macOS can have limited, or restricted, availability for some applications. While other OS's, like Windows and Linux, have a literal plethora of application, macOS is limited by comparison. This is most noticeable for games applications, although for software developers, this is less of an issue. However, some applications you might need for development could come with very expensive licenses.
2. macOS can be inflexible when it comes to hardware upgrades or customization. This means that when you need more "bang for your buck" in the future, it can be more costly than for something like Windows. The deep integration of elements like CPU and RAM in a MacBook or iMac is a great boon initially, but they are not easily replaced in the future.
3. macOS devices tend to cost a pretty penny initially. When compared to Windows-based computers, for example, macOS systems are very much a high ticket item. This can be an issue if you are on a budget. If your company supplies the hardware, then this is not likely a problem.
3. A wise software engineer should never discount Windows out of hand
The Windows OS does get a bad rep a lot of the time. But for certain situations, Windows is actually an ideal OS for software engineers.
While macOS and Linux do have some serious advantages, Windows should not be completely ignored. Windows is also one of, if not the, most commonly used operating system for users around the world.
If you are targeting businesses, Windows' market dominance should always be catered to. It is also the OS of choice for many software engineering corporations.
What are some of the pros of using Windows for software development?
1. Windows offers free access to great development integrated development environment (IDE) through the Visual Studio Community.
2. Windows, especially Windows 10, supports a wide swathe of hardware almost unparalleled in other operating systems. Since it is an incredibly popular operating system, a large proportion of hardware manufacturers support Windows before any other systems, although not always.
3. Not to labor the point, but as Windows is practically everywhere around the world, it tends to support most new hardware that is released. Owing to its market dominance, most manufacturers will have some form of support for Windows somewhere. For users, especially businesses, Windows' "Plug and Play" function has proved to be a winning formula and not something to ignore. For this reason, you can readily build a computer of your dreams from scratch.
4. Let's face it, money talks. One of the biggest advantages of Windows over macOS is that it is, relatively speaking, a lot cheaper with regards to the hardware you need. But while you could conceivably get the latest version of Windows to work on a sub-$200 (Windows license excluded) dollar machine, it won't be the most responsive option.
5. Having such huge market dominance, Windows also has a lion's share of software and applications catering to it. This gives a Windows user a big choice of tools.
What are some of the cons of using Windows for software development?
1. As Windows is such a popular operating system, its success is also its weakness. Most malware, spyware, and ransomware viruses tend to target Windows operating systems. For this reason, Windows is one of the most vulnerable to such attacks.
2. As Windows allows for ease of customization, when it comes to hardware solutions, it can be problematic to get all the components to get along. Finding the right mix of drivers can cause some serious conflicts that could, conceivably, render your machine unworkable. But this can also prove to be a worthy challenge.
3. If you decide to buy an off the shelf computer with Windows pre-installed, the buyer (you) really should beware. Component quality, pre-ship testing, and long-term support can vary widely. Do your research first.
4. One word -- forced updates. Windows tends to bloat very quickly and installs updates seemingly constantly. Not only that, but Windows has a history of apparently-botched update packages that can suddenly render some installed software and hardware unusable until a patch is created. This really is infuriating at times.
5. The most up-to-date Windows versions, like Windows 10, gather information related to contacts, location, calendar, and input (text and touch). The process for opting out of all data collection efforts is both time-consuming and requires a reasonable amount of technical know-how.
4. Ubuntu is another very popular option with software engineers
Ubuntu is another very popular operating system for software engineers. It is actually a version of Linux, and an option that tends to divide opinion.
It is a mostly free and open-source OS that comes in three editions: Desktop, Server, and Core. It can run on a computer as is or by using a virtual machine.
What are some of the pros of using Ubuntu for software development?
1. Ubuntu is a lightweight OS and is considered a great option for servers. It also comes with frequent updates and is easy to customize.
2. Ubuntu has excellent longterm support that reduces administration overheads. Community support is also great -- by all accounts.
3. This OS is generally considered to be pretty solid and only restarts when Kernal patches are required.
4. Ubuntu, like Linux, is free to use and open-source. It can also dual boot.
What are some of the cons of using Ubuntu for software development?
1. Ubuntu's UI is not the most attractive when compared to its competitors. It is also not that user-friendly in comparison with other OS'.
2. Ubuntu can also bloat a bit over time.
3. Some software for Ubuntu can be hard to install, but this is not necessarily a game-changer.
4. There is no native support for Adobe or Linux. Alternatives need to be found.
5. Some hardware manufacturers have agreements with other companies that may block its installation.
5. Berkeley Software Distribution (BSD) is also pretty popular among software engineers
Another popular OS for software engineers is the Berkeley Software Distribution (BSD) series of operating systems. There are various forms of this, but most software engineers will use things like NetBSD, OpenBSD, or FreeBSD, to name but a few.
BSD was originally derived from UNIX and was developed at the University of California, Berkeley.
What are some of the pros of using BSD for software development?
1. BSD is usually free to use and is incredibly easy to install. It is also a complete operating system in and of itself.
2. This OS is very stable and tends to be supported by many major cloud platforms.
3. Like other operating systems listed above, it has a very active and supportive community.
4. BSD, especially FreeBSD, uses ipfw as a firewall, making it reasonably secure.
5. Booting and rebooting is noticeably faster than Linux, and developers can manage the essential elements of it remotely and efficiently.
What are some of the cons of using BSD for software development?
1. While the community support is great for experienced users, newbies may find it a little daunting.
2. BSD tends to lack a lot of driver support. It also lacks a plug and play feature.
5. Red Hat is another great OS choice for software engineers
Red Hat's Enterprise Linux (RHEL) is another popular operating system for software engineers. As the name suggests, it is another Linux distribution and is great for developing software on many platforms.
What are some of the pros of using Redhat for software development?
1. RHEL is widely considered to be very secure. Everything on the OS depends on permissions, and so viruses or other malicious code are unable to easily penetrate between files.
2. The OS is also very fast. This is because most processes remain asleep until activated. At any one time, typically 2-3 processes will only ever be active unless mandated by the user.
3. RHEL is open-source and you can find the full information for this OS online. You can also make tweaks to it as needed.
What are some of the cons of using Redhat for software development?
1. RHEL's graphical user interface (GUI) is a little old-fashioned, which might not be attractive for newer users.
2. The OS's technical support is not that great and is not free. You will need to buy access to it. However, there are plenty of forums online where you can bounce questions off veteran users.
6. Some software engineers also love to use Slackware
Another Linux distribution, Slackware was originally released in the early-1990s. The OS aims to maximize design stability and simplicity and is widely considered one of the most UNIX-like Linux distributions around.
Slackware complies with the published Linux standards, such as the Linux File System Standard. Since its original release, Slackware has become one of the most popular, stable, and friendly distributions available.
What are some of the pros of using Slackware for software development?
1. As we have already mentioned, Slackware is one of the most stable operating systems currently available.
2. Apart from Debian, Slackware is one of the oldest surviving Linux distros around. Its longevity is not an accident.
3. As it follows the original Linux roots, Slackware is a great way to learn the ins and outs of Linux (if you are that way inclined).
What are some of the cons of using Slackware for software development?
1. Since Slackware was created to be as simple as possible, it is not the most user-friendly of operating systems. You will find you need to be more hands-on than with, say, macOS or Windows.
2. Slackware is pretty niche when it comes to operating systems. For this reason, the support community is not the biggest.
3. Due to its niche-like nature, Slackware is not updated very regularly.
4. Unlike other Linux distros, Slackware doesn't have that many options.
5. When it comes to dependencies, Slackware shows more issues than many other distros.
7. Haiku is yet another pretty popular operating system for software engineers
And finally, another popular operating system used by software engineers is Haiku. Another free and open-source operating system, Haiku is supported by Haiku, Inc based in Rochester, New York.
It is written in C++ and provides an object-orientated API.
"Haiku is an open-source operating system that specifically targets personal computing. Inspired by the BeOS, Haiku is fast, simple to use, easy to learn, and yet very powerful." - Haiku.
What are some of the pros of using Haiku for software development?
1. Haiku is very fast for an operating system. This is its main draw for many software engineers.
2. The operating system only requires 512 MB of RAM and it is not very demanding on your computer's resources.
3. Haiku is incredibly stable.
4. It works perfectly on older hardware, due to its relatively low system requirements.
What are some of the cons of using Haiku for software development?
1. Like some other OS's on this list, Haiku is relatively niche.
2. Haiku is currently still under development and is in its beta release. This can make it a little unstable compared to other operating systems that are available.
3. Its user interface is very different from any other operating system you are probably familiar with. This will take some getting used to.
And that's a wrap. These are some of the operating systems most commonly used by software engineers.
The vast majority of software engineers will tend to choose between either Linux, Windows, or macOS. While there are many other options not included on this list, these three have the largest market share and probably will for many years to come.
So, which one is the best? We'll let you decide.