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

Fireship
10 May 202408:40

Summary

TLDRThe video script discusses the significant choice a programmer faces when selecting an operating system (OS), highlighting the profound impact it has on their work and mindset. It humorously explores the journey of using Mac, Windows, and Linux, with anecdotes from the speaker's experiences. The video emphasizes the strengths and weaknesses of each OS: Mac's high-quality hardware and Unix-based software, Windows' flexibility and evolving developer-friendly features like the Windows Subsystem for Linux (WSL), and Linux's open-source nature and server dominance despite its complexity and steep learning curve. The speaker also touches on the importance of having a versatile IDE like JetBrains, which supports development across all three platforms. The summary concludes with a playful flowchart to help programmers decide which OS to choose based on personal preferences and circumstances.

Takeaways

  • 💻 **Choice of OS**: The choice between Mac, Windows, or Linux is crucial for programmers as it impacts the development environment and potentially the programmer's identity within the tech community.
  • 🔒 **Apple Ecosystem**: Choosing a Mac means joining the Apple ecosystem, which is known for its proprietary nature and limited upgrade options.
  • 🛠️ **Linux Freedom**: Linux offers the most freedom and flexibility, allowing users to compile the kernel from scratch and customize their system deeply, which can be a mark of a 'true' programmer.
  • 🖥️ **Windows for Work**: The speaker's first job involved using Windows and technologies like Java and Oracle, indicating its prevalence in certain corporate environments.
  • 🍎 **Mac for Mobility**: The Macbook Pro was chosen for its portability and ability to work on the go, highlighting the benefits of Apple's hardware for remote work.
  • 🐧 **Linux for Learning**: Using Linux can lead to a deeper understanding of how computers work due to its requirement for more hands-on configuration and management.
  • 🛠️ **Server Dominance**: Linux dominates the server market due to its reliability, open-source nature, and lack of cost, making it essential for programmers to learn for server-side development.
  • 🧩 **Complexity of Linux**: The complexity of setting up and managing a Linux system can be a barrier to entry, but it is also a learning opportunity for those aiming to become proficient system administrators.
  • 💰 **Cost Considerations**: Macs are expensive and have limited upgrade options, whereas Windows can be run on any hardware, allowing for more flexibility and cost-effectiveness.
  • 📚 **Learning Curve**: Each OS has its own learning curve; Windows with its updates and file path syntax, Mac with its Unix base and developer tools, and Linux with its terminal commands and customization.
  • 🔄 **Windows Subsystem for Linux (WSL)**: WSL allows running a full Linux distro within Windows, offering the benefits of both operating systems and simplifying the development process for those who need access to Linux tools.

