Then he’d find a way to make it the #1 AI developer platform or distort reality until it is.
And then everything needs to have the /opt/brewsomethingsomething PATH. /bin:/usr/bin:/usr/local/bin not good enough.
"The /opt/ directory is normally reserved for software and add-on packages that are not part of the default installation"I don't understand why people complain about Apple neglecting developers when desktop Linux provides a superior experience aside from the rare times you need to compile an iOS/Mac specific application.
It's just not hard! It's not more work! And yet the meme about it being more trouble just. won't. die.
You people are supposed to be technologists! Why won't you spend 20 minutes of one time setup to get a better experience?
Not all hardware works? I don't see anybody complaining about having a limited set of hardware options when they buy Apple! Canonical maintains a list of fully compatible computers; just pick one, buy it, and you wind up with a computer just as easy to use as Mac OS but without the endless paper cuts of using a system that has no respect for you at all and thinks it knows better
or reliably use peripherals
Edit: In case it's not clear from my initial, gut-driven snark: I definitely think if you use a reasonably popular distro (commercially backed or not) in 2025, you should never have any trouble connecting peripherals to it, with the possible exception of Bluetooth, which I hear also applies to macOS.
I have no idea how this is supposed to even work, and since it's not my computer I don't mess around trying to install drivers. I just use my phone to call in for Teams.
Things happen, let's not act like any OS is perfect.
The only issue Linux really has is when new chipsets come out you might need to wait 6 months or so for the drivers to be updated. But to be completely fair, on one of my laptops I had no webcam support for like six or seven months until Windows update decided to finally install it for me.
If you need a significant amount of hard drive space, Macs are almost always exorbitantly expensive. I make music so I find myself dual booting between windows and Linux. I don't want to speed 3k+ on a MacBook just to get a 4TB SSD I can add to any Windows PC for 200$.
Plus on Linux you can customize your personal experience to a much greater level. If you dislike X,Y,Z you can disable it or find an alternative.
Both OSX and Windows are cramming so much monetization into the OS, there's a very real feeling that I'm just sharing my computer with a giant corporation rather than actually owning it.
That's basically what I do now, my old M1 MacBook air is more than good enough for LeetCode and I'm more or less know it's never going to fail.
You mean a few month after a new MacOS version has shipped and they've got time to fix all the bugs it introduced, right?
Good thing no one uses that!
(Unless someone wants to correct me.)
The main problem I have with living in a Gnome desktop environment, is with the keyboard. I'm not willing to abandon my use of Emacs control+meta sequences for cursor and editing movements everywhere in the GUI. On macOS, this works because the command (super/Win on Linux/Windows) key is used for common shortcuts and the control key is free for editing shortcuts.
I spent a day or so hacking around with kanata[0], which is a kernel level keyboard remapping tool, that lets you define keyboard mapping layers in a similar way you might with QMK firmware. When I press the 'super/win/cmd' it activates a layer which maps certain sequences to their control equivalents, so I can create tabs, close windows, copy and paste (and many more) like my macOS muscle memory wants to do. Other super key sequences (like Super-L for lock desktop or Super-Tab for window cycling) are unchanged. Furthermore, when I hit the control or meta/alt/option key, it activates a layer where Emacs editing keys are emulated using the Gnome equivalents. For example, C-a and C-e are mapped to home/end, etc.
The only problem is, this is not the behavior I want in terminals or in GNU/Emacs itself. So I installed a Gnome shell extension[1] that exports information about the active window state to a DBUS endpoint. That let me write a small python daemon (managed by a systemd user service) which wakes up whenever the active window changes. Based on this info, I send a message to the TCP server that kanata (also managed by a systemd user service) provides for remote control to switch to the appropriate layer.
After doing this, and tweaking my Gnome setup for another day or so, I am just as comfortable on my Linux machine as I am on my Mac. My main applications are Emacs, Firefox, Mattermost, Slack, ChatGPT, Discord, Kitty, and Steam. My Linux box was previously my Windows gaming box (don't get me started about frog boiling on Windows) and I'm amazed that I can play all my favorite titles (Manor Lords, Hell Let Loose, Foundation) on Linux with Proton.
I have to work with old machines and legacy operating systems quite a bit in my day to day and I always am going to prefer something lighter and with less ways to shoot myself in the foot w.r.t. POSIX compliance. MacOS is Unix certified so I appreciate them being somewhat reserved in the features they add on top of POSIX.
Modern GNU userland utils are nice and fun but if you are looking for compatibility it's best not to use them. Consequently, the MacOS situation doesn't bother me especially given you can install more up to date tools if you want. I think keeping the defaults older and more compatible is a good thing.
If I write a script using BSD esque tools I can be reasonably sure they will work on any Unix-like, whereas if I write/test my script on a machine using GNU utils, I'm fairly likely to accidentally use a GNU extension that would cause the script to fail on an older Unix-like OS. For instance, I do a lot of work migrating code off of AIX,and I need the scripts I develop to work on AIX when I'm gathering environment information from customers. I can't just assume they will have a ~2020+ implementation of Unix userland tools with all the GNU extensions and nice features. Sometimes the machines have been sitting quietly in the back of a data center not being updated for quite a while and will have more "90s style" of Unix tools.
In the end it was was easier to rewrite in Perl than to keep maintaining that thing, struggling for hours to find ways of implementing every little bit of functionality that worked reliably on every OS. You'd add or fix something, and the tests would break on FreeBSD. You would fix it there and it would stop working on NetBSD. And so it goes.
I prefer to use the tools running locally on the same OS I’m working with. For that, MacPorts is great.