Menu
O mnie Kontakt

Fireship w swoim ostatnim wideo analizuje wybór między trzema głównymi systemami operacyjnymi: Mac, Windows i Linux. To fundamentalna decyzja, która ma znaczący wpływ na programistów. Podkreśla, że każda z tych platform ma swoją historię i specyfikę, a także wpływa na podejście do programowania i technologii. Autor zaczyna od wspomnienia o własnych doświadczeniach z każdą z tych platform. Po pracy na Windowsie, poznał technologie takie jak Java, a następnie przeszedł na Mac, gdzie odkrył przyjemności związane z pracą z Ruby on Rails. Po pewnym czasie autor odkrył, że prawdziwi deweloperzy używają Linuxa, co skłoniło go do zbudowania własnego komputera z systemem Ubuntu.

Fireship zaznacza również, że Linux, według jego definicji, to nie tylko system operacyjny, ale również część większego ekosystemu GNU. W miarę jak przedstawia swoje doświadczenia związane z każdym z systemów, opisuje zalety i wady macOS, w tym jego wyspecjalizowane narzędzia dla programistów i UNIX-ową architekturę. Mac oferuje różnorodne narzędzia, które są łatwe w użyciu, ale wiąże się z dużymi kosztami i ograniczonymi możliwościami rozbudowy. Z drugiej strony Linux zapewnia większą elastyczność, ale wymaga więcej umiejętności i wiedzy technicznej.

Następnie Fireship zwraca uwagę na Windows, krytykując go za zastosowanie sztucznej inteligencji w nadmiarze oraz próbę sprzedaży produktów firmowych. Mimo własnych zastrzeżeń, przyznaje, że używa wielu narzędzi Microsoftu, w tym VS Code, gitHub oraz systemu Windows Subsystem for Linux (WSL), który łączy najlepsze cechy Windows i Linuxa. To sprawia, że Windows staje się bardziej atrakcyjnym wyborem, zwłaszcza ze względu na elastyczność w doborze sprzętu i możliwości rozbudowy.

Na końcu Fireship prezentuje praktyczny schemat, który pokazuje, jak podjąć decyzję o wyborze systemu operacyjnego. Zachęca, by zastanowić się nad swoimi preferencjami finansowymi, towarzystwem oraz tym, jaki typ systemu najbardziej odpowiada ich ambicjom programistycznym. Prowadzi to do humorystycznego zakończenia, w którym wspomina TempleOS jako przeszły wybór designu idealnego.

Na czas pisania tego artykułu, wideo Fireship ma ponad 1,9 miliona wyświetleń oraz 65 tysięcy polubień. Tematyka wyboru systemu operacyjnego w kontekście programowania zawsze będzie aktualna, a film bardzo trafnie porusza te kwestie dla wielu przyszłych deweloperów.

Toggle timeline summary

  • 00:02 Wpływ wyboru systemu operacyjnego na programistę.
  • 00:11 Dołączenie do zbiorowości Windows i Apple.
  • 00:33 Przegląd różnic między Mac, Windows i Linux.
  • 00:41 Wprowadzenie do doświadczenia prelegenta z systemami operacyjnymi.
  • 01:02 Przejście na pracę zdalną z MacBookiem Pro.
  • 01:27 Przyjęcie Linuxa po problemach z MacBookiem.
  • 01:45 Definiowanie Linuxa i jego związek z systemem GNU.
  • 02:00 Obecne wykorzystanie Windows do rozwoju z podsystemem Linux.
  • 03:02 Dyskusja nad zaletami i wadami rozwoju na Macu.
  • 04:08 Zalety macOS jako systemu opartego na Unixie.
  • 04:23 Konieczność nauki Linuxa dla lepszych umiejętności komputerowych.
  • 05:32 Rekomendacja Linuxa do specyficznych zastosowań.
  • 05:50 Wyzwania związane z oprogramowaniem komercyjnym na Linuxie.
  • 06:11 Złożona natura konfigurowania systemów Linux.
  • 06:25 Początkowe wyzwania związane z rozwojem na Windows.
  • 07:30 Ewolucja Microsoftu i integracja funkcji podobnych do Linuxa.
  • 08:12 Schemat blokowy do pomocy w wyborze systemu operacyjnego.

Transcription

