Hacker News new | ask | show | jobs
by secondo 2221 days ago
Unlike Windows and MacOS Linux gives you options

I’d rather say Linux gives you choices. Choices that you have to make, rather than options with (sensible) defaults. This is a big reason for why I’ve been unable to switch from macos to Linux as a daily driver every time I’ve tried in the past ten years.

Ironically, it’s simply too costly. Macos has been degrading over the past 6-7 years, but it’s still pretty good at standing out the way.

I’m gladly proven wrong if you can point at a path I’ve missed.

9 comments

One of the “options“ is Ubuntu. Looks like a sensible “default” to me. Just works. Stays out of your way.
Until you upgrade the kernel and your wifi stops working. Or the desktop stops loading and you have to spend time going through logs and googling what's broken this time. Or when you plug it to a secondary screen and it freezes. This happened when I was a desktop Linux user and this still happens (less frequently nowadays though). I'm mainly talking about Ubuntu which is supposed to be beginner-friendly and not some obscure distro.

When I was younger I was very happy to deal with these issues because I learned a lot and probably made me the professional I am nowadays. Over time however I realized much of this knowledge doesn't contribute to my day-to-day work anymore and it's just an annoyance - I now want to turn on my laptop and work right away.

If you want to run linux, buy from a manufacturer with decent linux support. In my experience, all my dell laptops worked seamlessly with linux. No driver hackery required. WiFi never stopped working. However, HP seemed to have very poor support for linux, and you need to install drivers for WiFi manually, which need to be recompiled on each kernel upgrade.
That never happened to me on Ubuntu. Fedora, on the other hand...
objectively speaking, Debian is perhaps the most stable mainstream os in the world. if you want stable give it a try!
Ubuntu is good right after you install it, but then steadily decreases in quality. I got to the point where I avoided updates, because random things always broke.

After trying several distributions. I ended up long-term moving to Arch, it's way more work to setup but it has more of a I built it, I can fix it vibe. I always struggled to fix previous distributions after some update blowing something up.

In my opinion, the biggest thing Mac and Windows has going on is how stable they are.

Yeah. Ubuntu package stuff that is simply broken, which has caught me a few times. RHEL at least support most of their packages.

There's a use case for both distros, but I can rely on RHEL / Centos more.

Not being cheeky, but "just works" except when it doesn't.

Then off to the command line to try to make it work.

And I think the way Linux was built, (ok this will sound naive but) focusing on the "command line" first makes everything second class.

Maybe every cmdline app should also include a binary api to be able to be used in an automated fashion (yes, you can call "system" but that is finicky)

It's not wrong, but as someone who has basically always used both Windows and Linux, and has spent some time managing a Windows network, Windows machines have their fair share of "just works except when it doesn't" too. And then you end up with "try changing this weird registry setting" or "run this random cmd command" too.
I hooe my update from 18.04 LTS ro 20.04 LTS will be the opposite of eventful.
Wait for 20.04.1 or .2. I never upgrade until there’s been enough sample data for fixes to come in. Nor do I ever use the odd-numbered releases.
The only "default" I considered insensible with the latest Ubuntu is that it still overwrites the default system boot loader. I was able to recover through the BIOS boot menu though I can see this how it can deterring new users from trying this.
Sorry, but you can't use trollish usernames on HN (https://www.urbandictionary.com/define.php?term=tikthot) - it ends up trolling every thread the account posts to. https://hn.algolia.com/?sort=byDate&dateRange=all&type=comme...

I've banned this one for now but if you email hn@ycombinator.com with a better username we'll be happy to change it for you and unban the account.

I'm not sure why they insist on installing GRUB when UEFI allows the firmware itself to act as a boot manager (remembering boot options and their order) and the kernel itself can be booted directly as an EFI application.
For Ubuntu and it's derivatives, installing from the command line with "ubiquity -b" should work for that.
How do you debug in that configuration? And would a first time user know how to do that?
Well first of all the goal is that there would be no debugging required if the system works well, and in my opinion less moving parts (like GRUB) means less chance that something breaks.