Q & A

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

    -Choosing an operating system is significant because it impacts the programmer's workflow, the tools they use, and their development environment. It also affects the subconscious as it shapes the way they interact with technology over thousands of hours.

  • What does the speaker imply by referring to the 'Windows Collective hive mind'?

    -The speaker is suggesting that by agreeing to use Windows, one becomes part of a larger community or 'hive mind' that is influenced by Microsoft's ecosystem and proprietary standards.

  • Why did the speaker switch from a MacBook Pro to a Linux-based system?

    -The speaker switched to a Linux-based system because they realized that many hardcore developers were using Linux, and after their MacBook Pro stopped working, they built a PC and installed Ubuntu, which allowed them to experiment with different distributions of Linux.

  • What is the speaker's opinion on the term 'GNU/Linux'?

    -The speaker refers to 'GNU/Linux' as a system that is not an operating system by itself but a free component of a fully functioning GNU system, made useful by the GNU C libraries, shell utilities, and vital system components.

  • What are the advantages of using Windows for development according to the speaker?

    -The speaker mentions that Windows has evolved to become more developer-friendly, with features like the Windows Subsystem for Linux (WSL), which allows running a full Linux distro inside Windows, and the ability to install on any hardware for easy upgrades.

  • How does the speaker describe the process of setting up a Linux system?

    -The speaker describes the process as complex, involving choosing a family of distributions, selecting a specific distribution within that family, choosing a desktop environment, and using the terminal to resolve dependencies, compile software, and update file permissions.

  • What are the drawbacks of using Linux for personal computing mentioned by the speaker?

    -The speaker mentions that Linux has a small market share in personal computing, leading to limited support for commercial software, a lack of drivers for certain hardware, and a higher learning curve for users not familiar with the system.

  • What is the speaker's view on the use of Windows for development?

    -The speaker acknowledges that while Windows has had a contentious history with open-source software, it has made strides in becoming more developer-friendly, especially with the introduction of WSL and other modern development tools.

  • What are the benefits of using a MacBook Pro for development?

    -The benefits include high-quality hardware, a Unix-based operating system, and developer tools like Zell, Git, and Vim that come pre-installed. Additionally, the macOS ecosystem is designed to work seamlessly out of the box, reducing the need for extensive configuration.

  • How does the speaker describe the terminal experience on a Mac?

    -The speaker describes the terminal experience on a Mac as nice, with good-looking tools, although some tools can be annoying to use, such as Finder.

  • What is the speaker's recommendation for an IDE that works across different operating systems?

    -The speaker recommends JetBrains IDEs, particularly WebStorm for web development, for their sophisticated code completion, integrated tooling, and the addition of an AI assistant that can offer suggestions and understand the context of large projects.

Outlines

00:00

🤔 The Choice of Operating Systems for Programmers

The video discusses the significant decision programmers face when choosing an operating system (OS) among Mac, Windows, or Linux. The presenter humorously refers to the 'collective hive mind' of Windows users and the 'cult of Apple' when getting a new Macbook. They share their personal journey through using Windows for work, enjoying the portability and development experience on a Macbook Pro, and eventually embracing Linux for its open-source freedom. The video emphasizes the importance of having a versatile IDE that works across all platforms, highlighting JetBrains IDEs for their reliability and powerful features. It also touches on the cons of Mac, such as expensive hardware with limited upgrade options and the closed ecosystem, while praising its Unix-based software and developer tools.

05:01

🚀 Linux: The King of Servers and Customizability

The presenter delves into the world of Linux, highlighting its dominance in server environments due to its free, open-source, and reliable nature. They discuss the complexity of setting up and customizing a Linux system, which involves choosing from various distributions and desktop environments. The video suggests that using Linux can lead to a deeper understanding of how computers work and can be particularly beneficial for server deployment and penetration testing. Despite its learning curve and lack of support for commercial software and hardware drivers, Linux offers flexibility and powerful developer tools. The video also briefly mentions other open-source kernels and humorously addresses the pain points of Windows development, including the cost of Windows Pro, the prevalence of 'crapware,' and privacy concerns. It concludes with a flowchart to help viewers decide which OS to choose based on their financial status, relationship status, and personal beliefs about system design.

Mindmap

Keywords

💡Operating System (OS)

An operating system is the core software that manages computer hardware resources and provides common services for computer programs. It is a fundamental component of the computer system and acts as an interface between the user and the computer hardware. In the video, the choice between Mac, Windows, or Linux operating systems is central to the theme, as each has distinct implications for a programmer's workflow and development environment.

💡Windows Collective

The term 'Windows Collective' is used metaphorically in the video to describe the community or ecosystem of Windows users. It implies a sense of unity among users who have agreed to the terms and conditions of using Windows, suggesting a shared experience or mindset. The video discusses the impact of being part of this 'hive mind' on a programmer's subconscious and work.

💡Apple Cult

Referring to the devoted user base of Apple products, the 'Apple Cult' is a colloquial expression used in the video to highlight the loyalty and enthusiasm of Apple customers. It suggests that by purchasing a MacBook, one is joining a group with a strong brand identity. The video touches on the proprietary nature of Apple products and their influence on developers.

💡Linux Kernel

