Nope it bloody doesn't. The amount of missing features (why can't the scroll direction be different between touchpad and mouse? Why is there no native window management?), stupid bugs and simply undebuggable issues ("A USB device is consuming too much power, it has been disabled"... Which device, they all still work?? Or iPad screen sharing not working without any indication why, or the device refusing to go to sleep when connected to an external monitor that also charges, etc. etc.) just doesn't fit the "just works" bill. Some things work very well, many others don't or do but with subpar UX.
Yes some features are missing and hard to add, but it's like a car with a lacklustre stereo. IME the Linux cae can't run for more than 100km without something breaking.
In fact, I don't remember ever needing to use LD_LIB_PRELOAD. Or driver debugging.
Linux is not perfect, my current laptop did not work perfectly until Ubuntu 22.04.
But your description of things is way hyperbolic.
What does this even mean?
This still unfortunately depends on what you're using it for. If development is your main use-case, MacOS will most certainly not work. It's absolutely dumbfounding how many darwin-specific bugs exist in common software (especially in the age of M1), but the real problems simply come from setting up a decent dev environment. Shopping around to customize MacOS in the way I like it is much more time-consuming than cloning my Nix dotfiles and building an environment from scratch.
It's still possible to use a Mac as a development machine, but the edges around it have gotten really sharp. Most of the Mac devs I know are writing code in a Linux VM, these days.
To quote Big Lebowski, "that's just, like, your opinion, man".
I've used MacOS for development since 2008. PHP, Erlang, JS/TS, Python, Java, C#... It certainly does work.
Almost every[1] dev conference you go to you see people on MacBooks (a tiny percentage running Linux on them). Often the majority of people will be on MacBooks.
> Most of the Mac devs I know are writing code in a Linux VM, these days.
I have the exact opposite experience.
[1] Well, it's an exaggeration and bias of course, but...
For pure development stuff, though? You're torturing yourself on MacOS. For every pretty menubar you enjoy, there's a dead POSIX zombie underneath your floorboard or an encroaching platform limitation coming from the top-down. Then you have to deal with the fact that MacOS is by-far the least stable software target of the Big Three OSes, and managing your libaries/software without third-party software is a nightmare. By the time you install all your package managers, Emacs/Vim plugins, browser-of-choice, three or four versions of bash and Git, Via Xcode, most people ask themselves why there isn't a better way.
Ultimately everyone's experience is anecdotal, but survey says that developers are turning over a GNU leaf...
Ah yes. All developers that go to developer conferences are there to deliver those conferences (whatever that means).
> For pure development stuff, though? You're torturing yourself on MacOS.
And you're saying that with the full knowledge and authority because?...
To reiterate. I've been developing exclusively in MacOS since 2008 in a variety of programming languages for a variety of things.
> there's a dead POSIX zombie underneath your floorboard or an encroaching platform limitation coming from the top-down.
Demagoguery.
> and managing your libaries/software without third-party software is a nightmare
wat
> By the time you install all your package managers, Emacs/Vim plugins, browser-of-choice, three or four versions of bash and Git, Via Xcode, most people ask themselves why there isn't a better way.
wat
I spend about as much time installing this as you spend installing the same on... well, any machine. Because most of that doesn't come preloaded with Linux either. I do agree that XCdoe Commandline Tools are a joke. But how many times a week do you install them (and other tools)? Zero? I can spend 5 extra minutes on my setup once every four years or so.
No idea what the FUD is about "several versions of bash and git", I use a single git and zsh (which is now default on MacOS).
And yes, I stopped using emacs a long time ago (which I used for three years... you guessed it: on MacOS [1]) and switched to a proper IDE.
[1] This was my init.el https://gist.github.com/dmitriid/4078311
Maybe I'm scarred or spurned or something. MacOS has not been kind to my workflow over time though, and going back to using Monterey for work was an exercise in frustration.
So. MacOS wasn't for you, and you extrapolated it to "if you are on MacOS, it doesn't work". Well, it keeps working for me (and a great number of other developers)
For example, over the past 6 years across two jobs I haven't used Docker except for running some tests (bringing up and tearing down MySQL databases or using Google's pubsub emulator). So while it is slow, it hasn't been slow enough for me to care. I haven't had the need to mount NTFS drives. I havent' had the need to use Linux inside MacOS (and the few times I needed it in the past decade VirtualBox has been enough).
On the other hand... I needed to set up a Linux VM on a NAS to run a small family website I built in Elixir + Phoenix. I'm deifnitely rusty in Linux but ooh boy. Good luck getting a relatively recent release onto a system which insists that everything must come from a packge manager and installed via sudo for the entire system. Thank god for asdf, but it was still a pain and a half (because asdf builds everything from source and figuring out the names for the required libs is a masochistic sort of fun).
So your mileage and mine definitely vary.
Just like every single OS. Your linux box doesn't come with most of the things you listed pre-installed and preconfigured: your vim/emacs plugins, your browser of choice, git, your speicifc versions of libraries etc. etc.
Edit: BTW there's a reason there are so many tools like pyenv, or SDKman, or asdf that first appear on Linux and then get ported to other systems. Because the rosy development paradise that is Linux is everything but.
> For professional programmers, I am adamant that Linux is a more consistent experience than dealing with the issue du-jour in MacOS.
Linux has it's own share of issues du jour that impact actual use of the operating system. And most of the issues I have with OS very rarely come down to the problem with the development tools/environments/what not. Hell, I switched to M1 as an experiment about a year after it came out... and everything just worked (big thanks to those who made stuff work under M1, but even non-converted tools kept working).
And I've personally seen many people switch away from Linux to MacOS precisely because they found the overall experience of being in MacOS better. Because even if you "just" develop stuff, you still want your machine to have all the human stuff: from reliable hibernation/sleep to good touchpads to crisp displays to media support to ... yes, "touch up photos or edit video" (not necessarily for a living).
* Best-in-class hardware. Touchpad, M1 power, and battery life.
* With that, best-in-class drivers, I never have to mess with them. Sleep mode actually works.
* If you're an iPhone user (which I am) being able to text with people from the desktop is invaluable.
Everything I did with Windows development I did in VMWare, just having a stable laptop and touchpad was 90% of it for me. Windows actually runs better in VMWare on Mac than on native hardware because the hardware and drivers on Mac are so much better.
These days I'm a cloud dev. Which for me means only three apps I need. VSCode, a browser, and a good *nix terminal. Mac does all three great.
That being said, if all you need is VSCode, a browser, and a good *NIX terminal, then Asahi Linux should feel pretty much finished to you. Or any hardware that promises good Linux support, really. With KDE and a Magic Trackpad, I can get the gesture-driven workflow I loved in MacOS without the... well, MacOS part.
Ultimately, you should use whatever suits you. I'm unconvinced that MacOS remains the best option for most developers, though.
I checked this out, am I right that this is prerelease alpha quality? I should really switch to this??
At least on Linux I can have crystal clear (looking) font on my 2K 27" monitor.
On MacOS it looks blurry because they expect you to buy a higher DPI monitor - there's no subpixel rendering. If you want to share your monitor with your gaming PC as well (and you don't want to spend thousands on video card and monitor), you are left with subpar fonts on your MacOS.
I don't think Macs can claim that anymore, if they ever could:
https://mjtsai.com/blog/2022/12/27/ventura-issues/
https://news.ycombinator.com/item?id=34155875
I get that it was a great bit of marketing, and it's become a fossilized idea in many people's heads, but I've never had the kind of bizarre failures in Linux that the article and the comments talk about regarding modern macOS.
> and apps look gorgeous.
This is a matter of taste. I dislike the Mac UI and the fact Macs only have one UI is one dealbreaker out of many.
Not for me - it still feels like, UXwise, it's stuck in the earl 2000s.
We're in 2022, and no window snapping? Randomly rearranging workspaces/desktops? Forgetting which apps are on which monitor whenever it goes to sleep? Inconsistent shortcuts + lack of used-defined global shortcut assignment? Inability to set mouse acceleration?
Just how low are your expectations?
Can't you do this from System Preferences > Keyboard > Shortcuts > App Shortcuts?
I know third-party apps are not as good as native support, but here are my recommendations in case anyone is interested. Both worth their price.
> no window snapping?
I've been a happy Divvy [0] user for years.
> Inability to set mouse acceleration?
BetterTouchTool [1] can customize mouse acceleration beyond what user can do in System Preferences.
[0] Divvy. https://apps.apple.com/us/app/divvy-window-manager/id4138575...
[1] BetterTouchTool. https://folivora.ai
It was a long list anyway, having that many “minor issues” is a major issue.
All the CUI-style bindings like Windows' and Linux's Control-c for copy are done using Command instead. It's a change, sure, but a minor one that also deconflicts many bindings. How do you copy in the terminal on Windows and Linux? If it's C-c, how do you send sigint? How do you select all in a terminal if C-a defaults to going to the start of a line?
Most of the remaining inconsistencies or confusing bindings (Cmd-y for history in Safari) are a consequence of too many bindings. Cmd-h is already taken for hiding the current application and is a useful mnemonic across many applications, whereas Cmd-h[istory] is useful for a limited number of applications, and it would be inconsistent for those applications to override the system default.
I’m not someone who spends much time configuring computers but as much as I will argue in favour of sane defaults, sometimes things do just boil down to personal preference. Apple make it very difficult to change things. (Microsoft, unfortunately, seem to be taking inspiration from Apple too).
If a person is that sensitive to workflow, neither standard Mac or Linux will suffice.
I find Linux to be more difficult to customize because everyone is using different desktop distros which i think causes these types of apps to be buggy.
Every solution you’ve posted there is a 3rd party application outside of macOS. Which really just proves my point.
If you have to resort to undocumented hacks to make changing basic things “easy” then it isn’t easy.
Whereas KDE (for example) provides all of that in its base install. You can roll with the defaults, which are pretty sane, or you can change them to suit your preferences.
> If a person is that sensitive to workflow, neither standard Mac or Linux will suffice.
That’s a pretty absurd conclusion. We aren’t talking about computer illiterate people here. We are talking about skilled IT professionals having personal occasional preferences that differ from what the defaults are.
To quote Monty Python: We are all individuals.
> I find Linux to be more difficult to customize because everyone is using different desktop distros which i think causes these types of apps to be buggy.
The fact that everyone can run different desktop distros is further proof that Linux is easy to customise!
There’s absolutely nothing wrong with preferring macOS. If that’s what you find better to use then good for you. But it’s a really large stretch to argue that Macs are more customisable or easier to customise than Linux systems.
I don't think it's easy… you need to somehow magically know about this undocumented "alfred", hope it isn't malware, download it.
On plasma I open systemsettings, I search "shortcuts" and I can change all of the KDE ones in one place.
I think having it already there is easier than downloading unknown undocumented app. But just my opinion.
> I find Linux to be more difficult to customize because everyone is using different desktop distros which i think causes these types of apps to be buggy.
Sure, server stuff is hard, but desktop is much more limited.
I've had mostly the same experience on ZorinOS. It just works, never crashed on me, never made me spend hours fixing some weird bug. All my hardware is fortunately well supported.
But yeah, I'd give MacOS more scores on the UI design.
> getting an equivalent font rendering is hard
I haven't had any such issues and I don't use Arch because ZorinOS provides me everything out of the box.