DEV Community

Cover image for Operating System Wars, what is the best operating system for programming. ⚔️
Sotiris Kourouklis
Sotiris Kourouklis

Posted on • Edited on • Originally published at sotergreco.com

Operating System Wars, what is the best operating system 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.

Image description

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

Top comments (3)

Collapse
 
protoncodecoin profile image
Prince Affum

Enjoyed this blog. I have been using windows my whole life and decided to try Ubuntu just last year. It was a little difficult to adapt to it but the experience was great. After reading this post, I’m looking forward to try Mac to.

Collapse
 
katafrakt profile image
Paweł Świątkowski

I think I have to disagree with a few statements here ;)

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.

Pretty much every modern distribution has its own "central hub". I know, it's per distribution, not global across all, like Snap promised, but still it's by far enough for even power users. And these repositories usually have GUIs to help newcomers move around.

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.

Sounds like you're saying Linux cannot have good UX. Which is a common myth/saying, but I'd be curious to which desktop environment you are referring here. Even though I'm not a fan, I think Plasma offers very good UX these days.

Accepting calls from your phone or even using iMessage, macOS is basically an extension of your phone.

Yeah, assuming it's an iPhone. If not, Mac actively stands in your way even with simple tasks, like uploading files to your phone.

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.

This is very interesting, I never really thought about it. I guess I'll have some reading to do.

Collapse
 
alxwnth profile image
Alex

A few words about Windows. I’m not a big fan, mostly for ethical reasons, but! I recently did a small experiment setting up a secondary dual-boot workstation with Windows 10 and here are some things I like about it (I’m not paid to say it :) )

  • Drivers and manufacturer software (touchpad, fingerprint sensor and other things) are installed automatically from a centralized place. And, of course, the availability of drivers is much higher. That’s a given.
  • The pop up thingies are a part of User Account Control (UAC). I’ve read about UAC and security in Windows overall, and there is a lot to learn actually. You’ll have to dig through a ton of menus with Win98 UI but who cares, right? I’ve set two accounts: my personal, non-administrative account, and an admin one with its own password. Now every time I get an UAC pop up, I enter an admin password, just like sudo!
  • Turns out, Windows has some great package management tools. I’ve tried Scoop and it worked right out of the box. And the repos are huge too, you can find not only dev CLI tools but also GUI programs like LibreOffice, Thunderbird, etc. Having a centralized place to get and update packages similarly to pacman, apt, dnf of whatever is a big deal.