Navigating the OS Divide: Windows, Mac, and Linux in the Software Engineering Landscape

David Garcia
5 min readAug 28, 2023

--

¿Cómo elegir el mejor sistema operativo?

In the dynamic world of software engineering, choosing an Operating System (OS) is more than just a matter of personal preference. Companies often lean towards Windows, while many software engineers opt for MacOS or Linux-based distributions (like Arch, Ubuntu or Rocky).

This article delves into the reasons behind these preferences, shedding light on the intricate balance between company needs and individual preferences.

The Company’s Perspective: Embracing Windows

Windows logo and wordmark

From a company’s standpoint, advocating for Windows as the primary OS for software engineers is driven by several key factors:

Compatibility and Consistency:

Windows is the most widely used desktop operating system globally, making it a natural choice for ensuring maximum compatibility with third-party software, tools, and applications. By standardising Windows, companies can minimise compatibility issues and streamline their development environment.

Enterprise Software:

Many enterprise-level applications, tools, and solutions are optimised for Windows. By using Windows as the base OS, companies can smoothly integrate their software engineers’ workflow with these tools, enhancing productivity and efficiency.

Support and Infrastructure:

Windows offers comprehensive support and a vast ecosystem of IT infrastructure. Companies find managing and supporting many Windows machines easier, facilitating updates, security patches, and troubleshooting.

Industry Norms:

Specific industries, like finance and government, often gravitate towards Windows due to regulatory compliance and industry standards that mandate its usage for security and stability reasons.

Software Engineer’s Perspective: MacOS and Linux Ascend

What is the Difference Between macOS and Linux?

Software engineers, on the other hand, frequently opt for MacOS or Linux for the following reasons:

Unix-based Development Environment:

MacOS and Linux provide a Unix-like environment out of the box, closely resembling the servers where most applications are deployed. This similarity minimises discrepancies between development and production environments, reducing potential bugs and issues.

Terminal and Command-line Power:

Software engineers often require robust programming, scripting, and automation command-line tools. MacOS and Linux offer powerful terminal interfaces, making it easier to perform complex tasks efficiently.

Open Source Philosophy:

Linux is renowned for its open-source nature, which resonates with many software engineers. This philosophy fosters security, collaboration, customisation, and innovation within the developer community.

Package Managers:

MacOS and Linux boast package managers (Homebrew for MacOS, APT/YUM for Linux) that simplify the installation and management of software packages, libraries, and dependencies. This convenience accelerates development workflows.

Hardware and Design:

MacOS’s sleek design, build quality, and user experience make it an appealing choice for software engineers who value aesthetics and seamless integration between hardware and software.

Side note: I am feeling much more comfortable and productive with MacOS than Linux systems, especially because nowadays we can use Docker to virtualise software and programming languages.

Still, both MacOS and Linux are UNIX-based operating systems, which means they work in a very similar way. So the comments mentioned in the following video are not 100% accurate to today’s reality but are a very solid entry point.

The System and Network Administration management

System/Network Administration

Although System and Network administrations might find a much more straightforward approach to apply the same settings to everyone in the company, it’s also well-known that:

A company’s manager that needs to operate with spreadsheets and emails doesn’t have the same hardware and software requirements as a software engineer that needs to replicate an entire server infrastructure in their work computer.

System and Network administrators should always advocate for diversity in the company’s employees’ requirements because of two main reasons:

  1. Providing employees with the hardware, software and tools they feel comfortable and productive leads to happy and motivated employees. The boost these employees get leads to a more productive environment and behaviour, which means the company can achieve their goals and get revenue faster.
  2. Keeping an open mind about the employees’ requirements leads to additional work for the administration team. This extra work means extended contracts for them (because of the necessity to manage and protect the company’s infrastructure) while giving them a chance to get additional knowledge and expertise, making them much better professionals in the industry.

An employee claims she can’t use Microsoft Windows for “Religious Reasons”

Employee claims she can’t use Microsoft Windows for “Religious Reasons”

In software engineering and using specific operating systems or collaboration with particular communities, claiming “religious reasons” might not be a literal expression of religious beliefs but a symbolic way to emphasise strong preferences or allegiances (which have the same ethics and principles as any existing religions).

Zero-tolerance has become a way to discriminate against people or entire communities while existing laws enforce the acceptance of multiple ethnicities and diversity. However, the zero-tolerance approach focuses on skin colour, birth countries or their religion and believes but not other cases.

Although companies might prefer the “Embrace Windows” approach, they must understand that Windows is not a silver bullet that solves every single problem, so there might be particular reasons and cases where their employees might not feel comfortable or productive or even feel forced to work against their ethics, morale and believes. Companies should have flexibility for the preferred operating system if employees can deliver tasks in a secure environment.

However, software engineers preferring the “MacOS and Linux Ascend” should analyse and understand potential blockers using Unix-based Operating Systems, such as the requirement to use specific software that is only available on Windows (for example, the Adobe Creative Suite is not available on Linux, but it is on Windows and MacOS). The preferred OS should not be open to debate only when the workaround to run Windows software (through Wine or Crossover) is much more complex or insecure.

The tug-of-war between companies advocating for Windows and software engineers leaning towards MacOS or Linux reflects the intricate interplay between practicality and personal preferences in software engineering.

Companies prioritise compatibility, support, and industry norms, while engineers emphasise development environment alignment, open-source ethos, and command-line power.

Striking the right balance between these considerations ensures a harmonious and productive software development ecosystem where the company’s needs and the engineers’ preferences find their place.

Please clap and follow!

👏 Enjoyed this article? Please give it a round of applause by clicking the 👏 button below. Your support means the world to me!

📚 Want to stay updated with my latest posts? Hit the “Follow” button to join my community and never miss out.

Thank you for reading and engaging! Your feedback and support inspire me to share more valuable insights with you. 🙌

--

--

David Garcia

Senior Software Engineer, Backend, NodeJS & Symfony developer, workaholic, passionate for new technologies and OSS contributor. https://linktr.ee/davidgarciacat