The Linux kernel is the core of the Linux operating system, responsible for system resource management, process control, and hardware device management. Compiling the Linux kernel from scratch, as mentioned in the video, is an advanced task that signifies a deep engagement with open-source software and a commitment to freedom and customization in one's computing environment.

💡GNU/Linux

GNU/Linux, often shortened to Linux, is a family of open-source Unix-like operating systems based on the Linux kernel. The video emphasizes the use of 'GNU plus Linux' to highlight the combination of the Linux kernel with GNU components, utilities, and libraries to form a complete operating system. It is presented as an alternative to proprietary systems, offering freedom and flexibility for developers.

💡Windows Subsystem for Linux (WSL)

WSL is a compatibility layer for running Linux binary executables natively on Windows. It is highlighted in the video as a game-changing feature that allows developers to use Linux tools and applications within a Windows environment. This provides the benefits of both operating systems without the need for dual-booting, which is particularly appealing to developers who require the functionalities of both Windows and Linux.

💡Integrated Development Environment (IDE)

An IDE is a software application that provides comprehensive facilities for software development. It typically includes features like code editors, build automation tools, and debuggers. In the context of the video, JetBrains IDEs are mentioned as a preferred choice for developers across different operating systems due to their sophisticated code completion, integrated tooling, and support for various programming languages.

💡MacBook Pro

The MacBook Pro is a line of high-quality, high-performance laptops developed by Apple. In the video, it is used as an example of Apple's hardware and the associated ecosystem. The speaker discusses their personal experience with a MacBook Pro for developing Ruby on Rails applications, noting the limitations of Apple's proprietary approach and the eventual shift to other operating systems.

💡Ubuntu

Ubuntu is a popular open-source Linux distribution known for its user-friendly nature and strong community support. It is mentioned in the video as the Linux distribution the speaker chose to install after their MacBook Pro stopped working. Ubuntu represents the shift towards a more customizable and open-source development environment for the speaker.

💡Debian

Debian is another well-established Linux distribution that is the basis for many other distributions, including Ubuntu. The video references experimenting with different distributions but ultimately sticking with Debian, emphasizing the stability and reliability that Debian offers for long-term use, especially in the context of server environments.

💡Right to Repair

The 'right to repair' is a socio-political and consumer rights movement advocating for the ease of repairing, modifying, and understanding the technology one uses. The video touches on this topic in the context of Apple products, where the difficulty of repairing hardware due to proprietary design and non-removable components is criticized, reflecting broader concerns about consumer choice and sustainability.

Highlights

The choice between Mac, Windows, or Linux is a crucial decision for programmers, impacting not only the operating system they will use for thousands of hours but also their subconscious.

Using Windows may lead to joining the 'Windows Collective hive mind', while using a Macbook can feel like joining the 'cult of Apple'.

Compiling the Linux kernel from scratch is suggested as a way to break free from proprietary systems and become an 'open source freedom fighter'.

The speaker has experienced the 'pleasure and pain' of all three operating systems over a decade and considers FreeBSD superior.

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 for Ruby on Rails development.

Linux is recognized as the choice of 'hardcore developers', and the speaker built their first PC and installed Ubuntu after their Macbook Pro failed.

GNU/Linux or 'G Plus Linux' is not an operating system by itself but a component of a fully functioning GNU system.

The speaker uses Windows with the Windows Subsystem for Linux (WSL) for development and keeps a MacBook Pro for traveling.

An IDE that runs on all operating systems is essential, and JetBrains IDEs are recommended for their sophisticated code completion and integrated tooling.

Mac OS is praised for its Unix-based system, developer tools, and nice terminal experience, but criticized for its high cost and lack of upgradability.

Linux is king on servers due to its free, open-source nature and reliability, but it can be complex for personal use.

Linux offers the most flexibility for customization and can teach users a lot about how computers work.

Commercial software support and hardware drivers are often lacking in Linux, and its market share for personal computers is low.

The Windows Subsystem for Linux (WSL) allows running a full Linux distro inside Windows, combining the best of both operating systems.