The UEFI boot entries can be configured by the operating system with the "efibootmgr" command (http://manpages.ubuntu.com/manpages/bionic/man8/efibootmgr.8...) so if a more user-friendly version of it is required then a GUI can be written around that. Whether it's necessary or not is another matter because as far as I know there is no GUI around the GRUB configuration either and it mostly works.

Speaking of GRUB, how it works in Ubuntu land is that there are a couple of scripts that read different configuration files to generate the final GRUB configuration file which is actually a bash-like script (yes, GRUB implements a scripting language) and if you look at it you'd be horrified. The UEFI way of doing things is much simpler.

So the idea would be to 1) check whether the installer is booted in UEFI or BIOS, if UEFI then check if an existing OS is installed and whether it boots in BIOS or UEFI mode (whether the drive is partitioned in MBR or GPT), and then decide whether to skip GRUB (for UEFI-capable configurations) or keep it (for BIOS systems).

grub with timeout 0 achieves the same visual effect, but sometimes you need debugging (windows also has "boot into safemode, android has recovery etc.).

There are many bootloaders you could choose from efistub (which you mention), gummiboot, refind ... . Having one with a user visible interface is useful if you either dualboot or want to expose things like previous kernels or filesystem snapshots.

> So the idea would be

Sure you could do that, or you could set grub timeout to zero if multi booting, larger timeout if not and present the same familiar interface no matter whether you use UEFI or BIOS.

systemd-boot is a good solution to this problem. It's less of a horrible complicated mess than GRUB. You can add menu entries for multiple operating systems, an EFI shell, and the BIOS menu, just like with GRUB. It has a much nicer configuration story and integrates with the other systemd components (so, for example, you can reboot into a different boot menu option through a systemctl reboot flag just like the equivalent feature in Windows).

systemd-boot only supports UEFI systems, so GRUB would still have to be an option for legacy systems.

Check out the Arch Wiki page: https://wiki.archlinux.org/index.php/systemd-boot

I kind of wanted to mention it as what I think is a better alternative but I feared it would label me as a systemd propagandist (given the polarising nature of it, even though personally I think it’s advantages outweigh the - often philosophical - drawbacks).
Sums up my experience pretty well. Here is an old joke about Linux which I remember every time I need to fix by Bluetooth or WiFi:

"In Linux, you can configure everything. And you will be configuring everything"

Despite all the "inconvenient" sides of Linux, it's really an awesome OS if you know what you are doing

hasn't been my experience for several years now. pretty much everything on linux works out of the box.

i spend more time configuring windows than linux.

turning off annoying sounds. installing an app to get 4! virtual desktops. (linux (and mac) have unlimited desktops)

searching and installing essential applications and tools is annoying on both windows and mac, whereas on linux it's a trivial operation.

I made just a few changes and I can switch back and forth between linux and macos now pretty comfortably.

I changed copy and paste to CMD-C and CMD-V. In the terminal app equivalent, I mapped CMD-K and CMD-L to reset and clear screen, and CMD-N to new window.

Those few changes got rid of a LOT of friction points.

> Macos has been degrading over the past 6-7 years, but it’s still pretty good at standing out the way.

This hasn't been my impression at all lately. Even Windows is less annoying.

> Choices that you have to make

What do we want?

Freedom from choice!

When do we want it?

You tell us!

Kidding aside, this is one of the keys to Apple's success: we have made most of the choices for you, and we have very good taste. (and yes, they've been slipping).

In essence, that's also the key value proposition of many luxury (clothing) brands. Not so much that the quality is necessarily so much better, or that you're getting better value for money, you're not (in pure product/price terms). A big part of the value proposition of, say, the Armani brand, particularly for men is: "buy from us and it will be good without you having to think about it".

I agree that the defaults for macos are decent.

However, the customizability of linux goes far far beyond macos.

scripting is possible with macos (say shell scripts, perl and python), but nothing graphical/ui.

(ignoring tk, also ignoring orphaned applescript)

Even something simple like yad would be nice on macos.

Thank you for articulating the distinction of options vs. choices.

More often than not, I just don't care about making the optimum choice. Phone provider? ISP? Dentist? Insurance? Linux distro? Ughn, the miniscule upside of choosing something exactly right for me is overshadowed the the huge downside of choosing the completely wrong thing.

I'm curious, if you install a desktop distro like Ubuntu then what choices do you have to make?
Using Ubuntu.

I use Mint. I pretty much left everything as it defaulted to.

Password. Username. Maybe also hostname.
Perhaps you should start your path to GNU/Linux not by choosing the OS but by choosing the hardware which is designed for Linux.
Buy a laptop with linux preinstalled like the XPS 13, done.

Or build a hackintosh if you want a fair comparison.