Best OS for programming? Mac vs Windows vs Linux debate settled

Fireship
10 May 202408:40

Summary

TLDRIn this video, the speaker humorously explores the choice between Mac, Windows, and Linux operating systems from a software engineer's perspective. They recount their experiences with each OS, highlighting the strengths and weaknesses. Mac offers the best hardware but is restrictive and expensive. Windows is flexible and can run Linux through WSL, but it's historically been less developer-friendly. Linux is powerful and customizable but has a steep learning curve and less commercial software support. The video suggests that the choice depends on individual needs, wealth, lifestyle, and desire for control, ending with a playful flowchart to help viewers decide.

Takeaways

  • 💻 The choice of operating system (OS) as a programmer is significant, impacting both work and subconscious mindset.
  • 📜 By agreeing to terms and conditions, users may feel they join a collective, such as the 'Windows Collective' or 'cult of Apple'.
  • 🛠️ The speaker suggests that compiling the Linux kernel is a path to open-source freedom, contrasting proprietary systems.
  • 👨‍💻 Personal experiences with Windows, Mac, and Linux have shaped the speaker's perspective on their utility for software engineering.
  • 🔧 The speaker humorously notes that FreeBSD is superior but prefers to keep this opinion a secret to avoid controversy.
  • 💼 Early career experiences with Windows led to the use of Java and Oracle, but the speaker found remote work on a MacBook more liberating.
  • 🔄 The transition to Linux was prompted by hardware failure and the allure of the 'hardcore developers' preference for the OS.
  • 🔧 The speaker advocates for the use of a versatile IDE like JetBrains, which supports development across different OS platforms.
  • 🍎 Macs are praised for their hardware but criticized for their proprietary nature and limited upgrade options.
  • 🐧 Linux is described as the king of servers, offering freedom, flexibility, and a learning opportunity about how computers work.
  • 🖥️ Windows is criticized for its commercial software, privacy concerns, and updates, but praised for the Windows Subsystem for Linux (WSL).
  • 🤔 The final decision on which OS to use is presented humorously, suggesting it depends on wealth, personal life, and desire for a divinely designed OS.

Q & A

  • What is the significance of choosing an operating system as a programmer?

    -Choosing an operating system is significant for a programmer because it impacts their development environment, the tools they use, and how they interact with the system for potentially thousands of hours.

  • What is the 'Windows Collective hive mind' mentioned in the script?

    -The 'Windows Collective hive mind' is a humorous term used in the script to describe the community of Windows users who agree to the terms and conditions and use the Windows operating system.

  • What does the script suggest about the experience of using a Macbook Pro for development?

    -The script suggests that using a Macbook Pro for development offers a sleek and portable experience, allowing for remote work in various locations, but it also implies that it can be expensive and has limited upgrade options.

  • Why did the speaker switch to using Linux?

    -The speaker switched to using Linux because they realized that many hardcore developers were using it, and after their Macbook Pro stopped working, they built a PC and installed Ubuntu.

  • What is the speaker's opinion on the term 'Linux' in the context of their usage?

    -The speaker clarifies that by 'Linux,' they actually mean 'GNU/Linux,' emphasizing the importance of the GNU components and utilities that make a fully functioning system as defined by POSIX.

  • What is the speaker's stance on the idea of a perfect operating system?

    -The speaker believes that there is no perfect operating system, as they use a combination of Windows, Linux, and macOS, each for different purposes and development needs.

  • What are some of the advantages of using Mac OS for development according to the script?

    -Mac OS is Unix-based with a good file system design, comes with developer tools like Zell, Git, and Vim out of the box, and offers a nice terminal experience and package management with Homebrew.

  • What are the drawbacks of using Linux mentioned in the script?

    -Drawbacks of using Linux include its complexity, the need to choose from various distributions and desktop environments, and the lack of support for commercial software and drivers for some hardware.

  • How does the script describe the evolution of Microsoft's approach towards open source and developers?

    -The script describes a shift in Microsoft's strategy from trying to extinguish open standards and being antagonistic towards Linux to embracing open source and creating features like the Windows Subsystem for Linux to win over developers.

  • What is the Windows Subsystem for Linux (WSL), and how does it benefit developers?

    -The Windows Subsystem for Linux (WSL) is a feature that allows developers to run a full Linux distribution inside Windows, providing the ability to use Linux terminal apps and GUI apps, offering the best of both worlds.

  • What is the final recommendation in the script for choosing an operating system based on certain personal criteria?

    -The script humorously suggests that if you are rich, you should choose Mac OS; if you have a girlfriend or a life, Windows is optimal; and if you want an operating system designed by God, you should choose Linux or Temple OS.