Windows is not a 'walled garden' and can be installed on any hardware, offering easy upgrades and customization.

The final decision on which operating system to use depends on personal preferences, financial status, and whether one values a system 'designed by God himself'.

Transcripts

00:00

Mac windows or Linux that's the single

00:02

biggest Choice you'll ever make if you

00:04

decide to become a programmer not only

00:05

will you spend tens of thousands of

00:07

hours with your OS but it also has a

00:09

profound impact on your subconscious by

00:11

clicking I agree to the terms and

00:13

conditions you are now forever a part of

00:15

the windows Collective hive mind when

00:16

you unbox that Sleek new Macbook you

00:18

unknowingly just join the cult of apple

00:21

and the only way to break these

00:22

proprietary shackles is to compile the

00:24

Linux kernel from scratch to call

00:25

yourself an open source freedom fighter

00:27

who will be your supreme leader jobs

00:30

dates or tour vaals in today's video

00:32

we'll look at the differences between

00:33

Mac windows and Linux from the

00:35

perspective of a software engineer for

00:37

more than a decade I've enjoyed the

00:38

Pleasure and Pain of all three of these

00:40

operating systems and have realized that

00:42

FreeBSD is superior to all of them but I

00:44

don't want that secret to get out in

00:45

many years ago when I got my first real

00:47

job I was assigned a Windows machine and

00:50

got introduced to beautiful Technologies

00:52

like Java and Oracle database from my

00:54

cubicle I use these tools to build

00:56

crappy websites for a failing Fortune

00:57

500 company it sucked but luck through

01:00

divine intervention I was fired from

01:02

that job and started doing remote work

01:03

full-time with my brand new Macbook Pro

01:06

this bad boy had a dual core CPU and a

01:08

full gigabyte of ram I traveled around

01:10

the country from Starbucks to Starbucks

01:12

drinking so lattes while developing Ruby

01:14

on Rails applications on my MacBook but

01:16

eventually I realized that the real

01:18

hardcore developers were using Linux as

01:20

fate would have it my MacBook Pro

01:22

stopped working right on schedule

01:23

exactly 2 years after I bought it so

01:25

that's when I built my first PC from

01:26

scratch and installed Ubuntu around this

01:28

time Richard stallman called at spyware

01:30

so I experimented with a bunch of other

01:32

dros but have mostly stuck with Debian

01:34

what I'm referring to as Linux is in

01:36

fact G new Linux or is I've recently

01:38

taken to calling it G Plus Linux the

01:40

ganu plus Linux system Linux is not an

01:43

operating system unto itself but rather

01:45

another free component of a fully

01:47

functioning gnu system made useful by

01:49

the ganu cor Libs shell utilities and

01:51

vital system components comprising a

01:53

full OS as defined by posix what I've

01:56

learned over the years is that there's

01:57

no perfect OS like today I use windows

02:00

but use the windows subsystem for Linux

02:02

for development and always keep a

02:03

MacBook Pro along with my ski goggles

02:05

available for traveling now when using

02:07

three different operating systems it's

02:09

important to have an IDE that runs on

02:11

all of them and there's nothing better

02:13

than Jeet brains idees the sponsor of

02:15

today's video their legendary family of

02:17

integrated development environments are

02:19

used by millions of developers every day

02:21

and famous for their sophisticated code

02:23

completion and integrated tooling as a

02:25

web developer I'm a big fan of webstorm

02:27

which contains everything you'll need

02:28

for the craziness of JavaScript

02:30

development but can Now understand and

02:31

write code even faster thanks to the AI

02:34

assistant it's a programming optimized

02:36

model that can offer suggestions

02:37

describe your code and write your code

02:39

while understanding the context of a

02:41

large project but most importantly the

02:43

IDE is reliable and fun to use it's got

02:46

an intuitive minimal interface but tons

02:48

of power under the hood so you don't

02:50

need to install a bunch of plugins to

02:51

start being productive and best of all

02:53

you can try out Jeet brain's idees for

02:55

your favorite programming language with

02:57

