Nix is a very casual way to homebrew your Mac without using homebrew because Most apple engineers will not repair your device if it has homebrew or cydia on it, however nix is less known and can fly under the radar
Doesn't MacOS support full disk encryption? I think it was called FileVault or something. If you meant 'repairing' the OS, then I guess I'd agree with these engineers. If you messed up your system with a weird PATH, you should probably learn how it works and fix it yourself
If a company refused to service your computer because of a piece of soft are that runs on their hardware, then you take them to court. I think you are lying
Been using NixOS for about 9 years. Love it. I use it at work, I have since ported it to an ereader, game console, Chromebooks, etc. I use it for absolutely everything.
@Mr.W like the video said, all the emulators are packaged and available. I also have access Gnome 3 so it's also useful for writing code on. 4GB RAM and ARM64. Pretty cool!
@@BrianMcKennaPuffnfresh if you dont mind me asking, how did you get started on porting oses to insteresting hardware? Ive been wanting to do this, but dont really know what i would have to learn. are there any books or resources you can reccomend?
the best part is that for NixOS you can make a flake in which you can declare your entire system configuration including filesystems, environment variables, what shell to use, dotfiles and more. then you can take it further and have multiple outputs in a flake, one for each machine you use!
Don't take this the wrong way, I generally like what you do, I usually learn something new, but I was expecting a comparison against other package managers (explaining what it does better, what others cant do), instead I saw a video of a man installing a package manager, installing librewolf and searching for some other packages. Maybe there was some of the former, but the later seemed to take the most time.
I had that thought as well. If you are just installing packages via nix-env you are doing it wrong (home-manager is what you want). I find Nix to be an intriguing idea but the implementation is highly esoteric and plagued by garbage documentation (particularly for the highly vaunted flakes) that will not really help you beyond the basic hello world and canned simple examples. While building reproducible environments is one of the touted features, doing a node project the nix way with other binary dependencies was a nightmare to get working and other users had issues on their machines. ASDF and go-task glue did a better job in a tiny fraction of the time and just works without having to mess with esoteric syntax. Having seen nix in action at a large tech company with an entire team maintaining internal nix tooling, I now get why they needed a whole team. Working for a startup, you can guess which solution won out for me.
Right? Besides, for automated deployments you should really have an abstraction layer, such as Ansible. Then, it defeats the purpose of having the same package manager on every system.
@@Gunzy83 I have a somewhat different experience. Yes, you have to learn the nix language a little bit, but that is true every time you use a new language, that isn't just a reskin of C, syntactically speaking (and semantically speaking for a good portion of language semantics). And you can go a long way with just copy pasting a basic nix-shell script and changing out the listed packages. That is what I did a good while. What was your problem with "other binary dependencies"? The only problem I could imagine is if they are not packaged. But as long as you use nix on another host distro, you can just get it any other way.
He starts off with it. Nix will run on any system. It is common knowledge that nix is deterministic, so you can pull your cobfig on any system and deterministically create exactly what you want. That's the whole point of nix. It's worse in most ways in which it is comperable to other managers, so that's not a very i teresting video. Making a nix.config is tedious and it runs slower.
The best thing i've ever did was switching from arch to NixOS, it's so good. Pretty hard to get used to it at first tho but now i managed to setup a hyprland + nvidia config for my dev environment
exactly my story minus the hyprland (I'm an awesomeWM diehard). What's even better is it took me about 10 minutes to switch laptops last summer because all my system and application config was handled by nix down to the kernel modules
It really seems to be capturing the spotlight lately. First DistroTube, then Switched to Linux, now Mental Outlaw. Is this the year of the Nixos desktop? :D
Nix is amazing. I'm one of the contributors and I maintain the Lens package. I'm coming out with the Flutter Engine being packaged. I've had a lot of experience with it and yeah, there's a huge learning curve but it's very powerful.
I see that you are pretty new to Nix. You have a lot of nice things yet to discover but here are some that really stood out to me in the video: * You are using Nix, the package manager, not NixOS (you sometimes to use the names interchangeably). * 5:09 flakes serve a completely different purpose. They are kind of the new way to write nix configs. * 5:57 those are not really "instructions". Those things are exactly the same all the time and just list some of the options how you can get the package. * 6:04 nix-env is imperative, you might want to look into declarative configs using home-manager or flakes.
Other than their repo, the OS itself is also pretty cool. The ability to literally save your entire system to a text file is absurdly powerful, but the thing that prevents me from using their OS is doing anything relating to system settings like bypassing the need for authentication or passwords is an absolute nightmare.
You can set autologin (if that's what you mean) and also `security.sudo.wheelNeedsPassword = false` so you can sudo without having to enter your password.
Been waiting for someone to make a video on Nix! I've been loving nix, and it's amazing. With home-manager and NixOS i can have my whole configured in one place.
another thing that's cool about nix/nixOS is the overrides. You can change many things of a package's/derivation's definition, similar to USE flags sometimes (if provided by the packager, but you can define stuff like that too), but also being to change whatever of the package! Adding patches, removing them, changing sources, changing commands of the build process... That said, nix/nixos has its fair share of issues *sometimes*, you might come across stuff that doenst work right, but that's fairly rare.
Since Nix is reproducible, it can reap the benefits of both binary-based _and_ source-based packages managers. If the particular configuration you request is available in Hydra, then it will just download from there. If not, then it will grab the build dependencies and compile exactly the specifications you asked for. Hail Hydra! (Yes, that's the name of the automated build server.)
There is also Guix, loosely based on Nix, but uses Lisp, and is overall much cleaner and more declarative. I've used it for months, and it's super comfy for many tasks. It's also highly bootstrappable, removing the problem of "Reflections on Trusting Trust"
Guix is not bad, but there are many buts! The entry threshold is higher than that of Nyx OS + less packages. About 26 thousand against 80 thousand. And besides, installing something proprietary is more difficult.
Nix could be used to switch GNU Stow, since it handles dotfiles nicely with the home-manager project. Also, having one tool to install all other tools, runtimes, apps and services in a isolated and reproducible way is too good.
Oh man it's 23:43 right now, but the video being about the nix paclage manger makes me interested. Will watch it once I wake up early tomorrow before workout!
Thank you so much for this video! I've been struggling for a while with trying to use Arch with the AUR, but it always seemed to break on me. I really liked using Debian, but the lack of packages made it difficult for me to use it for my needs. I'm now able to combine the stability of Debian with the packages that I need. Thanks again for sharing this information, it's a lifesaver!
People never talk about how much package managers are a huge barrier for new linux users. I used to think you needed programs to be make specifically for Ubuntu or Arch and if they weren't in the repos then you were just screwed. It really hindered my progress a lot and made me want to go back to windows where I could just find the programs I needed online
If GNU didn't limit the official repos to exclusively libre software, I think Guix would be an even better package manager, but as it stands I have to agree that Nix takes first place. As for Nixos, it is the distro I recommend to new users who don't yet have much Linux savvy to unlearn, but are ready to commit. The drawback of its unconvential paradigm (e.g. the nix syntax) is, of course, that you end up getting pushed down a rather unique path and that experience doesn't translate well in the other direction, to more conventional distros, either. What bothers me more though, is that Nixos' config file doesn't actually make all installed packages explicit. So even if you remove all packages listed and rebuild, you will still have software installed, e.g. as part of the desktop environment. This seems to go against the principle of having the entire system configuration contained inside a single file. Furthermore, rebuilding the same configuration on exactly the same architecture will not always give 100% consistent results, so the much touted reproducibility is also not quite there yet. Finally, the documentation is an absolute mess of instructions written for different versions but then never brought into line. But other than those criticisms, I have nothing but praise. Thank you for coming to my TED talk.
what do you expect of the config file where would you expect extra packages to be listed normally it's added to environment.systemPackages if you were to add all the parts of the DE manually it would be inconvenient you would have to add EVERYTHING by hand basic stuff like sudo included if you're insane enough you can try
@@genericgamer1319 Whether wanting such fine-grained control is insane or not, it is exactly what I understand Nixos to be advertizing. So of course, I would indeed expect the ability to remove basic packages (e.g. sudo, vi, file and window managers) by means of the config file. Like reproducible builds, that was one of the main selling points after all.
@@seerlite5256 Yup. Pretty essential if you're running x86. Choice of firmware and microcode is strictly better then being stuck with whatever buggy and insecure versions you already have
@@seerlite5256 the issue is that Nonguix is source-based only. Also, for some reason, Guix substitute servers are really slow. But otherwise, I much prefer Guix than Nix
NixOS is really awesome. It's step above all other distros. If only adoption increased a lot, so that it wouldn't require so much work to solve relatively uncommon problems (because it'd already be done by someone else)...
NixOS is excellent but keep in mind that the advantage of things like Flatpak and Snap is they will run software in a sandbox, which can be helpful if it's a proprietary something that you don't fully trust.
I’m so used to the Mac Terminal(MacPorts and Homebrew) and Debian(Kali) apt. But the package manager seems really interesting. I give it a try at both. My first Linux was Gentoo in 2003. So used to apt installation I never liked anything else then BSD based and Debian distros.
I was literally just thinking today about how I wanted to move away from Arch since each distro seems to have it's own little annoyances that crop up every now and again, but the AUR was just too good. Nix looks amazing!
To be fair nix repos aren’t nearly as complete as the AUR, despite what outlaw said. Actually, there are tons of less popular packages missing, I guess most of the 80000 packages are just some variations/old versions of other packages.
@Mattia Borda it's uncommon to have multiple versions of things. Nix allows you to reference old versions from nixpkgs so there's not much reason to keep old versions in nixpkgs.
@@BrianMcKennaPuffnfresh denaro, komikku, zapzap, telegrand, identity, avvie, video downloader, cavalier, upscaler, gradience... This is stuff I found in just 5 minutes. Can you name me packages from nixpkgs not in the AUR?
Wow thanks for explaining this, I finally get it. I came across Nix while watching a Docker conf video and the creators we talking about using both Nix + Dockers but I just couldn't understand why. Now it all make sense. The creator also mention nix is also good as a version controll manager. You might want to do a video on this feature.
you should mention that nix derrivations can be overrided, so you can take any package and just change compilation options or where you get the source from or apply custom patches. the idea is since it is source based, and deterministic, if you don't override a derivation, you are gonna download it from a binary cache but if you do override it you are gonna compile it.
you're always making videos as soon as i start looking into something started toying with nix and then nixos in a vm for the last week and here you go publishing a video about it
Nix is great, I just wish it had more GUI frontends for things. I prefer using a GUI (using Octopi atm) to manage my packages, and Nix doesn't seem to have anything like that yet.
there's a guy working on making that, and honestly the way nix /nixos is, it literally is begging for a ui to be made for it, all the settings and whatnot could be toggled by a nice ui...
I watched this video when it first dropped. I had no clue what you were talking about nor what I was looking at. And now I come desperately looking for a replacement to ‘apt’.
Oh god, to install packages I used commands for Nix OS and could not understand why nothing worked. I reinstalled Nix 10 times, I tried single-user and multi-user version - all for nothing. Only a week later I rewatched the video and finally noticed 🥳
You are right, but AUR has 12879 contributors while Nix has 2400, pretty impressive that these contributors could package so many software. AUR is still unbeatable, Arch is practically anywhere in the linux community, props to them
Librewolf constantly falls behind on firefox updates. This is a security nightmare. Especially because it’s very trivial to just install ublock origin yourself and change the few settings to your liking.
love the ease of rollback, will need to check the users it creates at install time and the passwd/keys - but definitely installing it on a test machine. Thank you
When you compare the package number between Nix and the AUR, you are forgetting that the AUR does not contain the packages in the official repos (13754 as of right now).
The are a lot of duplicates between the two, mainly from numbered releases in the main repos and guy trunks un AUR, which makes it harder to really compare. With mentioning about Nixpkgs is the fact that the entire thing is just a normal GitHub repository that anyone can submit issues and pull requests to. Even when an updated version isn't in nixpkgs-unstable, someone's probably already made a PR to fix that and its possible to install directly from that PR rather than waiting for it to get merged.
I have no plans to stop using linux anytime soon, but this was my biggest complaint about it. Not necessarily that you can't install everything, but that there are so many different sources, none of which are entirely complete. There is still some work to do, particularly for nonfree software (eg steam, spotify, etc client is free, but not open source) can still be a pain if its only built for your distro, but if nix takes over I can see that problem being resolved as well.
@@jaimeFaithBasedOne certainly helps, but still not a perfect solution. For example, one particular piece of software I struggled to get installed properly on fedora was Aesprite. To my knowledge, thats not on any distros package manager. Actually, thinking about it again, I think that might be the real problem. There are quite a few near complete solutions (distrobox, flatpak, nix), but nothing all encompassing. I guess the ideal in my eyes would be a compatibility layer that allows software built for one distro to be installed on others, e.g. installing .deb on fedora. Basically, the linux version of windows .exe or macos .dmg
@@bigbodge maybe it needs an .appimage? I installed silverblue on my laptop and it's such a pain to overlay packages that I have been levaraging all the options: appimags, flatpaks, distrobox, compiling from source. I would complain about this being a linux problem, but for windows and mac powerusers their a lot of ways to deal with software installs too
@@jaimeFaithBasedOne app images have always worked poorly for me, especially with getting them integrated with the application menu I wouldn't even mind losing the application menu as a whole, and just launching all software from the terminal/file manager, the problem comes when 80% of your software is in this application menu and 20% can only be accessed through the executable.
I think all this begins with the idea of comparing a Deployment Domain to a programming language software, whereas - memory = disk - value, object = file - address = path name - pointer dereference = file access - pointer arithmetic = string operations - dangling pointer = path to absent file - object graph = dependency graph - languages without pointer discipline (e.g. assembler) = typical Unix-style deployment - languages with enough pointer discipline to support conservative garbage collection (e.g. C, C++) = Nix - and et cetera... Thinking that way, we could apply programming language concepts into operating systems, and consequently applying the functional paradigm into that. The idea of transforming systems, packages, shells into pure functions is pretty interesting in my opinion, every machine is a turing machine and theoretically could run the same software in the same way, but the things we do imperatively in our system cause side-effects that we cannot reason about later, which then creates another environment in which packages can break. Nix and NixOS however offers a way to track our side-effects in our system by declaring in a config file using the Nix lang, this is way better than just performing these side-effects imperatively and then try to remember then later. Isolated builds also forces the pkg creators to declare it's dependencies using the Nix package manager, which also enforces to declare the version of the pkg, and it's SHA256, having all these information allows the Nix package manager to have multiple versions of the same pkg used by different programs, that's why /nix/store is a read-only dir. Nix of course have it's drawbacks since there are some programs which does not support this type of functional package management, but there are escape hatches like docker and the buildFHSUserEnv fn from nixpkgs repo. Also, docs are not too good, the community is divided by the use of flakes and the new nix command, and learning curve is steep since some knowledge of functional programming is needed to do complex stuff, but overall is pretty good (especially for power users) and I cannot go back to use traditional distros and package manager nowadays.
This is pretty much exactly how Nix was initially conceived. The PHD thesis for which Nix was the implementation has Chapter 3 titled "Deployment as Memory Management", and includes sections on "The file system as memory" and "A pointer discipline", which are exactly what you started describing. Nix also literally has its own garbage collector to delete old packages that are no longer being referenced by packages pinned as "gc roots". It technically could delete them immediately when they stop being referenced, but packages are often a lot slower to build than most functions are to compute, so they're effectively memoized and a newer package can reference a previously unreachable package without having to rebuild it.
I am a freelance coder and a lot of clients insist on using Skype for communication. I have the aur version of skype installed and so far it doesnt do anything shady other than setting itself to open at startup
How does it work on all distros? Is it like snap or flatpak? How big are the packages compared to apt packages? How does telhe performance compare to apt packages?
The most interesting thing about nix is that it's just completely different from every other package manager on every single level. From the way their virtual filesystem works to the way their dependencies are resolved, and even though it takes a lot of effort to understand why it's done in such an unusual way, but if you dig into it, you realize how well it synergises with itself and why its architecture makes perfect sense. The only downside is that it is basically alien tech. It can be too unusual for normies. It can be too much to understand why it's done the way it's done. But I actually recommend going next level and switching to NixOS -- it's an OS based on nix architecture.
The fact that I have a backup of my configuration.nix makes me absolutely fearless on my computer. Oh and the rollback too. I used that just today when I somehow managed to break Alacritty. How does one even break a terminal emulator?
You should've talked more about the nix-shell command since it is the only thing making the package manager unique besides scripting with the nix language and rolling back. It should also be noted that in NixOS you are barely ever going to use the nix-env command since there is a more declarative way to install packages through the configuration.nix file.
@@olifloof The only issue with that is that Home manager seems to use nix-env behind the scenes and doesn't work if you use nix profile. Though with Home manager, I'd only use either when I want something quick and dirty and don't know if I want to keep something in the config.
The best thing about NixOS is switching to RHEL because you can never find, let alone hire, people who know NixOS good enough to drive it inside an enterprise environment.
nix is less of a mac package manager and more a supporting-every-possible-platform package manager, but yeah mac users really are spoiled for choice that being said I'd totally just wait for asahi to be good enough to daily drive before I actually pick one up myself
I think I love the technology, it’s just the way to interact with it is unfriendly and I think that deters a lot of potential users. Wishing it was more straightforward like: nixpkg install … and nixpkg uninstalll … and nixpkg search …. Personally I find that with PacMan too
This _seems_ really great. I could see replacing homebrew with nix, on my macOS system. But, on my Debian-based system - my daily driver OS - I am concerned about dependency issues. For an Arch-user, I imagine resolving dependency issues are quite common. On my Debian-based system, however, I have had _no dependency issues._ Installing and upgrading packages, for 3+ years, has _never_ broken my system - nor broken any app on my system. I have _no (current) experience_ resolving dependency issues. The last dependency issues I resolved were on Fedora 7, in 2008. Will I regret running nix package manager on a stable, Debian-based distro?
Thanks Kenny -- this is one of your best ones yet. I am still a bit fuzzy though ... since AUR is pretty inclusive, why would an arch user bother installing the Nix PM? PS I have never broken my system installing packages. Those darn developers did it. ;-)
Hey, would love to see you do a video on Paranoia Text Encryptor. Its not on Nix package manager or AUR - only available as a .deb package. Would like to see you getting it working on an Arch based or Redhat based distro!
I have and will continue to install stuff like zoom per flatpak. I know it ain't perfect, but the added isolation makes me sleep better. But for some other Software Nix is a good fit.
With Nix you get a binary cache for every derivation (package) in Nixpkgs, so you don't need to compile anything. At the same time, Nix makes it trivial to change anything about a derivation (such as the source version or build flags), in which case you will transparently compile the package with those changes included when rebuilding your system.
Interesting package manager. I wonder how they assure that it will run on any distro. Are you sure is not using some kind of containers, like flatpak/snap?
It installs everything into its own root level directory; /nix. Building packages is sandboxed, but running them keeps them isolated entirely through clever use of the filesystem rather than containers. For closed-source applications that require an FSH compliant system like Steam, Nix sets up a chroot when running them.
3:30 Could you do a video on how to check if a script is dangerous before running it? I’ve heard a lot of RUclipsrs say to do that but never explain the how.
Download the script (don't run it!), open it with a text editor and check for suspicious URLs or weird behavior (like trying to run commands that an install script shouldn't need to run). Ofc you need some programming knowledge and know a little bit of shell 😁
To me nix was a life saviour, used void Linuxbefore which was good tbh, but when I messed up something and had to wipe the system, getting back my exact same old config was painful. With nixos, I just had to take the configuration.nix file and run nixos-rebuild switch. and everything including the software I use was back i seariously can't go back to any normal distro now
I'm staying with arch, if you want to go with nixos and gargle all their crappy docs whenever you actually want to do something more advanced, then go ahead.
Nix isn't a true replacement for the AUR. AUR doesn't only have packages, it's also a utility. Things like obs plugins for example are much easier to install on arch than even windows because of the AUR.
i think you got the 2 mixed up how is the AUR an utility i never knew you could configure packages with it without editing the pkgbuild or installing a package that replaces files in which case Nix has a few OBS plugins not many but it\s got some
The problem with every system like that is its need of maintainers. If you don't find people deploying the packages for it, the best package manager in the world can't help you. It's the whole point why pacman on Arch works that well: Creating a package is pretty easy in most cases.
Any interest in using NixOS? Not just Nix the package manager. Personally, after being able to write the whole system setup in one configuration file, I can't go back to other distros lol. I know you can write scripts to more or less auto setup an arch install, or whatever other install. But you would have to maintain that yourself whenever they make little changes that mess up your scipts. Nixos is just phenomenal. Only problem is I don't have a good understanding of its syntax, or functional programming in general frankly. So whenever I want to write something my way, it never works lol. And you can only get so far copy and pasting example code off the wiki and other peoples dots.
I tried Nix, but the desktop icons are all missing for the packages it installed. I try to change the XDG_DATA_DIRS variable in my ~/.profile but it didn't work. I guess it's just good for some command line tools for your dev environment. I'll probably stay with system package manager for now
Nix is a very casual way to homebrew your Mac without using homebrew because Most apple engineers will not repair your device if it has homebrew or cydia on it, however nix is less known and can fly under the radar
or just take it to a normal repair shop and they'll fix it regardless and also do it for less than a 300% upcharge.
@@happygofishing that's my first option
Doesn't MacOS support full disk encryption? I think it was called FileVault or something.
If you meant 'repairing' the OS, then I guess I'd agree with these engineers. If you messed up your system with a weird PATH, you should probably learn how it works and fix it yourself
If a company refused to service your computer because of a piece of soft are that runs on their hardware, then you take them to court. I think you are lying
That's not true
Been using NixOS for about 9 years. Love it. I use it at work, I have since ported it to an ereader, game console, Chromebooks, etc. I use it for absolutely everything.
What ereader?
@@krunk7133 Kobo Clara HD and Kobo Clara 2e
What is the point of instaling nixos on a game console besides for fun ?
@Mr.W like the video said, all the emulators are packaged and available. I also have access Gnome 3 so it's also useful for writing code on. 4GB RAM and ARM64. Pretty cool!
@@BrianMcKennaPuffnfresh if you dont mind me asking, how did you get started on porting oses to insteresting hardware? Ive been wanting to do this, but dont really know what i would have to learn. are there any books or resources you can reccomend?
the best part is that for NixOS you can make a flake in which you can declare your entire system configuration including filesystems, environment variables, what shell to use, dotfiles and more. then you can take it further and have multiple outputs in a flake, one for each machine you use!
That's very interesting, will give it a try.
sadly, it can't actually partition the disks
*ansible has entered the chat*
I was planning on maintaining my config with stow + ansible + git but this almost sounds a lot more convenient
@@dfgdfg_ ansible isn't really declarative and things you get with it aren't particularly reproducible
Don't take this the wrong way, I generally like what you do, I usually learn something new, but I was expecting a comparison against other package managers (explaining what it does better, what others cant do), instead I saw a video of a man installing a package manager, installing librewolf and searching for some other packages. Maybe there was some of the former, but the later seemed to take the most time.
I had that thought as well. If you are just installing packages via nix-env you are doing it wrong (home-manager is what you want). I find Nix to be an intriguing idea but the implementation is highly esoteric and plagued by garbage documentation (particularly for the highly vaunted flakes) that will not really help you beyond the basic hello world and canned simple examples.
While building reproducible environments is one of the touted features, doing a node project the nix way with other binary dependencies was a nightmare to get working and other users had issues on their machines. ASDF and go-task glue did a better job in a tiny fraction of the time and just works without having to mess with esoteric syntax. Having seen nix in action at a large tech company with an entire team maintaining internal nix tooling, I now get why they needed a whole team. Working for a startup, you can guess which solution won out for me.
Right? Besides, for automated deployments you should really have an abstraction layer, such as Ansible. Then, it defeats the purpose of having the same package manager on every system.
@@Gunzy83 I have a somewhat different experience. Yes, you have to learn the nix language a little bit, but that is true every time you use a new language, that isn't just a reskin of C, syntactically speaking (and semantically speaking for a good portion of language semantics). And you can go a long way with just copy pasting a basic nix-shell script and changing out the listed packages.
That is what I did a good while.
What was your problem with "other binary dependencies"? The only problem I could imagine is if they are not packaged. But as long as you use nix on another host distro, you can just get it any other way.
maybe he is gay
He starts off with it. Nix will run on any system. It is common knowledge that nix is deterministic, so you can pull your cobfig on any system and deterministically create exactly what you want. That's the whole point of nix.
It's worse in most ways in which it is comperable to other managers, so that's not a very i teresting video. Making a nix.config is tedious and it runs slower.
The best thing i've ever did was switching from arch to NixOS, it's so good. Pretty hard to get used to it at first tho but now i managed to setup a hyprland + nvidia config for my dev environment
if you don't mind me asking, how'd you get nvidia drivers working + is nvidia optimus support good?
exactly my story minus the hyprland (I'm an awesomeWM diehard). What's even better is it took me about 10 minutes to switch laptops last summer because all my system and application config was handled by nix down to the kernel modules
Same, also using Hyprland + a Nvidia GPU after switching to NixOS from Arch haha. Literally identical.
What’s the benefit you get ?
@@aryan37 Their wiki has a page dedicated to nvidia drivers. Non-optimus seems to be supported, but optimus gets a bit iffy.
I never thought I'd see the day my favorite Linux RUclipsr reviews my favorite package manager :)
It really seems to be capturing the spotlight lately. First DistroTube, then Switched to Linux, now Mental Outlaw. Is this the year of the Nixos desktop? :D
Nix is amazing. I'm one of the contributors and I maintain the Lens package. I'm coming out with the Flutter Engine being packaged. I've had a lot of experience with it and yeah, there's a huge learning curve but it's very powerful.
I see that you are pretty new to Nix. You have a lot of nice things yet to discover but here are some that really stood out to me in the video:
* You are using Nix, the package manager, not NixOS (you sometimes to use the names interchangeably).
* 5:09 flakes serve a completely different purpose. They are kind of the new way to write nix configs.
* 5:57 those are not really "instructions". Those things are exactly the same all the time and just list some of the options how you can get the package.
* 6:04 nix-env is imperative, you might want to look into declarative configs using home-manager or flakes.
Other than their repo, the OS itself is also pretty cool. The ability to literally save your entire system to a text file is absurdly powerful, but the thing that prevents me from using their OS is doing anything relating to system settings like bypassing the need for authentication or passwords is an absolute nightmare.
You can set autologin (if that's what you mean) and also `security.sudo.wheelNeedsPassword = false` so you can sudo without having to enter your password.
WUT?? Whats that called?
@@cybersechs1368 NixOS.
Ah yes, of course. For those times when I want to reinstall my operating system spontaneously. There really is no point in daily driving nix.
@@mrbanana6464 you missed the point entirely.
Been waiting for someone to make a video on Nix! I've been loving nix, and it's amazing. With home-manager and NixOS i can have my whole configured in one place.
another thing that's cool about nix/nixOS is the overrides. You can change many things of a package's/derivation's definition, similar to USE flags sometimes (if provided by the packager, but you can define stuff like that too), but also being to change whatever of the package! Adding patches, removing them, changing sources, changing commands of the build process...
That said, nix/nixos has its fair share of issues *sometimes*, you might come across stuff that doenst work right, but that's fairly rare.
Since Nix is reproducible, it can reap the benefits of both binary-based _and_ source-based packages managers. If the particular configuration you request is available in Hydra, then it will just download from there. If not, then it will grab the build dependencies and compile exactly the specifications you asked for.
Hail Hydra! (Yes, that's the name of the automated build server.)
There is also Guix, loosely based on Nix, but uses Lisp, and is overall much cleaner and more declarative. I've used it for months, and it's super comfy for many tasks.
It's also highly bootstrappable, removing the problem of "Reflections on Trusting Trust"
Guix is not bad, but there are many buts! The entry threshold is higher than that of Nyx OS + less packages. About 26 thousand against 80 thousand. And besides, installing something proprietary is more difficult.
@@krator3
>installing something proprietary is more difficult.
based (if it was true)
I've been using Nix/NixOS for almost 8 years now, personally and professionally. It's by far the best OS/package management experience of any distro.
Nix could be used to switch GNU Stow, since it handles dotfiles nicely with the home-manager project.
Also, having one tool to install all other tools, runtimes, apps and services in a isolated and reproducible way is too good.
Oh man it's 23:43 right now, but the video being about the nix paclage manger makes me interested. Will watch it once I wake up early tomorrow before workout!
Thank you so much for this video! I've been struggling for a while with trying to use Arch with the AUR, but it always seemed to break on me. I really liked using Debian, but the lack of packages made it difficult for me to use it for my needs. I'm now able to combine the stability of Debian with the packages that I need. Thanks again for sharing this information, it's a lifesaver!
People never talk about how much package managers are a huge barrier for new linux users. I used to think you needed programs to be make specifically for Ubuntu or Arch and if they weren't in the repos then you were just screwed. It really hindered my progress a lot and made me want to go back to windows where I could just find the programs I needed online
If GNU didn't limit the official repos to exclusively libre software, I think Guix would be an even better package manager, but as it stands I have to agree that Nix takes first place.
As for Nixos, it is the distro I recommend to new users who don't yet have much Linux savvy to unlearn, but are ready to commit. The drawback of its unconvential paradigm (e.g. the nix syntax) is, of course, that you end up getting pushed down a rather unique path and that experience doesn't translate well in the other direction, to more conventional distros, either.
What bothers me more though, is that Nixos' config file doesn't actually make all installed packages explicit. So even if you remove all packages listed and rebuild, you will still have software installed, e.g. as part of the desktop environment. This seems to go against the principle of having the entire system configuration contained inside a single file.
Furthermore, rebuilding the same configuration on exactly the same architecture will not always give 100% consistent results, so the much touted reproducibility is also not quite there yet.
Finally, the documentation is an absolute mess of instructions written for different versions but then never brought into line.
But other than those criticisms, I have nothing but praise.
Thank you for coming to my TED talk.
what do you expect of the config file where would you expect extra packages to be listed normally it's added to environment.systemPackages if you were to add all the parts of the DE manually it would be inconvenient you would have to add EVERYTHING by hand basic stuff like sudo included if you're insane enough you can try
@@genericgamer1319 Whether wanting such fine-grained control is insane or not, it is exactly what I understand Nixos to be advertizing. So of course, I would indeed expect the ability to remove basic packages (e.g. sudo, vi, file and window managers) by means of the config file. Like reproducible builds, that was one of the main selling points after all.
Guix has Nonguix
@@seerlite5256 Yup. Pretty essential if you're running x86. Choice of firmware and microcode is strictly better then being stuck with whatever buggy and insecure versions you already have
@@seerlite5256 the issue is that Nonguix is source-based only. Also, for some reason, Guix substitute servers are really slow. But otherwise, I much prefer Guix than Nix
NixOS is really awesome. It's step above all other distros.
If only adoption increased a lot, so that it wouldn't require so much work to solve relatively uncommon problems (because it'd already be done by someone else)...
seems like you are getting your wish lol
Not only the package manager is very nice, the NixOS distribution as well! Please, have a look and make a review of it as well!😉
NixOS is excellent but keep in mind that the advantage of things like Flatpak and Snap is they will run software in a sandbox, which can be helpful if it's a proprietary something that you don't fully trust.
I’m so used to the Mac Terminal(MacPorts and Homebrew) and Debian(Kali) apt. But the package manager seems really interesting. I give it a try at both. My first Linux was Gentoo in 2003. So used to apt installation I never liked anything else then BSD based and Debian distros.
Interesting. Very nice. *Let's see you GUIX Package Manager* review.
I was literally just thinking today about how I wanted to move away from Arch since each distro seems to have it's own little annoyances that crop up every now and again, but the AUR was just too good. Nix looks amazing!
To be fair nix repos aren’t nearly as complete as the AUR, despite what outlaw said. Actually, there are tons of less popular packages missing, I guess most of the 80000 packages are just some variations/old versions of other packages.
@Mattia Borda it's uncommon to have multiple versions of things. Nix allows you to reference old versions from nixpkgs so there's not much reason to keep old versions in nixpkgs.
@@BrianMcKennaPuffnfresh I see, then how do yoou explain the fact that in nixpkgs there's so many missing packages compared to the AUR?
@Mattia Borda which ones? It's very rare that I find something in AUR but not in nixpkgs. Usually it's the other way around.
@@BrianMcKennaPuffnfresh denaro, komikku, zapzap, telegrand, identity, avvie, video downloader, cavalier, upscaler, gradience...
This is stuff I found in just 5 minutes. Can you name me packages from nixpkgs not in the AUR?
Do a video on setting up and securing a homelab
I am so excited to see you did a Nix video!!! Coincidentally, I have to present about Nix at my job later this month.
I just discovered this channel. This is amazing
Wow thanks for explaining this, I finally get it. I came across Nix while watching a Docker conf video and the creators we talking about using both Nix + Dockers but I just couldn't understand why. Now it all make sense. The creator also mention nix is also good as a version controll manager. You might want to do a video on this feature.
A solid, professional and through video, just like all of the others
thank you for your content!
Important note: opengl and vulkan is not working out of the box in non nixos systems. So gui apps will work but without acceleration
you should mention that nix derrivations can be overrided, so you can take any package and just change compilation options or where you get the source from or apply custom patches.
the idea is since it is source based, and deterministic, if you don't override a derivation, you are gonna download it from a binary cache but if you do override it you are gonna compile it.
you're always making videos as soon as i start looking into something
started toying with nix and then nixos in a vm for the last week and here you go publishing a video about it
wow, I can manage so many packages now ! Time to have some fun !!
Nix is great, I just wish it had more GUI frontends for things. I prefer using a GUI (using Octopi atm) to manage my packages, and Nix doesn't seem to have anything like that yet.
All amazing programs have a shitty/no ui
there's a guy working on making that, and honestly the way nix /nixos is, it literally is begging for a ui to be made for it, all the settings and whatnot could be toggled by a nice ui...
@@Heynmffc true
@@luisortega8085 is it open source or kept under the table for now?
@@arjix8738 it's okpen source but i dont remember the name
I watched this video when it first dropped. I had no clue what you were talking about nor what I was looking at. And now I come desperately looking for a replacement to ‘apt’.
Oh god, to install packages I used commands for Nix OS and could not understand why nothing worked. I reinstalled Nix 10 times, I tried single-user and multi-user version - all for nothing. Only a week later I rewatched the video and finally noticed 🥳
I'll keep using homebrew because it "just works" for now, but it's good to know that there's an alternative.
Fof proprietary stuff, like Zoom using flatpak actually makes sense.
the reason behind the high number of packages in Nix is multi versions of a package but AUR packages most of them are unique
You are right, but AUR has 12879 contributors while Nix has 2400, pretty impressive that these contributors could package so many software.
AUR is still unbeatable, Arch is practically anywhere in the linux community, props to them
data according to repology
This is false. With a few exceptions, a given release of Nixpkgs has only one version of each package.
@@vpxc Yeah, even though you can install other versions simultaneously (e.g. using overlays) in your Nix package manager
Librewolf constantly falls behind on firefox updates. This is a security nightmare. Especially because it’s very trivial to just install ublock origin yourself and change the few settings to your liking.
Lol seriously
love the ease of rollback, will need to check the users it creates at install time and the passwd/keys - but definitely installing it on a test machine.
Thank you
i recently made a vm where i started setting up a usable desktop in nixos and mo releases a nix-related video.
a kewl coincidence for sure.
When you compare the package number between Nix and the AUR, you are forgetting that the AUR does not contain the packages in the official repos (13754 as of right now).
The are a lot of duplicates between the two, mainly from numbered releases in the main repos and guy trunks un AUR, which makes it harder to really compare.
With mentioning about Nixpkgs is the fact that the entire thing is just a normal GitHub repository that anyone can submit issues and pull requests to. Even when an updated version isn't in nixpkgs-unstable, someone's probably already made a PR to fix that and its possible to install directly from that PR rather than waiting for it to get merged.
This is probably extremely useful in creating docker/podman images with exactly the software that you need.
Yep! Nix is pretty much the fastest way to create reproducible Docker images
I have no plans to stop using linux anytime soon, but this was my biggest complaint about it. Not necessarily that you can't install everything, but that there are so many different sources, none of which are entirely complete.
There is still some work to do, particularly for nonfree software (eg steam, spotify, etc client is free, but not open source) can still be a pain if its only built for your distro, but if nix takes over I can see that problem being resolved as well.
Distrobox?
@@jaimeFaithBasedOne certainly helps, but still not a perfect solution.
For example, one particular piece of software I struggled to get installed properly on fedora was Aesprite. To my knowledge, thats not on any distros package manager.
Actually, thinking about it again, I think that might be the real problem. There are quite a few near complete solutions (distrobox, flatpak, nix), but nothing all encompassing.
I guess the ideal in my eyes would be a compatibility layer that allows software built for one distro to be installed on others, e.g. installing .deb on fedora. Basically, the linux version of windows .exe or macos .dmg
@@bigbodge maybe it needs an .appimage? I installed silverblue on my laptop and it's such a pain to overlay packages that I have been levaraging all the options: appimags, flatpaks, distrobox, compiling from source. I would complain about this being a linux problem, but for windows and mac powerusers their a lot of ways to deal with software installs too
@@jaimeFaithBasedOne app images have always worked poorly for me, especially with getting them integrated with the application menu
I wouldn't even mind losing the application menu as a whole, and just launching all software from the terminal/file manager, the problem comes when 80% of your software is in this application menu and 20% can only be accessed through the executable.
You should make a video on MicroOS - the immutable distro by openSUSE.
Open SUS 😳
Glad to see some Nix representation 🎉🎉
I think all this begins with the idea of comparing a Deployment Domain to a programming language software, whereas
- memory = disk
- value, object = file
- address = path name
- pointer dereference = file access
- pointer arithmetic = string operations
- dangling pointer = path to absent file
- object graph = dependency graph
- languages without pointer discipline (e.g. assembler) = typical Unix-style deployment
- languages with enough pointer discipline to
support conservative garbage collection (e.g. C, C++) = Nix
- and et cetera...
Thinking that way, we could apply programming language concepts into operating systems, and consequently applying the functional paradigm into that.
The idea of transforming systems, packages, shells into pure functions is pretty interesting in my opinion, every machine is a turing machine and theoretically could run the same software in the same way, but the things we do imperatively in our system cause side-effects that we cannot reason about later, which then creates another environment in which packages can break.
Nix and NixOS however offers a way to track our side-effects in our system by declaring in a config file using the Nix lang, this is way better than just performing these side-effects imperatively and then try to remember then later.
Isolated builds also forces the pkg creators to declare it's dependencies using the Nix package manager, which also enforces to declare the version of the pkg, and it's SHA256, having all these information allows the Nix package manager to have multiple versions of the same pkg used by different programs, that's why /nix/store is a read-only dir.
Nix of course have it's drawbacks since there are some programs which does not support this type of functional package management, but there are escape hatches like docker and the buildFHSUserEnv fn from nixpkgs repo.
Also, docs are not too good, the community is divided by the use of flakes and the new nix command, and learning curve is steep since some knowledge of functional programming is needed to do complex stuff, but overall is pretty good (especially for power users) and I cannot go back to use traditional distros and package manager nowadays.
facts
This is pretty much exactly how Nix was initially conceived. The PHD thesis for which Nix was the implementation has Chapter 3 titled "Deployment as Memory Management", and includes sections on "The file system as memory" and "A pointer discipline", which are exactly what you started describing. Nix also literally has its own garbage collector to delete old packages that are no longer being referenced by packages pinned as "gc roots". It technically could delete them immediately when they stop being referenced, but packages are often a lot slower to build than most functions are to compute, so they're effectively memoized and a newer package can reference a previously unreachable package without having to rebuild it.
I am a freelance coder and a lot of clients insist on using Skype for communication. I have the aur version of skype installed and so far it doesnt do anything shady other than setting itself to open at startup
Consider looking into GNU Guix too; it's a bit smaller, but IMO far more principled in every sense.
For me different package manager is part of the fun when distrohopping
I distro hop by using linux containers (LXC)
Remember when Linus (the RUclipsr) was trying to use a distro and somehow while updating the system deleted the whole desktop environment. XD
LTT is an entertainment company making money off of failures.
and that's why I won't recommend popos
common things in linux: steam wants to delete systemd
And system76 used that as an excuse to bake all sort of bloat (e.g. indexing) into the distro so you can't uninstall it with a single simple command.
@@oczi1660 not common lmao. He is just retarded
How does it work on all distros? Is it like snap or flatpak? How big are the packages compared to apt packages? How does telhe performance compare to apt packages?
I recognize your voice from the udemy go course. Best one I've done so far.
what the course was about?
@@rahilarious how to rob people at gunpoint
@@TheSuperBoyProject so it was boring...No use for me
The most interesting thing about nix is that it's just completely different from every other package manager on every single level. From the way their virtual filesystem works to the way their dependencies are resolved, and even though it takes a lot of effort to understand why it's done in such an unusual way, but if you dig into it, you realize how well it synergises with itself and why its architecture makes perfect sense.
The only downside is that it is basically alien tech. It can be too unusual for normies. It can be too much to understand why it's done the way it's done.
But I actually recommend going next level and switching to NixOS -- it's an OS based on nix architecture.
The fact that I have a backup of my configuration.nix makes me absolutely fearless on my computer. Oh and the rollback too. I used that just today when I somehow managed to break Alacritty. How does one even break a terminal emulator?
How would this package manager not introduce the same "bloat" as flatpaks when anything installed obviously needs dependencies? 🤔
Don't forget the Scheme version of Nix, GNU Guix
Yep, it's definitely smaller but in my experience way more polished.
I'm playing with it on a second laptop and it's just really nice!
aint nobody touching that godforsaken programming language bro
You should've talked more about the nix-shell command since it is the only thing making the package manager unique besides scripting with the nix language and rolling back. It should also be noted that in NixOS you are barely ever going to use the nix-env command since there is a more declarative way to install packages through the configuration.nix file.
true I really don't understand why Nix team still maintain nix-env.
if you do want imperative package management with nix, then use `nix profile` instead
@@olifloof The only issue with that is that Home manager seems to use nix-env behind the scenes and doesn't work if you use nix profile. Though with Home manager, I'd only use either when I want something quick and dirty and don't know if I want to keep something in the config.
The best thing about NixOS is switching to RHEL because you can never find, let alone hire, people who know NixOS good enough to drive it inside an enterprise environment.
For Mac OSX: first Fink, then MacPorts, then HomeBrew, and now Nix?
nix is less of a mac package manager and more a supporting-every-possible-platform package manager, but yeah mac users really are spoiled for choice
that being said I'd totally just wait for asahi to be good enough to daily drive before I actually pick one up myself
As long as Apple doesn’t provide something like that, yes..
I think I love the technology, it’s just the way to interact with it is unfriendly and I think that deters a lot of potential users. Wishing it was more straightforward like: nixpkg install … and nixpkg uninstalll … and nixpkg search …. Personally I find that with PacMan too
NixOS and its modules have changed how I use Linux. I'm running NixOS on an ARMv7 SBC called the "Banana Pi M2 Zero" and it works great
Finally I do understand Nix.
Kenny have you taken a look at “looking glass”? It’s a pretty neat project.
this package manager seems cool but for my use case i see little reason to use it over flatpaks
You may also want to try Distrobox. Didn't have a chance to try it yet tho
I am a noob who is hopping distos and this is really interesting!
This _seems_ really great. I could see replacing homebrew with nix, on my macOS system. But, on my Debian-based system - my daily driver OS - I am concerned about dependency issues. For an Arch-user, I imagine resolving dependency issues are quite common. On my Debian-based system, however, I have had _no dependency issues._ Installing and upgrading packages, for 3+ years, has _never_ broken my system - nor broken any app on my system.
I have _no (current) experience_ resolving dependency issues. The last dependency issues I resolved were on Fedora 7, in 2008.
Will I regret running nix package manager on a stable, Debian-based distro?
nix resolves all dependencies by itself and never messes with the host system. It keeps all its files in the nix directory so you don't have to worry.
@@lydedreamoz - Cheers, buddy!
finnally you did a video on nixos
As a small time Nix user (replit nix), it is pretty good
YEAH!!! hyped for this one
I prefer Gentoo prefix to nix, but that's just my preference.
Me too, I have been on Gentoo since 2003 now. NixOS just says to me "Linux bloat for newbies forever staying newbies".
Coincidentally when nix started
@@billeterk No coincidence. Nix started in 2015, Gentoo some time around 2000 as a concept. There's no relationship between the two.
@@terrydaktyllus1320 eh? Nix was released in 2003.
@@billeterk 2015, according to Wikipedia. But even if it is 2003, it has nothing to do with Gentoo.
Thank you. I am going to go and do that right now.
Try to break mint with dmenu, that is.
Unironically very impressive
Thanks Kenny -- this is one of your best ones yet. I am still a bit fuzzy though ... since AUR is pretty inclusive, why would an arch user bother installing the Nix PM? PS I have never broken my system installing packages. Those darn developers did it. ;-)
Hey, would love to see you do a video on Paranoia Text Encryptor. Its not on Nix package manager or AUR - only available as a .deb package. Would like to see you getting it working on an Arch based or Redhat based distro!
What about flatpaks? Zoom, Spotify etc is on there, too.
zoom and spotify are proprietary spyware, you dont want to use them
@@Xiefux Agreed, he did mention those though(watch the video). My question is why install one package manager over the other, lol.
If you comment on Nix, then why not on Guix, which is similar to Nix, but uses Guille/Scheme, and it's Stallman-approved? ;)
I get used to pacman manager and Arch Wiki which are the best in GNU/Linux land.
Wish you best luck with your choice.
I have and will continue to install stuff like zoom per flatpak. I know it ain't perfect, but the added isolation makes me sleep better.
But for some other Software Nix is a good fit.
having Nix as your package manager is like having a friend who owns a PS1 and all the latest games like Crash Bandicoot
Please cover Norton password manager breached news in a video explaining the credential stuffing attack.
i cant see how this is better that compiling the package and every single dependency from pkgsrc
With Nix you get a binary cache for every derivation (package) in Nixpkgs, so you don't need to compile anything. At the same time, Nix makes it trivial to change anything about a derivation (such as the source version or build flags), in which case you will transparently compile the package with those changes included when rebuilding your system.
@@maxwell-lt Yes, in three words "Nix is bloat". You could have saved yourself some time and keyboard wear.
"Gentoo all the way" for me.
Yo Luke, can you make a tutorial for self hosted vpn since you say all of them are scams?
ruclips.net/video/Lk_v6Q0YsNo/видео.html
He already has
Interesting package manager. I wonder how they assure that it will run on any distro. Are you sure is not using some kind of containers, like flatpak/snap?
It installs everything into its own root level directory; /nix. Building packages is sandboxed, but running them keeps them isolated entirely through clever use of the filesystem rather than containers. For closed-source applications that require an FSH compliant system like Steam, Nix sets up a chroot when running them.
3:30 Could you do a video on how to check if a script is dangerous before running it? I’ve heard a lot of RUclipsrs say to do that but never explain the how.
Download the script (don't run it!), open it with a text editor and check for suspicious URLs or weird behavior (like trying to run commands that an install script shouldn't need to run). Ofc you need some programming knowledge and know a little bit of shell 😁
When Jason Tatum isn’t putting up buckets he’s tracking us Linux stuff on RUclips
Reminds me of python package management with conda
To me nix was a life saviour, used void Linuxbefore which was good tbh, but when I messed up something and had to wipe the system, getting back my exact same old config was painful.
With nixos, I just had to take the configuration.nix file and run nixos-rebuild switch. and everything including the software I use was back i seariously can't go back to any normal distro now
I'm staying with arch, if you want to go with nixos and gargle all their crappy docs whenever you actually want to do something more advanced, then go ahead.
Are those repos up to date? Do they get auto updated like snaps or flatpaks?
Nix isn't a true replacement for the AUR. AUR doesn't only have packages, it's also a utility. Things like obs plugins for example are much easier to install on arch than even windows because of the AUR.
i think you got the 2 mixed up how is the AUR an utility i never knew you could configure packages with it without editing the pkgbuild or installing a package that replaces files in which case Nix has a few OBS plugins not many but it\s got some
The problem with every system like that is its need of maintainers. If you don't find people deploying the packages for it, the best package manager in the world can't help you. It's the whole point why pacman on Arch works that well: Creating a package is pretty easy in most cases.
Any interest in using NixOS? Not just Nix the package manager. Personally, after being able to write the whole system setup in one configuration file, I can't go back to other distros lol. I know you can write scripts to more or less auto setup an arch install, or whatever other install. But you would have to maintain that yourself whenever they make little changes that mess up your scipts. Nixos is just phenomenal.
Only problem is I don't have a good understanding of its syntax, or functional programming in general frankly. So whenever I want to write something my way, it never works lol. And you can only get so far copy and pasting example code off the wiki and other peoples dots.
Could you put this on Debian stable and not have to worry about way too old libraries?
Maybe I'll have to nix Homebrew in favor of Nix
I'm pretty sure that that usage of "nix" is more when the package manager got its name than from Unix / "*nix".
@@angeldude101 You're right, it's named after how it "nixes" the outside environment when building packages.
It would be nice if you could cover on "Google Vs Competition Commission of India"
What do you recommend over spotify? ncmcpp and only local files? How would you find music--only on youtube/soundcloud and then yt-dlp?
soulseek
I tried Nix, but the desktop icons are all missing for the packages it installed. I try to change the XDG_DATA_DIRS variable in my ~/.profile but it didn't work. I guess it's just good for some command line tools for your dev environment. I'll probably stay with system package manager for now
Exactly the same problem I had..
I want to hear your thoughts on systemd. As an outsider, it seems like nerds arguing over pointless shit.