Outlines

00:00

🤔 The Dilemma of Choosing an Operating System for Programmers

This paragraph discusses the significant choice a programmer faces when selecting an operating system (OS) among Mac, Windows, or Linux. It humorously suggests that choosing an OS brands you as part of a collective, such as the 'Windows Collective hive mind' or the 'cult of Apple'. The speaker shares personal anecdotes, starting with using Windows and building websites with Java and Oracle, then transitioning to a MacBook Pro for Ruby on Rails development. The paragraph emphasizes the influence of Richard Stallman and the transition to Linux, particularly Debian and Gnu/Linux, which is part of a fully functioning GNU system. The speaker concludes that while there's no perfect OS, using multiple OSes is beneficial and highlights the importance of a versatile IDE like JetBrains, which is the sponsor of the video.

05:01

🛠️ The Pros and Cons of Developing on Different Operating Systems

The second paragraph delves into the advantages and disadvantages of developing on Mac, Linux, and Windows. It starts by outlining the high-quality hardware of Macs and the limitations of their upgradeability and the proprietary nature of the ecosystem. The speaker appreciates Mac OS's Unix-based system, which comes with useful developer tools and a pleasant terminal experience. However, the paragraph also points out the complexity and learning curve associated with Linux, which is the dominant OS on servers but less user-friendly for personal computers. The speaker mentions the flexibility and customization offered by Linux, as well as its drawbacks such as limited support for commercial software and hardware drivers. The paragraph also criticizes Windows for its cost, privacy concerns, and update policies, but acknowledges Microsoft's efforts to appeal to developers through features like the Windows Subsystem for Linux (WSL). The speaker concludes with a flowchart to help developers choose their OS based on their financial status, personal life, and desire for a divinely designed OS, humorously suggesting Temple OS as the ultimate choice.

Mindmap

Keywords

💡Operating Systems (OS)

An operating system is the software that manages computer hardware and software resources and provides common services for computer programs. In the video, the main theme revolves around choosing between different operating systems—Mac, Windows, and Linux—as a programmer, which is crucial as it impacts the development environment and tools used.

💡Windows Collective Hive Mind

This term metaphorically describes the community of Windows users who are bound together by their choice of operating system. The video suggests that by agreeing to the terms and conditions of Windows, one becomes part of a collective mindset, indicating a sense of conformity or standardization among Windows users.

💡Cult of Apple

Refers to the dedicated and sometimes zealous following of Apple products, particularly in the context of the video, the MacBook. The script implies that by purchasing and using an Apple product, one joins a group with a strong brand loyalty and a shared identity.

💡Open Source Freedom Fighter

This phrase is used to describe someone who advocates for and uses open-source software, which is software whose source code is available to the public for use and modification from its original design. In the video, the term is used to contrast with the proprietary nature of Windows and Apple ecosystems, suggesting a sense of rebellion against closed systems.

💡GNU/Linux

GNU/Linux is a free and open-source operating system composed of the GNU tools and the Linux kernel. The video explains that while Linux is often referred to as an operating system, it is technically the kernel that is part of a larger GNU system. This distinction is important for understanding the philosophy and structure of free software.

💡Integrated Development Environments (IDEs)