a 30-day free trial use the link in the

02:59

description deson but now let's talk

03:01

about the pros and cons of developing on

03:03

a Macintosh Apple by far makes the best

03:05

hardware but to obtain it you must pay a

03:07

large tribute like $1,000 just for a

03:09

stand in addition another major drawback

03:12

is that you can't upgrade these machines

03:13

if you want to add more RAM storage or

03:15

gpus the upgrade options are extremely

03:17

limited on top of that that ecosystem is

03:19

designed to lock you in if you want to

03:21

build apps for iOS or the Apple Vision

03:23

Pro you'll almost certainly need to own

03:25

a Mac and if your Hardware ever breaks

03:27

you'll find that the components are

03:28

glued or soldered into place which means

03:30

it's impossible to repair without going

03:32

to the Apple Store and there's been a

03:33

lot of controversy around the right to

03:35

repair but nobody really wants to repair

03:36

their old MacBook by the time it breaks

03:38

there's going to be some awesome new

03:40

thing that you'll just have to buy but

03:41

more important than the hardware is the

03:43

software and one thing that's really

03:44

nice about Mac OS is that it's Unix

03:46

based Unix has been around since the 70s

03:49

and has a really nice file system design

03:51

that uses forward slashes and Mac comes

03:53

with a bunch of good developer tools out

03:54

of the box like Zell git vim and so on

03:57

in addition you can use package managers

03:59

like Homebrew to easily install and

04:01

manage different development tools the

04:03

terminal experience on a Mac is nice and

04:05

tools in the guey look really nice

04:06

although they can be pretty annoying to

04:07

use I'm looking at youf finder but most

04:10

importantly everything works out of the

04:11

box with zero configuration Mac OS

04:14

prevents you from going down

04:15

customization rabbit holes spending days

04:17

configuring Pointless Stuff on your

04:18

machine instead of writing code that's

04:20

actually useful but if you want to get

04:22

really good at computers you'll need to

04:23

learn Linux on the server Linux is King

04:26

the vast majority of servers running in

04:27

the cloud powering the world's

04:28

infrastructure run Linux and that's

04:30

because it's free open- source and

04:32

reliable however very few normies

04:35

actually use it for their personal

04:36

computers why is that it has to do with

04:38

complexity to use Linux you first need

04:40

to choose a family like Debian Arch red

04:43

hat genu and many others then you have

04:45

to choose a drro in that family like

04:47

under Red Hat you've got Enterprise

04:49

Linux vedora Centos Rocky Linux and many

04:52

others then you'll have to choose a

04:53

desktop environment like gnome KDE and

04:56

so on then finally you'll need to open

04:57

up the terminal type in a bunch of

04:59

commands to resolve dependencies compile

05:01

things from Source update file

05:03

permissions then a few weeks later you

05:04

should be good to go some dros are

05:06

designed to be extremely userfriendly

05:07

like the Debian based Linux Mint but if

05:10

you really want to be an apex Alpha

05:12

programmer you'll likely want to go with

05:13

something in the arch family allowing

05:15

you to legally say I use Arch by the way

05:17

not only is Linux free but it offers you

05:19

the most flexibility for customizing

05:21

your machine and in turn you're likely

05:23

to learn a lot more about how computers

05:24

actually work when you use it and if you

05:26

really want to get into something like

05:27

penetration it dros like Cal Linux are

05:30

highly optimized for that activity in

05:32

addition if you're deploying

05:33

applications on Linux servers you'll be

05:35

much more familiar with the Linux

05:36

ecosystem when you use it every day and

05:38

there's all kinds of amazing developer

05:40

tools you can use on Linux that may have

05:41

a higher learning curve initially but

05:43

can dramatically improve your

05:44

productivity but there are quite a few

05:46

drawbacks the support for commercial

05:48

software like Adobe products and a large

05:50

number of games and drivers for Hardware

05:53

is just nonexistent Linux only has a

05:55

single-digit market share of personal

05:56

computers and many developers just

