Operating System Wars, what is the best operating system for programming.
Exploring the Best Operating Systems for Programming
Well, I didn't start writing this article for everyone to fight in the comment section on whatever platform you are reading this. But I want to share my honest opinion on all three major operating systems: Windows, Mac, and Linux (I know Linux is a kernel and not an OS).
I am going to start with what I think is the worst option and go down to the best. But that doesn't mean even windows don't have save advantages and use cases.
Windows
Well my blog is about programming mostly, so don't expect to hear anything that is not related to programming.
MS-DOS is basically the birth of windows, yet MS-DOS is just the renaming of another operating system that microsoft purchased so they didn't even build the origin operating system to begin with. With that said it means that microsoft had and still has little to no control on the operating system architecture. That is because when you ship something to millions of people you can just rebuild it.
Besides that let's get into the fluffy stuff.
Registry
Who the heck invented the registry? I mean, why can't they just create a file-system approach for configuration? An /etc
folder, let's say. For those who don't know, the registry is a central database for keeping system and application configurations.
Small files in big numbers
Windows is really bad when you are working with a lot of small files. Just try moving 500MB of data that consists of 500,000 files. The reason for that, many say, is the permission system, which we are going to talk about in a minute, but also the NTFS approach instead of ext4 or other better alternatives.
Working with node_modules
can be really bad, and it takes forever to even delete the folder.
Permissions
On windows I don't think anyone understood how the permissions work, you just have this popup.
Installing Applications
Well, I think installation wizards are a Windows invention. On macOS, you just drag and drop the application into the Applications folder, or you use brew
.
x86
In 2024, there are versions of Windows that work with ARM as well, but I think that ARM is the future and Windows has a huge disadvantage because almost every Windows machine runs on x86, which is not power efficient.
I could talk forever about why Windows is a universal failure as an operating system. From the terminal, permissions, file-system, control panel, x86, to memory management, Windows just doesn't work.
PS: Microsoft created WSL; they put another OS inside their OS, that's how bad the situation is.
Linux
From the hundreds of Linux distros out there, you have a variety of options to choose from. Some of them are better, but in general, all of them are the same thing.
Memory Management
Linux is very good at managing memory, not as good as Mac, but it maintains a good balance between swapping and memory allocation.
This is not only a part of the Linux kernel but of the Linux ecosystem in general. Software on Windows is mostly written in Java or C#, yet these technologies are used by large enterprise companies.
New developers or even indie hackers like using other languages like Rust, Go, or Python, which make the applications much more performant. Additionally, many of them are open-source, which comes with a lot of benefits.
Open Source - Public interest
Public interest in linux is very high unlike windows. Startups first publish for mac or linux and then windows. New technologies like blockchain, AI, de-fi basically runs on linux.
Also being open source makes linux a lot more customizable, something a lot of developers might like
Installing applications
Although it's not extremely difficult, installing applications can be challenging for new users on Linux. You primarily use the terminal, and while there are a few software marketplaces, there isn't a central hub.
Back in the day, I used snapd, which is similar to Mac's Homebrew.
Mac OS X
Talking about the pricing is not a disadvantage anymore so let's take this argument out of the way. Some windows or linux computers can be more expensive than an apple one.
Between two worlds
Apple sits between the Linux and Windows worlds. This means it has a good UI/UX, but behind the scenes, it is based on UNIX. What this means is that you get almost the same terminal experience, but on the other hand, you have features like Spotlight.
Ecosystem
The one thing macOS has that all of the other operating systems lack is a good ecosystem. AirDrop is one example where you can even transfer large files in a matter of seconds. Accepting calls from your phone or even using iMessage, macOS is basically an extension of your phone.
Airpods
I had to mention AirPods just by themselves because I believe they are the best headphones ever made. As I mentioned before, within the ecosystem, they work seamlessly.
Hardware
Although we are talking about software here, having a good connection between your software and hardware is a game changer.
Battery Life
You get significant better battery life that can last an entire day with the new apple silicon computers
Memory
Just using the 8GB version of the M1,M2 can get you very far and I believe that is because of the Unified Memory Apple uses. In comparison with Windows where it would crash consistently and probably give you a green screen if you tried multitasking.
What I want to try in the future ?
As I have seen from reviews, the new System76 Lemur Pro looks promising. For my next purchase, I want to try the Pop!_OS distro they are using. What are your thoughts on System76?
The only thing that I am concerned about is the battery life and the noise from the fans. Coming from a MacBook Air, having a good battery and zero noise is really beneficial for me.
Conclusion
In conclusion, selecting the best operating system for programming largely depends on personal preferences, the specific requirements of the project, and the developer's familiarity with the OS.
Windows, despite its drawbacks in handling small files and its complex permissions system, remains widely used in corporate environments.
Linux offers great flexibility and control, appealing to those who prefer open-source solutions and customization.
macOS, with its robust ecosystem and seamless integration with hardware, provides a smooth user experience, particularly for those already invested in Apple's ecosystem.
Thanks for reading, and I hope you found this article helpful. If you have any questions, feel free to email me at kourouklis@pm.me, and I will respond.
You can also keep up with my latest updates by checking out my X here: x.com/sotergreco