An IDE is a software application that provides comprehensive facilities to computer programmers for software development. The video mentions JetBrains IDEs, which are popular among developers for their sophisticated code completion and integrated tooling, as an example of an IDE that supports development across different operating systems.

💡MacBook Pro

The MacBook Pro is a line of laptop computers by Apple known for their sleek design and high performance. In the script, the MacBook Pro is used as an example of the type of hardware that developers might use, particularly for developing applications like Ruby on Rails.

💡Windows Subsystem for Linux (WSL)

WSL is a compatibility layer for running Linux binary executables natively on Windows. The video highlights WSL as a feature that allows developers to use Linux tools and applications directly on Windows, which can be beneficial for those who prefer the Windows environment but need Linux capabilities.

💡Commercial Software

Commercial software refers to software that is produced for sale, typically with proprietary licenses. The video mentions that Linux has limited support for commercial software like Adobe products, which can be a drawback for users who rely on such software for their work.

💡Right to Repair

The right to repair is a movement advocating for the legal right of consumers to repair their own electronic devices and equipment. The video touches on this concept in the context of Apple products, where hardware components are often difficult to repair or upgrade due to design choices that discourage user modifications.

💡Linux Mint

Linux Mint is a user-friendly Linux distribution based on Debian. The video script mentions it as an example of a Linux distribution designed to be more accessible to users who are not as technically inclined, contrasting with more complex distributions like those in the Arch family.

💡TypeScript

TypeScript is an open-source programming language developed and maintained by Microsoft. It is a strict syntactical superset of JavaScript and adds optional static typing to the language. The video mentions TypeScript as an example of a modern programming language that developers might use, particularly in conjunction with Microsoft's Visual Studio Code.

Highlights

The choice of operating system (OS) as a programmer affects not only the time spent with the OS but also has a profound impact on one's subconscious.

Using Windows OS means joining the 'Windows Collective hive mind' and being part of the Apple ecosystem when using a Mac.

To break free from proprietary systems, one can compile the Linux kernel from scratch, embracing open-source freedom.

The speaker has experienced using Windows, Mac, and Linux OS for software development over a decade.

FreeBSD is considered superior by the speaker, although it is not widely known.

The speaker's first job involved using Windows and technologies like Java and Oracle database to build websites.

After being fired from the first job, the speaker transitioned to remote work using a MacBook Pro.

The transition to Linux was prompted by the failure of the MacBook Pro and the influence of Richard Stallman.

Linux, or more accurately GNU/Linux, is part of a fully functioning GNU system with essential components.

Using multiple operating systems requires a versatile IDE like JetBrains, which is platform-independent.

WebStorm by JetBrains is recommended for web developers, featuring AI assistance for coding.

Mac OS has the advantage of being Unix-based with a good file system design and developer tools.

Linux dominates the server market due to its free, open-source, and reliable nature.

Linux offers flexibility and the opportunity to learn more about how computers work through customization.

Linux has drawbacks, including limited support for commercial software and hardware drivers.

Microsoft has changed its approach, becoming more developer-friendly with tools like VS Code, GitHub, and Azure.

Windows Subsystem for Linux (WSL) allows running a full Linux distro within Windows, combining the best of both OS.

Windows can be installed on any hardware, allowing for easy upgrades compared to Mac.

A flowchart is provided to help decide which OS to choose based on personal circumstances and preferences.

Transcripts

play00:00

Mac windows or Linux that's the single

play00:02

biggest Choice you'll ever make if you

play00:04

decide to become a programmer not only

play00:05

will you spend tens of thousands of

play00:07

hours with your OS but it also has a

play00:09

profound impact on your subconscious by

play00:11

clicking I agree to the terms and

play00:13

conditions you are now forever a part of

play00:15

the windows Collective hive mind when

play00:16

you unbox that Sleek new Macbook you

play00:18

unknowingly just join the cult of apple

play00:21

and the only way to break these

play00:22