05:58

choose to ignore it all together but

06:00

Linux is not the only open source kernel

06:02

if you're really Brave you can use other

06:03

kernels like open BSD Minix or redo but

06:07

then you'll really be on your own and

06:08

ultimately when you have to configure a

06:10

lot of things by hand it makes the

06:11

entire system more brittle which means

06:13

you'll eventually break something stupid

06:15

and end up spending two days debugging

06:16

your bash profile which is one of the

06:18

leading causes of a neck beard Linux can

06:20

be painful at times but you need that

06:21

pain to grow you don't know real pain

06:23

though until you've tried to develop on

06:25

windows at first you're going to need to

06:26

charge your mom's credit card $199 for

06:29

Windows Pro then when you install it

06:30

it's going to try and sell you a bunch

06:32

of crapware like Microsoft Office and

06:34

one drive even if you decline you'll

06:35

still need to log into a Microsoft

06:37

account is so it can spy on you in

06:38

perpetuity in order to resell you that

06:40

same crapware every day for the rest of

06:42

your life when you boot it up you'll

06:43

find artificial intelligence everywhere

06:45

you'll need a co-pilot just to manage

06:47

all your co-pilots now if you're coming

06:48

from Unix you'll notice some weird

06:50

things like it uses backs slashes for

06:52

file paths and every day or two the

06:54

system will shut down an update to make

06:56

sure you have the latest spyware

06:57

installed when it comes to open source

06:59

software Dev Vel mment Microsoft has

07:00

some skeletons in the closet in the 9s

07:02

it had a strategy to embrace Open

07:04

Standards extend them in incompatible

07:06

ways in order to extinguish them later

07:08

on and Balmer once called Linux a cancer

07:10

how much do you think this Advanced

07:12

operating environment is worth but

07:14

nowadays things are different even

07:15

though I hate Microsoft I use Microsoft

07:17

VSS code to write my Microsoft

07:19

typescript code then push it to

07:20

Microsoft GitHub and install my

07:22

Microsoft mpm packages then deploy it to

07:24

Microsoft Azure from my Microsoft

07:26

Windows machine at some point Microsoft

07:28

realized the way to win over developers

07:30

was to become less like Windows and more

07:32

like Linux and the killer feature for

07:34

that is the windows subsystem for Linux

07:36

which allows you to run a full Linux

07:38

drro inside of Windows not just an

07:40

emulated one which gives you the best of

07:42

both worlds you can use all your

07:43

favorite Linux terminal apps and even

07:45

run Linux guy apps like VLC and in

07:48

the past I used to dual boot Windows and

07:50

Linux but WSL has made that unnecessary

07:52

it's not perfect and there are some

07:54

random issues that come up and WSL can

07:56

be painfully slow at times but it's a

07:58

pretty awesome feature overall and one

08:00

huge benefit of Windows over Mac OS is

08:02

that it's not kept in a Walled Garden

08:04

Windows is proprietary but it can be

08:05

installed on any hardware which means

08:07

you can easily upgrade your RAM CPU GPU

08:10

Etc but now that brings us to the final

08:12

question which tribe should you join

08:14

well I've created a handy flow chart to

08:15

help you choose the first question is

08:18

are you rich if you answered yes then

08:20

the answer is pretty easy Mac OS but if

08:22

you answered no the next question is do

08:24

you have a girlfriend Andor Al life if

08:26

you answered yes then Windows is the

08:28

optimal choice then your final question

08:30

should be do I want an operating system

08:32

that's designed by God himself if you

08:34

answered no then Linux is your best

08:36

choice but if you answered yes then the

08:38

obvious choice would be Temple OS

Rate This

5.0 / 5 (0 votes)

العلامات ذات الصلة
OS ComparisonProgrammingDeveloper InsightsMac HardwareWindows SubsystemLinux FlexibilitySoftware DevelopmentOpen SourceDeveloper ToolsTech FreedomHardware Upgrades
هل تحتاج إلى ملخص باللغة العربية؟