I’ve used NixOS as the only OS on my laptop for around three years at this point. Installing it has felt sort of like a curse: on the one hand, it’s so clearly the only operating system that actually gets how package management should be done. After using it, I can’t go back to anything else. One the other hand, it’s extremely complicated constantly changing software that requires configuration with the second-worst homegrown config programming language I’ve ever used.
I don’t think that NixOS is the future, but I do absolutely think that the ideas in it are, so I want to write about what I think it gets right and what it gets wrong, in the hopes that other projects can take note. As such, this post will not assume knowledge of NixOS — if you’ve used NixOS significantly, there probably isn’t anything new in here for you.
NixOS is talked about a lot – but it seems impenetrable for a newcomer or outsider to get into it.
“but it seems impenetrable for a newcomer or outsider to get into it.”
Because this is the rabbit hole of trying to fix package managers, dependencies, and the problems they create; by creating more problems. The Linux desktop is definitely headed towards distros getting all their apps in flatpack (Fedora Silverblue) or Snap (Ubuntu). Even with these static linking app packaging methods, it’s still not comparable to the reliability of the baseline OS and SDKs provided by everyone else for running 3rd party software. The Linux KERNEL is reliable, however the community often conflates that with whether the desktop is reliable. If we were to start objectively measuring DESKTOP RELIABILITY, then we’d see some god awful numbers explaining why it’s never the year of desktop Linux. We’d see how often apps fail to start, how often users are forced to use the terminal (yes, I’m aware most of you are in a facebook like echo chamber where you tell each other users never need to use it, but that’s easily disproven by browsing new user help forums for 5 minutes.), how Linux versions of apps are crashing at many times the rate of Windows or Mac versions (LTT even mentions this in his latest attempt to use Linux as a daily driver), etc.
dark2,
To be fair, it really depends what you do though. Many users get by without ever touching a terminal. While a lot of linux software is terminal based, that same software would require the console running on windows and mac PCs too. This isn’t windows versus linux so much as GUI software versus terminal software.
Software availability can be a good reason to stick with windows. But…I find the reasoning that all linux users have to use terminals is exaggerated. If you want to customize things beyond what the OS has configuration wizards for, then sure you’ll go under the hood, but that’s to be expected. For an average user using a browser and office apps, it’s easy enough to get by without a terminal.
I don’t really watch his stuff…this?
https://www.youtube.com/watch?v=TtsglXhbxno
Well I watched it now and they didn’t use the terminal for any tasks. The one guy had a terminal open showing “top”, but that’s because he thought it was a useful to see and not because he actively used it. Many of the tasks had to do with using new applications for things like office, PDF. Granted, a lot of the windows software users are familiar with on windows isn’t available for linux, but that’s less about linux itself and more about software availability for linux. Some of the tasks they found easier on linux, whereas some they found easier on windows.
Linux has a learning curve. The same is true of both windows and OSX too. Things are inherently unfamiliar when switching to new platforms. Most people learn windows and have little incentive to switch. I tell people to stick with whatever they know unless they have a reason to switch, it’s a personal choice.
For better or worse many computer vendors are forcefully bundling windows and won’t support linux. This makes it a lot more difficult to get into linux as a beginner. Nevertheless I think most people could pick it up fine if it were pre-installed like windows is. My kids haven’t had a problem using linux. I think it helps to gaining experience with portable software from the get-go.
Edit: It’s true that I’d like to see linux gain more momentum, but I think people are mostly creatures of habit and change is hard.
Part 1 : https://www.youtube.com/watch?v=0506yDSgU7M
Part 2 : https://www.youtube.com/watch?v=3E8IGy6I9Wo
Part 3 : https://www.youtube.com/watch?v=TtsglXhbxno (your link)
Part 4 : https://www.youtube.com/watch?v=Rlg4K16ujFw
Kochise,
Thanks. Do any of the videos contradict what I’m saying given that I don’t claim linux is for everyone or that it doesn’t have a learning curve? Most of us have gone through this experience already, Really Linus of LTT is just a decade or two behind us.
I don’t watch his videos because he takes clickbait, ads and corporate sponsorships way too far for my tastes. Also while he’s undeniably successful at capitalizing and promoting his youtube channel, I actually find him less interesting and qualified than the other tech channels, but that’s just me – to each their own.
You should watch it, yeah it’s somewhat “clickbaity”, but the content is genuine and he does speak with his heart. The product is shit, so he says. He’s accurate and legitimate due of his experience, his advices are spot on.
The sponsoring is short, you can skip it very easily, keep in mind he have a staff to pay, he’s not just on his own.
Kochise,
Yes, but I still see it as just one opinion of many and the same is true going in other directions. MacOS too. When I worked briefly with macos I was really out of my element. Nothing worked the way I was accustomed to even the damned backspace key. I didn’t know how or where to find things. I tried in vain to run downloaded software until a coworker pointed out a setting somewhere in the system that needed to change. Anyone who’s a daily driver would know that stuff but for a new user it was not at all intuitive. None of this is to say things are necessarily worse but the learning curve is always there when you pick up a new OS.
What they should have done for the sake of the video in order to reduce bias is find someone migrating from *nix to windows for comparison, but they didn’t do that because they are a windows shop. It’s only natural that they’ll show a preference for the platforms they already know. Nobody is surprised by that.
Yea but I prefer more technical content from channels that aren’t trying to sell things every few minutes. I feel like his channel’s got worse with sponsorships and selling out than in the past. Of course I realize people will disagree, but that’s my opinion.
People from the Linux world migrating to Windows ? Where the heck would you find such a rare beast ? Anyway, I guess nobody did a vid on that because its pretty straightforward and if ever you encounter an issue, a quick Google would provide you with plenty of ways to deal with it ? Obviously not the same way around.
The challenge was migrating from Windows to a full Linux use as a daily driver, not just gaming. And as such it is a testimony of how far Linux got into the desktop realm. Not everything is bad, like the printer driver installation that went rather smooth. But for daily tasks that shouldn’t be a problem, be it on Windows or Linux, it was.
That Linux is driven by coders is a thing, but why the hell can’t they organize a bit to get their shit done properly and intuitively ? Like with, say, some common sense ? And the Gnome removing or locking features recently just shows how little care is taken in that regard. So I guess there’s no luck in that field, it’ll be “just” a free kernel and voilà.
Kochise,
Indeed, it usually goes the other way. it’s hard to find people without windows experience due to the windows monopoly. I do think there could be linux only households where kids grow up without windows, but I’m not sure that many are in the workforce yet.
Perhaps you can call that your hypothesis, but I think an unbiased experiment would have merit.
Many people do use linux as a daily driver though. Everything has flaws, everyone has different preferences, different priorities, and different use cases, so it’s only natural we have different opinions. But sometimes there’s a “it’s not good enough for me, therefor it’s not good enough for you or anyone else” type of rational that starts emerging and I don’t find that reasonable.
I think it’s fair to say that both linux and windows will easily fit the bill for basic needs. People like my parents used the computer for email/web/libreoffice/printing/skype and that’s 100% of what they did. For more advanced needs it really depends on their specific use cases.
The vendors supporting Linux is also an obvious chicken & egg problem of market share.
Lennie,
True. I think it goes even further than that with computer vendors by far and large forcing linux users to buy unwanted windows licenses, which should be flat out illegal. They’ll argue it’s a vendor’s right to sell whatever they however, I think we need to put consumer rights above vendor rights.
Not sure, this reply seems to be first admitting that Linux isn’t for everyone, but then gaslighting yourself into believing there are a bunch of users that will never have a single issue that would require a terminal. So to disprove your point I hopped over to Reddit for a minute and immediately found someone encountering a situation that can’t be solved without a terminal, and definitely no GUI option to fix it. It’s also a great example of how the kernel is stable, but the desktop is anything but. https://www.reddit.com/r/Ubuntu/comments/seplb2/laptop_keyboard_stops_working_after_apt_update/
dark2,
I can’t speak for anyone else, but I’ve said it many times: the easiest path is usually to stick with what you know if you don’t have a big reason to switch.
It’s not gaslighting when it’s true. Average users running graphical software on supported hardware don’t typically need the console. Therein lies the problem though, most people end up trying linux on whatever random hardware happens to be lying around without any vendor support at all. Many don’t even research compatibility. In this light I think linux having as much compatibility as it does is actually very impressive. I don’t pretend it’s all roses; when I was migrating to linux one of my goals was to run my existing windows software on it. That turned out to be a disaster. I think it would have been better to go in with no expectations of windows binary compatibility and stick with software that’s actually built for linux.
Also too often anti-linux crowd ignore that windows isn’t all roses either. I’ve found that long term hardware support is often better on linux than windows. Every time I update windows (which is infrequently, but still…) I end up having to throw away incompatible hardware. With windows 10 my scanner stopped working, with windows 7 it was video capture hardware and a printer. In windows XP I lost advanced features of a multi button mouse and I think another capture card. In windows land you just have to accept that vendor support for their proprietary periferals has a time window attached.
https://help.getdoxie.com/originaldoxie/software/windows10/
Linux isn’t ideal either though because for better or worse linux developers have to reverse engineer the hardware before it can be supported. On the flip side once that work is done we’re much less exposed to planned or unplanned hardware obsolescence.
That doesn’t disprove my point, the Fujitsu Lifebook is not well supported by linux and I’ve had problems with it as well, the problems with it go even further than your link. It emphasizes my point about people expecting linux to just work perfectly on any random hardware they throw it at even though no developer has ever worked on it. If you took MacOS and tried to run it on unsupported hardware, it would be an exercise in frustration! Alas this is the reality that linux faces; it isn’t judged by how well it works on supported hardware, it’s judged by how well it works on all hardware, which is a very high standard.
For it’s part Windows benefits from being the monopoly that all hardware vendors have to support. This means that every very buggy hardware gets windows drivers to workaround the hardware bugs. Without the workarounds the same bugs can and do happen on windows too, but they get vendor updates. Linux has no vendor updates and somebody obviously has to put in the work to work around the hardware bugs. I’ve done it for select hardware, but there’s no denying it sucks. Nevertheless the solution for end users is obvious: if you want to try linux use supported hardware from a linux-friendly vendor if possible!
We’d see how often apps fail to start, how often users are forced to use the terminal (yes, I’m aware most of you are in a facebook like echo chamber where you tell each other users never need to use it, but that’s easily disproven by browsing new user help forums for 5 minutes.),
That might be a failure of the medium. It’s a lot easier (when possible) to tell someone “open a terminal, run this” than it is to walk them through 15 pointy-clicky steps (that may not look the same if they’re not using the same distro and version). When I write docs for internal stuff, describing some GUI process is way more trouble than a few commands. Plus, I’m an automation junkie so a command I can script, a GUI process I can’t (other than some rickety GUI automation frameworks).
On the topic, I am interested in NixOS, but not as much as before after reading this. It seems like it’d be too easy to end up with things that act differently depending on how I run them based on which /nix tree I’m in. I get how that can be a positive, but it’s also the path of madness. I’m more interested in DistroBox and/or running apps in containers at the moment. Those have some of same issues but at least the config is familiar.
https://github.com/89luca89/distrobox
Let’s also not forget for the average user the Windows registry is just as scary as the terminal. You might say: it’s not a terminal, but it’s clearly just as arcane.
I agree about the Facebook echo chamber effect. We can see it even here. Your point about package managers is a good one, yet the alternatives we have on Windows (and MacOS to a lesser extent) aren’t that much better and often produce worse results. If you want to see a package manager done right from a technological standpoint, look at mobile app stores. This is what you can do with a stable base system with a relatively stable ABI. You can put a package manager on top of it, and so long as the base remains consistent, developers and packagers know what to expect. Note though that I’m talking only about the technology of mobile app stores and operating systems, not their business practices.
Something like FreeBSD would lend itself well to this. The base is outside the package manager and remains consistent throughout the current major release, while ports is on top. If that concept could be used by a Linux distribution that really doubled down on consistency and useability, we might have one hell of a winner. It probably wouldn’t move the Linux desktop needle as there are other problems facing that, but I know I’d love using it personally.
” the alternatives we have on Windows (and MacOS to a lesser extent) aren’t that much better and often produce worse results.”
I challenge you to find objective data on whether this is remotely true. I’ve never seen an app store, windows installer, or Mac installer destroy other apps or the desktop environment itself (at least not since the the Windows 98 days). All I usually hear as an argument for this being bad is “it wastes a [miniscule amount] of disk space” or “this way every last bit of code is secure” (which isn’t necessary for non-internet facing programs on your personal computer.) If you bother to get the objective data, you’d definitely see just how terrible package mangers are, especially compared to the competition.
dark2,
That argument goes both ways, everywhere you look there’s tons of subjectivity on every side, but where is your objective data? These debates tend to be much more about opinions, which everyone is entitled to.
I’d concede that software outside the repos used to be very difficult prior to flatpaks and snaps. However these new packages distribute dependencies internally work very similarly to windows .msi or android .apk installers and are objectively much more secure than .exe installers.
There’s a debate about flatpaks and snaps inside the linux community because they’re less efficient than the repos and software outside the repos may not have the benefit of regular updates and Q/A, but that’s not really a con relative to windows, where typical windows applications have those exact same cons.
This is the very definition of useless.
There’s a plethora other OSes that have an equally impenetrable learning curve, and yet they find themselves being used all the time. I imagine you’d struggle if we stuck an install of OS/360 in front of you, or VMS, or even HP/UX
The123king,
Yes, I’d say that applies to a lot of software that isn’t very user friendly but can still be useful. A lot of that software is meant to target system administrators rather than end users. Perhaps what OP meant it was useless for her.
“I imagine you’d struggle if we stuck an install of OS/360 in front of you, or VMS …”
// exec pgm=iefbr14
$ DIR [.CMPS340]*.COB
Piece of cake.
Not everything requires a purpose. Some things exist to please the creator/author and aren’t meant to be widely consumed, and some things start out to scratch an itch and grow to become useful to others later. I find it fun to tinker with obscure OSes and new ideas in the FOSS world, which is why I’m a 20+ year member of this community, one which was founded to follow obscure OSes and related news.
Which begs the question: Why are YOU here? What use do you have for a community that is primarily about things you consider useless?
Morgan,
Agreed.
No kidding, OP keeps saying she regrets getting into computers and has little interest in technology preferring to talk about fashion, but that would mean she’s picked a bad site to join in terms of her interests. I think part of her reason for being here is to speak down to males and there may not be anything more to it.
Unfortunately, there are those people whose primary source of pleasure is attacking others and putting down anything they enjoy. I would not like to live that way personally. We see a lot of this these days, in all areas of society. It is quite sad.
I have never used NixOS, but it seems that GNU Guix System is similar.
I installed Guix in a partition of a laptop and I use it regularly.
Pros:
– I love Lisp and Guix is based on Guile, a scheme.
– Telega (Telegram for Emacs) is packaged and easyly installable and I use it a lot.
Cons:
– Important packages (X2go…) are missing.
– Slow boot. Slow upgrade. Upgrade often crashes due to certain packages (0ad, telegram-desktop…) and I usually end up uninstalling them.
This breaks all the cardinal rules of sucklessness… it gets in the way, suffers from NIH (by inventing its own language for package processing), and doesn’t optimize staying out of the package manager as much as possible.
Of all the distros I have tried, It think if we had a version of Arch that focused on stability like Debian/Centos …. it would mostly be completely suckless…
Slackware does too little, Gentoo is too much work, Debian is too slow for what it does, RPM = dependancy hell… pacman installs packages fast, and if it breaks you can revert to the a cached version easily… I don’t like the way Arch has went the past 5 years or so but its a good package manager.
A friend of mine pointed out junest the other day which is an Arch variant you can install in most any distro host (for your stable apps) and run any bleeding edge stuff from junest (which solves the stable unstable dilemma)…. and is more lightweight than VMs.
You might be interested in Void Linux, it ticks a lot of the boxes you seem to be asking for. It’s technically a rolling release but it’s very conservative with updates. It uses runit instead of systemd (very much a “suckless” move), and the base system is quite minimal yet functional. There is also a musl branch with official support if you really want to go “suckless” and get away from glibc.
Morgan,
I use debian now, but others have recommended void as well. I might give a shot next time since void linux seems to have cleaned up a lot of the mess and heavy dependencies like systemd that exists in mainstream distros, which I consider a con.
https://www.slant.co/versus/2722/2692/~void-linux_vs_debian-gnu-linux
I am concerned about support though, applications and cuda drivers. I’ve read write people have got it working in void linux, but I’m concerned about stability (nvidia driver breakages are frustrating regardless of the distro).
I’ll give them a link…
https://voidlinux.org/
Void has indeed improved greatly over the past couple of years, thanks to the tireless efforts of its dev team and their dedication to modernizing it while keeping it sensible with runit, musl, and XBPS.
I don’t use Nvidia cards anymore, but if you need CUDA support you might be better off with a more mainstream distro, warts and all, where it is officially supported.
NixOS offers a level of customisation that most users will never need. I don’t really want to learn yet another programming language to set up my OS. It’s a cool experiment and a useful tool for some subset of developers, but not for me.