proprietary shackles is to compile the

play00:24

Linux kernel from scratch to call

play00:25

yourself an open source freedom fighter

play00:27

who will be your supreme leader jobs

play00:30

dates or tour vaals in today's video

play00:32

we'll look at the differences between

play00:33

Mac windows and Linux from the

play00:35

perspective of a software engineer for

play00:37

more than a decade I've enjoyed the

play00:38

Pleasure and Pain of all three of these

play00:40

operating systems and have realized that

play00:42

FreeBSD is superior to all of them but I

play00:44

don't want that secret to get out in

play00:45

many years ago when I got my first real

play00:47

job I was assigned a Windows machine and

play00:50

got introduced to beautiful Technologies

play00:52

like Java and Oracle database from my

play00:54

cubicle I use these tools to build

play00:56

crappy websites for a failing Fortune

play00:57

500 company it sucked but luck through

play01:00

divine intervention I was fired from

play01:02

that job and started doing remote work

play01:03

full-time with my brand new Macbook Pro

play01:06

this bad boy had a dual core CPU and a

play01:08

full gigabyte of ram I traveled around

play01:10

the country from Starbucks to Starbucks

play01:12

drinking so lattes while developing Ruby

play01:14

on Rails applications on my MacBook but

play01:16

eventually I realized that the real

play01:18

hardcore developers were using Linux as

play01:20

fate would have it my MacBook Pro

play01:22

stopped working right on schedule

play01:23

exactly 2 years after I bought it so

play01:25

that's when I built my first PC from

play01:26

scratch and installed Ubuntu around this

play01:28

time Richard stallman called at spyware

play01:30

so I experimented with a bunch of other

play01:32

dros but have mostly stuck with Debian

play01:34

what I'm referring to as Linux is in

play01:36

fact G new Linux or is I've recently

play01:38

taken to calling it G Plus Linux the

play01:40

ganu plus Linux system Linux is not an

play01:43

operating system unto itself but rather

play01:45

another free component of a fully

play01:47

functioning gnu system made useful by

play01:49

the ganu cor Libs shell utilities and

play01:51

vital system components comprising a

play01:53

full OS as defined by posix what I've

play01:56

learned over the years is that there's

play01:57

no perfect OS like today I use windows

play02:00

but use the windows subsystem for Linux

play02:02

for development and always keep a

play02:03

MacBook Pro along with my ski goggles

play02:05

available for traveling now when using

play02:07

three different operating systems it's

play02:09

important to have an IDE that runs on

play02:11

all of them and there's nothing better

play02:13

than Jeet brains idees the sponsor of

play02:15

today's video their legendary family of

play02:17

integrated development environments are

play02:19

used by millions of developers every day

play02:21

and famous for their sophisticated code

play02:23

completion and integrated tooling as a

play02:25

web developer I'm a big fan of webstorm

play02:27

which contains everything you'll need

play02:28

for the craziness of JavaScript

play02:30

development but can Now understand and

play02:31

write code even faster thanks to the AI

play02:34

assistant it's a programming optimized

play02:36

model that can offer suggestions

play02:37

describe your code and write your code

play02:39

while understanding the context of a

play02:41

large project but most importantly the

play02:43

IDE is reliable and fun to use it's got

play02:46

an intuitive minimal interface but tons

play02:48

of power under the hood so you don't

play02:50

need to install a bunch of plugins to

play02:51

start being productive and best of all

play02:53

you can try out Jeet brain's idees for

play02:55

your favorite programming language with

play02:57

a 30-day free trial use the link in the

play02:59

description deson but now let's talk

play03:01

about the pros and cons of developing on

play03:03

a Macintosh Apple by far makes the best

play03:05

hardware but to obtain it you must pay a

play03:07

large tribute like $1,000 just for a

play03:09

stand in addition another major drawback

play03:12

is that you can't upgrade these machines

play03:13

if you want to add more RAM storage or

play03:15