Mac, Windows, or Linux. That's the single biggest choice you'll ever make if you decide to become a programmer. Not only will you spend tens of thousands of hours with your OS, but it also has a profound impact on your subconscious. By clicking I Agree to the terms and conditions, you are now forever a part of the Windows collective hive mind. When you unbox that sleek new MacBook, you unknowingly just join the cult of Apple. And the only way to break these proprietary shackles is to compile the Linux kernel from scratch to call yourself an open-source freedom fighter, who will be your supreme leader. Jobs, Gates, or Torvalds. In today's video, we'll look at the differences between Mac, Windows, and Linux from the perspective of a software engineer. For more than a decade, I've enjoyed the pleasure and pain of all three of these operating systems, and have realized that FreeBSD is superior to all of them, but I don't want that secret to get out. Many years ago, when I got my first real job, I was assigned a Windows machine, and got introduced to beautiful technologies like Java and Oracle Database. From my cubicle, I used these tools to build crappy websites for a failing Fortune 500 company. It sucked, but luckily through divine intervention, I was fired from that job, and started doing remote work full-time with my brand new MacBook Pro. This bad boy had a dual-core CPU and a full gigabyte of RAM. I traveled around the country from Starbucks to Starbucks, drinking sué lattes while developing Ruby on Rails applications on my MacBook. But eventually I realized that the real hardcore developers were using Linux. As fate would have it, my MacBook Pro stopped working right on schedule exactly two years after I bought it, so that's when I built my first PC from scratch and installed Ubuntu. Around this time, Richard Stallman called it Spyware, so I experimented with a bunch of other distros, but have mostly stuck with Debian. What I'm referring to as Linux is in fact GNU Linux, or as I've recently taken to calling it, GNU Plus Linux. The GNU Plus Linux system. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU core libs, shell utilities, and vital system components comprising a full OS as defined by POSIX. What I've learned over the years is that there's no perfect OS. Like today, I use Windows, but use the Windows subsystem for Linux for development, and always keep a MacBook Pro along with my ski goggles available for traveling. Now when using three different operating systems, it's important to have an IDE that runs on all of them. And there's nothing better than JetBrains IDEs, the sponsor of today's video. Their legendary family of integrated development environments are used by millions of developers every day, and famous for their sophisticated code completion and integrated tooling. As a web developer, I'm a big fan of WebStorm, which contains everything you'll need for the craziness of JavaScript development, but can now understand and write code even faster thanks to the AI assistant. It's a programming-optimized model that can offer suggestions, describe your code, and write your code while understanding the context of a large project. But most importantly, the IDE is reliable and fun to use. It's got an intuitive minimal interface, but tons of power under the hood, so you don't need to install a bunch of plugins to start being productive. And best of all, you can try out JetBrains IDEs for your favorite programming language with a 30-day free trial. Use the link in the description. But now, let's talk about the pros and cons of developing on a Macintosh. Apple by far makes the best hardware, but to obtain it, you must pay a large tribute, like $1,000 just for a stand. In addition, another major drawback is that you can't upgrade these machines. If you want to add more RAM, storage, or GPUs, the upgrade options are extremely limited. On top of that, that ecosystem is designed to lock you in. If you want to build apps for iOS or the Apple Vision Pro, you'll almost certainly need to own a Mac. And if your hardware ever breaks, you'll find that the components are glued or soldered into place, which means it's impossible to repair without going to the Apple store. And there's been a lot of controversy around the right to repair, but nobody really wants to repair their old MacBook. By the time it breaks, there's going to be some awesome new thing that you'll just have to buy. But more important than the hardware is the software. And one thing that's really nice about macOS is that it's Unix-based. Unix has been around since the 70s and has a really nice file system design that uses forward slashes, and Mac comes with a bunch of good developer tools out of the box, like zShell, Git, Vim, and so on. In addition, you can use package managers like Homebrew to easily install and manage different development tools. The terminal experience on a Mac is nice, and tools in the GUI look really nice, although they can be pretty annoying to use. I'm looking at Ufinder, but most importantly, everything works out of the box with zero configuration. macOS prevents you from going down customization rabbit holes, spending days configuring pointless stuff on your machine instead of writing code that's actually useful. But if you want to get really good at computers, you'll need to learn Linux. On the server, Linux is king. The vast majority of servers running in the cloud powering the world's infrastructure run Linux, and that's because it's free, open source, and reliable. However, very few normies actually use it for their personal computers. Why is that? It has to do with complexity. To use Linux, you first need to choose a family, like Debian, Arch, Red Hat, Gentoo, and many others. Then you have to choose a distro in that family, like under Red Hat, you've got Enterprise Linux, Fedora, CentOS, Rocky Linux, and many others. Then you'll have to choose a desktop environment, like GNOME, KDE, and so on. Then finally, you'll need to open up the terminal, type in a bunch of commands to resolve dependencies, compile things from source, update file permissions, then a few weeks later, you should be good to go. Some distros are designed to be extremely user-friendly, like the Debian-based Linux Mint, but if you really want to be an Apex Alpha programmer, you'll likely want to go with something in the Arch family, allowing you to legally say, I use Arch, by the way. Not only is Linux free, but it offers you the most flexibility for customizing your machine. And in turn, you're likely to learn a lot more about how computers actually work when you use it. And if you really want to get into something like penetration, distros like Kali Linux are highly optimized for that activity. In addition, if you're deploying applications on Linux servers, you'll be much more familiar with the Linux ecosystem when you use it every day. And there's all kinds of amazing developer tools you can use on Linux that may have a higher learning curve initially, but can dramatically improve your productivity. But there are quite a few drawbacks. The support for commercial software like Adobe products and a large number of games, and drivers for hardware, is just non-existent. Linux only has a single-digit market share of personal computers, and many developers just choose to ignore it altogether. But Linux is not the only open-source kernel. If you're really brave, you can use other kernels like OpenBSD, Minix, or Redox, but then you'll really be on your own. And ultimately, when you have to configure a lot of things by hand, it makes the entire system more brittle, which means you'll eventually break something stupid, and end up spending two days debugging your bash profile, which is one of the leading causes of a neckbeard. Linux can be painful at times, but you need that pain to grow. You don't know real pain, though, until you've tried to develop on Windows. At first, you're going to need to charge your mom's credit card $199 for Windows Pro. Then when you install it, it's going to try and sell you a bunch of crapware, like Microsoft Office and OneDrive. Even if you decline, you'll still need to log into a Microsoft account, so it can spy on you in perpetuity, in order to resell you that same crapware every day for the rest of your life. When you boot it up, you'll find artificial intelligence everywhere. You'll need a co-pilot just to manage all your co-pilots. Now, if you're coming from Unix, you'll notice some weird things, like it uses backslashes for file paths, and every day or two, the system will shut down and update, to make sure you have the latest spyware installed. When it comes to open-source software development, Microsoft has some skeletons in the closet. In the 90s, it had a strategy to embrace open standards, extend them in incompatible ways, in order to extinguish them later on. And Balmer once called Linux a cancer. How much do you think this advanced operating environment is worth? But nowadays, things are different. Even though I hate Microsoft, I use Microsoft VS Code to write my Microsoft TypeScript code, then push it to Microsoft GitHub, and install my Microsoft NPM packages, then deploy it to Microsoft Azure from my Microsoft Windows machine. At some point, Microsoft realized the way to win over developers was to become less like Windows and more like Linux. And the killer feature for that is the Windows subsystem for Linux, which allows you to run a full Linux distro inside of Windows, not just an emulated one, which gives you the best of both worlds. You can use all your favorite Linux terminal apps, and even run Linux GUI apps like VLC and GIMP. In the past, I used to dual-boot Windows and Linux, but WSL has made that unnecessary. It's not perfect, and there are some random issues that come up. And WSL can be painfully slow at times, but it's a pretty awesome feature overall. And one huge benefit of Windows over macOS is that it's not kept in a walled garden. Windows is proprietary, but it can be installed on any hardware, which means you can easily upgrade your RAM, CPU, GPU, etc. But now that brings us to the final question, which tribe should you join? Well, I've created a handy flowchart to help you choose. The first question is, are you rich? If you answered yes, then the answer is pretty easy, macOS. But if you answered no, the next question is, do you have a girlfriend and or a life? If you answered yes, then Windows is the optimal choice. Then your final question should be, do I want an operating system that's designed by God himself? If you answered no, then Linux is your best choice. But if you answered yes, then the obvious choice would be TempleOS.