gpus the upgrade options are extremely

play03:17

limited on top of that that ecosystem is

play03:19

designed to lock you in if you want to

play03:21

build apps for iOS or the Apple Vision

play03:23

Pro you'll almost certainly need to own

play03:25

a Mac and if your Hardware ever breaks

play03:27

you'll find that the components are

play03:28

glued or soldered into place which means

play03:30

it's impossible to repair without going

play03:32

to the Apple Store and there's been a

play03:33

lot of controversy around the right to

play03:35

repair but nobody really wants to repair

play03:36

their old MacBook by the time it breaks

play03:38

there's going to be some awesome new

play03:40

thing that you'll just have to buy but

play03:41

more important than the hardware is the

play03:43

software and one thing that's really

play03:44

nice about Mac OS is that it's Unix

play03:46

based Unix has been around since the 70s

play03:49

and has a really nice file system design

play03:51

that uses forward slashes and Mac comes

play03:53

with a bunch of good developer tools out

play03:54

of the box like Zell git vim and so on

play03:57

in addition you can use package managers

play03:59

like Homebrew to easily install and

play04:01

manage different development tools the

play04:03

terminal experience on a Mac is nice and

play04:05

tools in the guey look really nice

play04:06

although they can be pretty annoying to

play04:07

use I'm looking at youf finder but most

play04:10

importantly everything works out of the

play04:11

box with zero configuration Mac OS

play04:14

prevents you from going down

play04:15

customization rabbit holes spending days

play04:17

configuring Pointless Stuff on your

play04:18

machine instead of writing code that's

play04:20

actually useful but if you want to get

play04:22

really good at computers you'll need to

play04:23

learn Linux on the server Linux is King

play04:26

the vast majority of servers running in

play04:27

the cloud powering the world's

play04:28

infrastructure run Linux and that's

play04:30

because it's free open- source and

play04:32

reliable however very few normies

play04:35

actually use it for their personal

play04:36

computers why is that it has to do with

play04:38

complexity to use Linux you first need

play04:40

to choose a family like Debian Arch red

play04:43

hat genu and many others then you have

play04:45

to choose a Dro in that family like

play04:47

under Red Hat you've got Enterprise

play04:49

Linux vedora sentos Rocky Linux and many

play04:52

others then you'll have to choose a

play04:53

desktop environment like gnome KDE and

play04:56

so on then finally you'll need to open

play04:57

up the terminal type in a bunch of

play04:59

commands to resolve dependencies compile

play05:01

things from Source update file

play05:03

permissions then a few weeks later you

play05:04

should be good to go some dros are

play05:06

designed to be extremely userfriendly

play05:07

like the Debian based Linux Mint but if

play05:10

you really want to be an apex Alpha

play05:12

programmer you'll likely want to go with

play05:13

something in the arch family allowing

play05:15

you to legally say I use Arch by the way

play05:17

not only is Linux free but it offers you

play05:19

the most flexibility for customizing

play05:21

your machine and in turn you're likely

play05:23

to learn a lot more about how computers

play05:24

actually work when you use it and if you

play05:26

really want to get into something like

play05:27

penetration it drrs like Cal Linux are

play05:30

highly optimized for that activity in

play05:32

addition if you're deploying

play05:33

applications on Linux servers you'll be

play05:35

much more familiar with the Linux

play05:36

ecosystem when you use it every day and

play05:38

there's all kinds of amazing developer

play05:40

tools you can use on Linux that may have

play05:41

a higher learning curve initially but

play05:43

can dramatically improve your

play05:44

productivity but there are quite a few

play05:46

drawbacks the support for commercial

play05:48

software like Adobe products and a large

play05:50

number of games and drivers for Hardware

play05:53

is just nonexistent Linux only has a

play05:55

single-digit market share of personal

play05:56

computers and many developers just

play05:58

choose to ignore it all together but

play06:00

Linux is not the only open source kernel

play06:02

if you're really Brave you can use other

play06:03

kernels like open BSD Minix or redo but

play06:07

then you'll really be on your own and

play06:08

ultimately when you have to configure a

play06:10

lot of things by hand it makes the

play06:11

entire system more brittle which means

play06:13

you'll eventually break something stupid

play06:15

and end up spending two days debugging

play06:16

your bash profile which is one of the

play06:18

leading causes of a neck beard Linux can

play06:20

be painful at times but you need that

play06:21

pain to grow you don't know real pain

play06:23

though until you've tried to develop on

play06:25

windows at first you're going to need to

play06:26

charge your mom's credit card $199 for

play06:29

Windows Pro then when you install it

play06:30

it's going to try and sell you a bunch

play06:32

of crapware like Microsoft Office and

play06:34

one drive even if you decline you'll

play06:35

still need to log into a Microsoft

play06:37

account is so it can spy on you in

play06:38

perpetuity in order to resell you that

play06:40

same crapware every day for the rest of

play06:42

your life when you boot it up you'll

play06:43

find artificial intelligence everywhere

play06:45

you'll need a co-pilot just to manage

play06:47

all your co-pilots now if you're coming

play06:48

from Unix you'll notice some weird

play06:50

things like it uses backs slashes for

play06:52

file paths and every day or two the

play06:54

system will shut down an update to make

play06:56

sure you have the latest spyware

play06:57

installed when it comes to open source

play06:59

software Dev velopment Microsoft has

play07:00

some skeletons in the closet in the 9s

play07:02

it had a strategy to embrace Open

play07:04

Standards extend them in incompatible

play07:06

ways in order to extinguish them later

play07:08

on and Balmer once called Linux a cancer

play07:10

how much do you think this Advanced

play07:12

operating environment is worth but

play07:14

nowadays things are different even

play07:15

though I hate Microsoft I use Microsoft

play07:17

VSS code to write my Microsoft

play07:19

typescript code then push it to

play07:20

Microsoft GitHub and install my

play07:22

Microsoft mpm packages then deploy it to

play07:24

Microsoft Azure from my Microsoft

play07:26

Windows machine at some point Microsoft

play07:28

realized the way to win over developers

play07:30

was to become less like Windows and more

play07:32

like Linux and the killer feature for

play07:34

that is the windows subsystem for Linux

play07:36

which allows you to run a full Linux

play07:38

drro inside of Windows not just an

play07:40

emulated one which gives you the best of

play07:42

both worlds you can use all your

play07:43

favorite Linux terminal apps and even

play07:45

run Linux guy apps like VLC and in

play07:48

the past I used to dual boot Windows and

play07:50

Linux but WSL has made that unnecessary

play07:52

it's not perfect and there are some

play07:54

random issues that come up and WSL can

play07:56

be painfully slow at times but it's a

play07:58

pretty awesome feature overall and one

play08:00

huge benefit of Windows over Mac OS is

play08:02

that it's not kept in a Walled Garden

play08:04

Windows is proprietary but it can be

play08:05

installed on any hardware which means

play08:07

you can easily upgrade your RAM CPU GPU

play08:10

Etc but now that brings us to the final

play08:12

question which tribe should you join

play08:14

well I've created a handy flow chart to

play08:15

help you choose the first question is

play08:18

are you rich if you answered yes then

play08:20

the answer is pretty easy Mac OS but if

play08:22

you answered no the next question is do

play08:24

you have a girlfriend Andor a life if

play08:26

you answered yes then Windows is the

play08:28

optimal choice then your final question

play08:30

should be do I want an operating system

play08:32

that's designed by God himself if you

play08:34

answered no then Linux is your best

play08:36

choice but if you answered yes then the

play08:38

obvious choice would be Temple OS

Rate This

5.0 / 5 (0 votes)

Related Tags
Operating SystemsProgrammingSoftware EngineeringMacOSWindowsLinuxDeveloper ToolsOpen SourceIDETech Choices