Hacker News new | past | comments | ask | show | jobs | submit login
Lima: Linux-on-Mac (github.com/akihirosuda)
266 points by alexellisuk 39 days ago | hide | past | favorite | 352 comments



Is IO still going to be horrible here?

Docker on a linux VM, with all code on the linux VM, is significantly faster than Docker for Mac. Generally just because of IO.


If you want to remove a lot of unnecessary pain in your life, completely abandon the idea of mounting a host FS within a guest VM. Doubly so if they're different OS's/FS's and triply so if this a development VM.


Oh, I have.

My setup is now Remote VS Code to a Linux NUC that sits on my desk. All code lives on the NUC and all tests run on the NUC, but I can use my MacBook Pro as I move around the house, work outside, etc.

It's pretty seamless, I'm impressed.


Oh what… by "Remote VS Code" are you referring to this? https://code.visualstudio.com/docs/remote/remote-overview Seems very handy indeed!


Yeah, the VSCode UI runs on my Mac, but it runs a vscode remote server on my NUC. Debugger, tests, etc. all run on my remote machine.

I originally did this in a Linux VM, but got tired of the battery hit that running a VM 24/7 has.


Neato, that's pretty awesome! Can keep your main machine freed up to deal with actual editing and other usage, while the remote server does all the "heavy lifting". Thanks for the info!


I have had a similar setup with a remote server and a MacBook Air. If internet on trains were a bit more stable it would have been the perfect setup.


Thank you for commenting about this! I've been looking for a good solution to this exact kind of thing.


I’ve had some success with Mutagen’s [0] Docker support. Essentially you can set up a tiny Alpine container or similar with a volume mounted to it. Mutagen will then keep your code in sync using rsync, allowing you to mount that volume in other containers and bypass the performance hit.

It’s a bit of a pain to set up, and you lose some of the advantages of using Docker in the first place, but if you absolutely have to use it, it can get you back to full performance.

[0] https://mutagen.io/


It's going to be pretty bad because it's using SSHFS - but your mileage may vary.

For Docker Desktop, hopefully Justin Cormack will stop by and answer.


SSHFS is about the worst FS in existence. I would only recommend it for a temporary file transfer here and there, but it's nowhere near stable enough to use it like a regular FS.


rclone mount does a better job - it’s designed to handle high latency and flaky http apis, so the sftp backend with none of these limitations is a joy to use. Night and day compared to sshfs


With VSCode you can develop on mac with your code in a docker volume, so no need for the code syncing that you're referring to.


Even without code syncing, running more than 5 or so Docker containers can eat up a lot of RAM and even more CPU. It's just not worth it - put them all in a Linux VM.


They are in a linux VM! The only possible place a docker container can ever be on a Mac laptop is in a linux VM.


Right, but it's not the same VM for all docker containers. And disk IO is synced, which eats up a lot of CPU.


This is why I run my dev environment in an Ubuntu VM on Parallels Pro.


I use vagrant boxes (virtualbox) with nfs shares, works well. I'd still do it if I was on linux to be honest. My VMs are provisioned in a way that they have everything installed for the particular project and they are "stateless" in a way that I can and sometimes do reset them to their post-provision state (as virtualbox / vagrant supports snapshots) and my experience with the project stays the same. They are meant to be the perfect environment for a given project and nothing else. The "mutable" stuff is just mounted as nfs shares from my host machine.


I would do, but corporate VPN management clobbers the routing table and breaks it.


Parallels' "Shared Network" doesn't suffer from this problem.


Any idea how?


Just as a heads up, I was finding that with NFS shares configured, my MacBook would never sleep if connected to power.

Took me ages to work out why I kept sitting down at my desk to find a very hot, closed laptop with the fans screaming. Turned out to be NFS, though not sure if it was a bug or intended behaviour.


Thank you, that makes sense. I am using a desktop hackintosh so not suffering from it but good to know.


IO in Docker has improved greatly, some 6 months or so ago.


I used it last week...it's still really bad. Running IO heavy tests taking literally 100% more time for me. I'm just running openSUSE MicroOS with podman for my container workloads now, it's been rock solid.


Are you talking about IO on Docker for Mac when mounting files from the Mac host to the container? In that case, for an apples-to-apples comparison you would have to run your microOS+podman setup inside a VM on MacOS, then mount files from the host into that. I doubt the IO performance will be any better.


The whole point of the thread is about how running Docker on a Linux VM is faster than docker for Mac.


The increasing amount of unexplainable hangs and crashes has since offset any of those improvements many times over.


Lima is the name of the open source driver project for Mali GPUs. I wish all these half baked projects that rapidly go unsupported didn't pollute the namespace with "clever" names, or at least don't reuse names. In this case both are related to the linux kernel so confusion is ensured.

You don't need strong marketing for small pet projects, so a longer generic name achieves exactly the same purpose.


With time, difference between Apple devices and the Playstation is shrinking. I am fine with using any OS that gives me a terminal emulator with vim and unixy friends.

However, I detest artificial platform limitations and software that wants to "nudge" and manipulate users, hostile defaults and "optimized expiriences".

My last used Apple device was from 2015.


Which is why we use Linux on the desktop. All 5 of us, sigh.


Why would I want this as opposed to Vagrant, or Multipass even?


I don’t know about Lima, but Vagrant using Virtualbox won’t work on the new M1 macs (no plans of support).


eh, that's only a problem for those jumping into a brand new architecture without considering if anything's been ported into it yet.


ARM has been around for decades now (and ARMv8 for one decade). Anyway, if nobody jumps to new architectures, how will anything get ported?


Do it yourself


Cool but when can we have Mac on linux?


It's here, but you'll need a PowerPC Mac, it won't work with m68k hardware.

https://www.maconlinux.net/


It's just a "better integrated" virtual machine: "Lima launches Linux virtual machines on macOS"

This might be a controversial opinion, but I find developers flocking to macOS really bewildering. As a developer, why do you want to fight your operating system to get basic things done? This Lima thing, docker running in a virtual machine, Apple being actively hostile with the default coreutils requiring you to layer multiple third party tools just to get a modern version of awk and grep.

I Just recently I learned you can't add more swap ( creating a swap file and adding it ). That seems incredible to me.


Here's why I moved away from Linux to macOS:

- I'm sorry, but no Linux DE I've ever used beats macOS in terms of stability. The file explorers are also a joke and frequently changing.

- I've never booted to a black screen when upgrading macOS.

- 99% of the work I do never needs anything that has to be virtualized under macOS.

- Macbooks are solid laptops. Every other laptop I've owned hasn't stood the test of time as well as my Mac.

- More [actually good] software supports macOS. It's just a fact.

- macOS is fundamentally the same as it was 10 years ago, just with some relatively minor changes to the design. I'm pretty confident they're not going to move the dock to the top and force a new window toolkit on me that most existing software can't use.

- macOS has hardware that I know it will work with. Finding compatible hardware for Linux can be frustrating and not as complete as is claimed.

- Windows and macOS solved vsync issues long ago. Somehow, even with Wayland, you can still experience horizontal tearing if you have the wrong monitor or graphics card.

---

All the customization doesn't offset the trouble that desktop Linux can bring.


> I'm sorry, but no Linux DE I've ever used beats macOS in terms of stability.

Been running Xfce since 2004 with no stability issues whatsoever.

> Macbooks are solid laptops. Every other laptop I've owned hasn't stood the test of time as well as my Mac.

Oof, I guess you never got a Mac during 2016-2020 or so. They've been gradually declining in build quality. I owned Mac laptops continually from 2005 until 2019, and they've been going downhill pretty much the entire way, especially since 2012 or so.

> More [actually good] software supports macOS. It's just a fact.

That's pretty much the definition of an opinion, not a fact.

> Finding compatible hardware for Linux can be frustrating and not as complete as is claimed.

It really isn't. The problem is that everyone already has a laptop when they decide they want to switch, and then get frustrated when their existing laptop doesn't work well with Linux. These days there are quite a few laptops that work perfectly or near-perfectly with Linux, and they're not hard to find.

> All the customization doesn't offset the trouble that desktop Linux can bring.

That's a fair opinion, but I've found my experience to be the opposite. Every time I go back to macOS, I get frustrated with the inflexibility of it all. I get that it's a pain to feel like you have to customize everything to get something usable for you, but macOS goes too far in the opposite direction for me: Apple just does not give me enough knobs to turn to make me feel comfortable in their environment.


In my experience, with the exception of the keyboard, MacBooks have always had pretty good build quality. I know every single person reading this is screaming THAT'S A PRETTY BIG HONKING EXCEPTION and, yes, absolutely, but the "new" keyboard that replaced the butterfly style one -- which is really not a new keyboard at all, but essentially the external keyboard they've been using for years at this point -- is solid.

As for "More [actually good] software supports macOS," I agree that's the definition of an opinion, but it's one that I tend to share, I admit. I think it depends on what you want to do with your computer, though. I'm frequently using BBEdit (it's what I spend all my time in at my technical writing job, in fact), Acorn, Retrobatch, and Ulysses (what I spend all my time in doing fiction writing these days), and none of those have Linux equivalents that I really consider equivalent. YMMV, obviously, but I've tried many of the semi-equivalents that would be available to me if I went back to Linux, and...I could make them work, but either not as well or with way, way more effort.

And, as for customization, this is a weird one -- I think different people look at "customization" differently. For me, I don't much care about widget and aesthetic customization, but I love love love things like macOS's Services menu, particularly in combination with Automator, and third-party automation apps like Keyboard Maestro, Hazel, and Alfred -- none of which I've found real Linux equivalents to yet. (They may be out there, but if so, they're not making themselves obvious.) I think Apple actually gives you way more knobs to turn than they're usually given credit for, but against stereotype, they're knobs deep under the hood.

Having said that, if I did end up spending a lot of time in Linux again, I'm almost positive I'd go with Xfce once more. I loved it nearly 20 years ago and the times I've checked in since then have just been more positive. :)


i9 macbooks had so poor thermal performance that system was grinding to a halt if you tried to do stuff like run tests on all more than few cores in parallel.


I'd be surprised if you could get genuinely good thermals on an i9 in a laptop. And that's partly on intel - i9s just have bad thermals, especially recently. Besides, if you genuinely need the power to justify using a chip with that kind of TDP, you should be looking into a desktop anyway.

It is worth noting that Apple may have been intentionally neglecting thermals pending the transition to ARM - LTT did a few videos that give evidence to this.


Not to mention the power supplies with many laptops don't even provide enough watts to power the system at max load (including macbooks pros). They just use the battery to provide bursts at full speed. Generally that's good enough for a lot of uses.

Gaming laptops do try and provide enough power and thermals to run full tilt. For work I chose an Alienware m15 because of this, and I wanted fast over thinnest. The m15's offer an i9 and probably could run one near full thermal load. In my case a desktop wouldn't do since I need to move around (doing IoT stuff, so I goto different parts of the lab). But, I do miss the macbook pro build quality. The first m15 died, and the replacement has a dead pixel.


> Every time I go back to macOS, I get frustrated with the inflexibility of it all. I get that it's a pain to feel like you have to customize everything to get something usable for you

It's great if macOS is what you want, or is close enough to it (which it is for many, many people).

I guess people's problem with Linux is that no amount of knob twiddling ever gets Linux's desktop and window manager close enough to what they want.

Personally, I want macOS to be my window manager, and I want Linux to be my dev environment/command line. I can't twiddle either to be close enough to the other, so I run Ubuntu in Parallels on macOS.

Now if macOS gained the equivalent of Windows Subsystem for Linux, I'd be super happy.


A true macOS subsystem for Linux would be incredible.

I just can't use Linux or Windows for my desktop OS. Windows for gaming, macOS for work/daily.

God knows I've tried to run Linux. But it's just nowhere near as hassle free as I desire. Widows is out soely due to native non unix command line.


I didn't get much of a chance to work with Windows & WSL2, but I felt like it was a really comfortable experience as long as you were fine with WindowsOS as a display manager and Linux for your CLI. There can be some annoyances around software dual installed to Windows and the WSL 'containers', but the CLI experience certainly felt pretty good to me. Used MobaXterm (free, not open) which satisfied the good terminal emulator req.


I personally find windows10 to be one of the most "invasive" desktop experiences that I've ever used. No matter what I do, I can't seem to properly turn off all the bloat and extra notification shipped with it.

I'm sure YMMV but I just have a hard time taking it seriously for anything beyond booting up to play a game. I wouldn't even use it for that if I had a choice and the supported OS landscape was different than it is.

The icing on the cake for me was when I had to edit the registry in order to re-enable the checkbox toggle for booting directly into the desktop. I just wanted to be able to turn on my steam box and be able to boot right into big picture mode on startup but MS had different ideas about what options I should be presented with by default.


> as long as you were fine with WindowsOS as a display manager

That's the big "if". Especially with the Magnet app (the one for snapping/maximizing windows) in place, macOS is so superior in every way.


Just can't deal with Windows as my os outside the terminal.

No objective disagreement!


These are all just anecdotes. From you, OP, and me...

> Been running Xfce since 2004 with no stability issues whatsoever.

I ran Linux (and was a _fierce_ OSS fanatic) from ~2002 to 2012. I've been a mac user since 2012. I moved around, using LXDE, Xfce, Gnome, KDE, no DE at all (openbox...)... I used Ubuntu, Mint, Gentoo, ADIOS, Crunchbang, Fedora...

Linux DEs were solid, but they never felt sufficiently polished. When I first touched a Mac, everything just felt better -- drag and drop worked like a charm, and the visual queues and feedback were amazing. Often we'd realize that some things also worked in Linux, but they just weren't visually advertised as such -- cursors wouldn't change, things wouldn't slightly fade. It looked like a jumbled mess with no coherent design team behind it.

> Oof, I guess you never got a Mac during 2016-2020 or so. They've been gradually declining in build quality. I owned Mac laptops continually from 2005 until 2019, and they've been going downhill pretty much the entire way, especially since 2012 or so.

The quality of apple laptops has indeed been far from stellar in recent years, but I'm pretty happy with my 16' beefed-out Macbook Pro. It is undeniable, though, as you say, that they have been going downhill. Nevertheless, going downhill from where they were still means they're quite close to the highest peak you can find, IMO.

> > More [actually good] software supports macOS. It's just a fact. > > That's pretty much the definition of an opinion, not a fact.

Agreed, it is a matter of opinion. For what it's worth, if we exclude games (most of which I can play perfectly fine in a VM in parallels anyway), in my opinion, indeed more actually good software supports macOS. There are very very very few things I miss from my linux days, and I heavily customized everything I had.

> It really isn't. The problem is that everyone already has a laptop when they decide they want to switch, and then get frustrated when their existing laptop doesn't work well with Linux. These days there are quite a few laptops that work perfectly or near-perfectly with Linux, and they're not hard to find.

I completely disagree with the sentiment of this paragraph. While, yes, many laptops work flawlessly, and you may actually be able to google them somewhat quickly, the experience of finding a linux compatible machine that one wants to use and fits their needs is still a perilous road of doubt and uncertainty. This is a consequence of the many different choices one has, because while we can find reports that someone's favourite distro ran on a particular laptop at version X, we might not want that distro, or that particular version, and things instantly go south. Finding linux-compatible hardware and having to "jump into it with our money" is an extremely risky and stressful move -- one which can leave anyone with buyer's remorse pretty quickly if anything fails to work properly. Worse, "failing to work properly" can be as innocuous as "feeling that the laptop is running out of battery too fast" or "is running too hot". While all of these things definitely also happen on a Macbook, it is much easier to simply know that the hardware will be supported, much like we know that most games built for a console are sure to work on that console. If money is not an issue, and if there are no particularly clunky software requirements or vendor-lock-in issues (these are big ifs, I know), then buying a Mac is by far the easiest decision, because it lifts weights off of your mind, and puts them in Apple's hands -- to make sure that things work.

Many of my friends run Linux, some of them as a daily driver. Some of these people are among the smartest I've ever known with computers, and some even make hundreds of thousands of dollars in the IT world, be it in cybersecurity fields or other such areas -- yet, most of them, too, do not really know which laptop to buy when upgrading, ever. They choose Linux _in spite of this_, but they most definitely see this as an annoyance and problem. Linux has to work everywhere and, so, it is only natural that there are pieces of hardware where it doesn't work -- or it works poorly. I would expect nothing less.

> That's a fair opinion, but I've found my experience to be the opposite. Every time I go back to macOS, I get frustrated with the inflexibility of it all. I get that it's a pain to feel like you have to customize everything to get something usable for you, but macOS goes too far in the opposite direction for me: Apple just does not give me enough knobs to turn to make me feel comfortable in their environment.

I can perfectly understand this sentiment. I don't really feel like there are things I can't configure on my mac, but I can recognize that I had more configurability on the Linux side of things. I used to be the guy who had dozens of scripts and wrappers for everything, and the one crazy guy who got pulseaudio to play along with ALSA before it actually worked, all while getting the latest games to run on Wine with custom patches made for them. My computers always looked "slick" to other people, and I used to have this amazing feeling of having tailored it all to myself. Then, at some point in my life, I realized I was spending more time adjusting my configurations than actually doing stuff with them. Ever since circumstances led me to a Mac, I've never looked back. I've migrated data from my first Mac all the way to the latest always through Time Machine, and it feels magical.

I'm a big fan of Linux. I think it's an incredible achievement. I'm not the OSS fanatic sending e-mails to RMS that I used to be, but I still feel the OSS cause deeply. I also think linux on the desktop is much more usable today than it was before (when I used it). It certainly fits the needs of many people. To me, though, the mac strikes a perfect balance for everything I do in my life. It literally just works. Everything just works. I airplay to my TV and it works. I migrate it with time machine across the span of 10 years and it works. I upgrade it and everything (mostly) works. Things don't change _too_ much in between updates. Stability has its ups and downs. Apple's decisions sometimes might leave one a bit infuriated (cough cough 32 bit support), but I've never been this happy with a computer as I am with the mac. In fact, even though I have theoretically less to configure, my mac feels like it's "more configured to me" than my Linux machines, because things just work like I want them to. It's like my mental model of a computer is better represented by the mac. Whenever I touch Linux and have to use it for a couple of days or in a VM, things are always out of place (this also happens a bit with Windows, but Windows feels coherent and I can instantly tell that after a couple of days I'd get used to it). Drag and drop doesn't do what it should. Things don't respond for no reason. Work is being done but no loading icon is present, leading me to do double-clicks and other shenanigans. I'm sure the right combination of tools and software for me is out there in the Linux world -- and the hardware too (I love the macbook trackpads -- they're actually the original reason why I started thinking of moving to the mac) --, but I have more to do with my life than keep tinkering with linux nowadays to make it work with me. I do that with my raspberry pis, as a fun thing.

I have nothing against people running Linux on the desktop. The more, the better -- maybe one day I'll come back. I never thought I'd use a Mac -- I despised them -- and yet, here I am, 10 years later.


This is where I'm at. As much as I like the idea of using Linux on the desktop, Im never fully content once I try it. Even after I've put in all the effort to customize everything to my liking, I'm then faced with the fear that I'm one update away from that setup breaking.

At least I know for the most part that my boring macOS setup is going to keep working. (Unless I need a 32 bit app of course!)


What has to happen so that you would try to make the switch to linux again?


I believe the main drivers would be:

1. Give me a laptop that you can ASSURE ME runs linux amazingly well and in which I can instantly feel has the polish of mac hardware. I'm talking battery life, the amazing feeling of the butterfly keyboard, the trackpad (and respective software to enable it), the solidity of the device and overall ergonomics. Give me "Retina" HiDPI displays! This is definitely one of the top reasons holding me back: I don't want to purchase something and regret later because hardware support only "seemed to work, but actually really didn't".

2. Show me an operating system where things visibly work in an integrated fashion. I can drag and drop most things to most places. Progress bars exist and mostly make sense. All that jazz.

3. Make HiDPI work. I sometimes use a mix of heterogeneous displays, up to 4 at the same time. Some of these are widecreen, others are not. Some of these are HiDPI, some of them aren't. Some are connected via Airplay! The mac works amazingly well with all of them. Whenever I plug Linux onto these displays, something goes wrong. Things don't scale right. Everything feels slightly off. It's a nightmare!

4. Give me a VM solution with the incredible polish of Parallels Desktop. Perhaps these already exist, as I'll admit I don't tinker with VMs on linux often. Parallels Desktop changed my perception of what a VM can be, due to its amazing integration between the host and the guest. Applications usually just work, even in what they call "coherence" mode. Sure, linux guests sometimes misbehave, but Windows works like magic. I can drag and drop files between windows in the host and guest operating systems. I share clipboards. Windows from one OS appear in my taskbar as if they were native. I can very quickly enable passthrough on one device so it's in the guest instead of the host. I can easily setup different kinds of networks. This is INCREDIBLE technology that makes my life immensely easier either for work reasons (e.g. that weird chinese QR Code reader that only has software for windows, and therefore I set it up through passthrough) or just to chill and play some games -- actual, 3D accelerated games that run great, often better than their native versions on the mac (which is rather sad, sure).

5. Lastly, I am definitely very invested in the Apple ecosystem at the moment, and quite locked into it. I have over 5000 photos in the iCloud photos. I own an iPhone, Apple Watch, and Airpods Pro that I use daily (I own other versions of these accessories). I love the integration between all of these things. The way Airpods magically switch from one device to the other. The way that I copy paste from one device to the other (something which I use extremely often). I am definitely in severe vendor lock-in, and if I were to switch to Linux, I would have to deal with missing out on some of these things -- the Linux experience would need to be better than that of the mac, not just equally good (or "cheaper"). I don't really have many gripes with the mac -- as a developer, project manager, casual user, browser of the web, occasional writer, casual gamer, etc.

I guess, then, that Linux would have to blow me away with its integration and some kind of surprising set of features which I haven't seen yet. If it doesn't do that, then I have no reason to jump. I'm happily tied to the Apple ecosystem, and have no big complaints about anything other than the obvious fact that quality has been clearly going down -- but is still far, far, far ahead of my Linux experiences.


Okay, based on what is important to you I think that Apple does fit your needs best.


> - I've never booted to a black screen when upgrading macOS.

My wife got bit by the Big Sur bug, 2 weeks ago, were the installer doesn’t check if there’s enough disk space available before starting the upgrade.

Reached out Apple whom, had I not been next to her, wanted her to create a new volume on her disk and reinstall

Stopped her. Jumped in. Asked what the plan was and it was to format.

The initial question was if there was a way to recover the data.

I stopped the conversation and started searching.

Was working until midnight because everything I found basically said that you’re f’ed and lost all your data.

I was able to recover it.

.

- Yes, she didn’t have a backup. But the installer also should do the minimum of checking if it can run.

- I have no idea how old the installer is, but if Apple can remove Zoom due to a security issue with a web server, they can do it with a bad installer of theirs (or at least blacklist it).

- Before giving steps that are destructive, they should have prefaced with it or at least warn that they’re SOL and need to reinstall and restore from a backup.

.

It works the majority of the time, but honestly, this left a REALLY bad taste for me. If it wasn’t because we are basically in the ecosystem and that it usually works, I’d be looking around to others.


> > - I've never booted to a black screen when upgrading macOS.

> My wife got bit by the Big Sur bug, 2 weeks ago, were the installer doesn’t check if there’s enough disk space available before starting the upgrade.

It can get even worse than that. The Big Sur update "bricked" my MBP, along with many others, because a firmware update broke a part. Apple wanted $500 to replace the mainboard, I fixed it by replacing the broken "i/o board" with a $5 part from ebay and like 30 minutes of work.

Given that this is the only Apple computer I've ever owned, it's understandable that unlike the grandparent I don't have the highest opinion of Apple's work. Ironically, nothing like this has ever happened on Linux to me.


Oh wow. Hadn't heard off this issue.


Being a mac users and “supporter” for decades because of my wife I think it is so much better to have mac or even windows for general users. Or even for us IT guys. Just work and move on the problem you deal with.

The problem is when the chip is down most of the case you are on your own. Not linux fault eg I have a small computer (touch based windows mini Pc) want to use it and from time to time the wireless adapter disappear ... I just go out to get a planet computer version 3 simply because their version 1 has linux support. I beg they have tested sort of their linux dual boot.

Support. The hard part. And then the windows issue ... good luck to use linux not on VM, Docker ... and my lisp slimv work with some twist (macvim not vim-not).


While we are both technical, the reason we've stayed is because we don't have to usually worry about things. Hardware support is 100% the key for us. We have a UNIX environment can just install the GNU tools and it behaves, in the most important aspects for us, as Linux. This is the first time we've been bitten by something like this in 10 years (Mid '11 MBA was our first device after wifi stopped working on her linux laptop and I didn't have time to figure it out).

It left a bad taste with me because they didn't communicate and support almost fucked it all up. A page with support would have been great and just, 'well, we don't support this or can't help you with this, but here's a support document you can read and try to understand the issue'. I also know they can definitely remove things from devices[0], so I don't know why this wasn't done for this installer.

[0] - https://www.theverge.com/2019/7/10/20689644/apple-zoom-web-s...


Have you written a post somewhere about how you got her data back, or what was something online that helped you?


I’ve been setting up a NAS, storage and other things to try and prevent this again. Letting the old sysadmin side come out. I have a trip so trying to do that before then.

I have the export from the terminal session to do the write up.

I’ll try and see if I can at least start it tomorrow.


My daughter is a university student in the US and had something like this happen. I was on the phone with her when she took it to an Apple store and they told her they would wipe the machine. She has some stuff on there she really didn't want to lose (we've had a lot of talks about backing things up since then) and so I had her buy a new machine (she really needed one). And she's holding onto the old one until I get to the US to visit her this summer. I would be very, very interested in any information you can share about what you did. I have ideas of where to start but anything that could possibly help would be greatly appreciated.


> I'm sorry, but no Linux DE I've ever used beats macOS in terms of stability. The file explorers are also a joke and frequently changing.

Dolphin on KDE hasn’t changed in 10 years and is far more functional than Finder. Frankly I think Finder is an appalling file manager so I’m surprised to hear anyone advocate it.

> MacBooks are solid laptops. Every other laptop I've owned hasn't stood the test of time as well as my Mac.

5 years ago I would have agreed with you but MBPs these days are really built more like expensive consumer devices rather than workstations that expect to see heavy usage.

Ultimately I think the real reason people use Macs is just personal preference and there isn’t any tangible, provable benefits of one over the other. Despite our engineering minds thinking every decision can be distilled down to fact and reason.


At this point the #1 is that I believe directly paying relatively small developers money for software produces by far the most user friendly (in many senses) desktop software. On the mac, that model is still thriving. Everywhere else you have maybe a handful of great options. Apart from that you get some Electron SaaS, some ancient professional software and some messy open source options. If you‘re lucky maybe some mac ports like Tower or Paw.


I don't think that feasable from a security standpoint. Ideally, software would be open-source and authored under the supervision of a handful of trusted parties.

The metaphorical "chain of trust" is strongest when it's composed of a few strong links, and when its cracks are visible.

What you're suggesting is that we should use a model with many small links and invisible cracks.


I‘m talking about desktop software for personal computers, not infrastructure software or services or anything. I trust the software developer and I trust apple. There’s a signature/certificate chain between those two. It’s fine.

Of course that‘s not acceptable for some people and for some use cases but it is for me.


I wouldn’t say I work with files a lot, but when I do, Finder seems to work ‘fine’. What do you find ‘appalling’ about it? If I’m missing the option to make my life much easier by using an alternative I’d like to at least try something else out.


You know those completely useless files (.DS_Store, ._foo.bar, etc.) that you see whenever you expand an archive or clone a repository from a developer who uses a Mac? Finder drops those turds.


Who cares?


Anyone who regularly works with FOSS. Which was the target demographic being discussed to begin with.


John does, apparently.


You can’t input paths for starters. That means you can’t open dot files or navigate dot directories. Of which there are a great many in FOSS. The answer is to open up a terminal and run ‘open .blah’, which is just an appalling work around to a simple problem. Even Windows handles this use case better and that’s saying something.


CMD+Shift+. reveals hidden files in Finder.


Great, another non-discoverable key combination I need to memorise. You can guarantee I’d have forgotten that by the time I next need to use it.

GUIs are meant to be simple for discovering features. I really dislike how Apple hides away all the useful features. It doesn’t need to be this way and it makes working with macOS a real pain in the arse.


You can input paths with “Go To Folder” (Command+Shift+G by default) but it's a bit cumbersome.


Dont' forget:

- Multi- and highres monitor support out of the box with proper scaling and readable fonts

- A package manager with up to date packages (granted there are Linuxbrew and things like Snap now for Linux.)

- Applications that have a consistent UI/UX and all use the same keyboard shortcuts

> All the customization doesn't offset the trouble that desktop Linux can bring.

It's nice you can customize almost everything on Linux, but most of the time I feel I must customize everything to get to a basic standard.


> A package manager with up to date packages (granted there are Linuxbrew and things like Snap now for Linux.)

On what planet is is homebrew better than Linux package managers? I agree with many of the other items in these lists, but this makes literally no sense to me. Homebrew is probably one of the worst things about doing dev on a mac.


Homebrew is more transparent and approachable, I can easily customize what is being installed, it's versioning, and control it's dependencies better than apt.

Apt, more often than not, acts as a gatekeeper for the latest version of whatever software packages I'm trying to install. I end up just having to adding various libraries and repos to my sources list to get the version I need, or go to an outside dependency manager like gvm, sdkman, etc which is basically homebrew anyway.

Homebrew is for devs that need to get shit done, apt is for computer scientists that love the tool more than solving problems with a tool. For the record, I'm on both linux and mac and there's plenty of upside and downside to both.


> Apt, more often than not, acts as a gatekeeper for the latest version

It's a distro policy issue, not a package manager issue. There are rolling distros using apt - for example https://wiki.debian.org/DebianUnstable which is updated every 6 hours.

The same way rpm is just a packaging format - you can have both the stable (fosilised) CentOS and the fresh Fedora / CentOS-Stream using it.


You're extrapolating from Debian's packaging concept to other distros, though your argument does not apply to most of the rolling distros out there.

On a rolling distro (e.g. using pacman, or say yast2 and others for sake of argument) you typically ship the header files included with the libraries, so that you don't need multiple versions of the same library installed. On Debian/Ubuntu, however, it will always end up with that mess of dozens of versions of the same library because all PPAs are somewhat outdated and used different versions of specific libraries once they were published.


That's the problem isn't it? Whichever problem you point at in Linux, the answer is invariably the same: "you're holding it wr^W^W^^W you're using the wrong distro, the wrong package manager, the wrong DE, the wrong version of any of those things".

And, invariably, for any problem the one true combination is different.


This case already started with discussion about brew. Brew is a choice you make if you don't like other distribution platforms on a Mac. But guess what - some people complain about brew not keeping software stable, but rather chasing new versions!

This is not a Linux issue - wherever you have different options and use cases you'll find different recommendations depending on what people are trying to achieve.


And that's why forks suck and everyone should use a spork. Having options that cater to different usecases is confusing. You don't really need to take big bites anyway.


- Hey, your fork is broken, and made out of plastic.

- You should use the oak box set of Forkuntu 12.4, no problems with forks there.

- Yes, but it lacks any spoons

- For spoons there's always Spoontoo.

- But... I want both spoons and forks...

- For that you can always tweak a few dozen unrelated work orders, menus and item descriptions in Sporkian. But that will only work witn Sporkian unstable, and needs a special tablecloth.

- Okay... What about knives?


Well, if you would report a bug for Office 2003, the maintainers at Microsoft would react the exact same way. That is if you persist on calling through the corporate structure until you actually are able to contact one.

Either that or well, they'll simply ignore the noise of a user that doesnt give a damn about updating anything - so the user would not receive any potential patch anyways.

If you decide on choosing a specific distro, you should know what you're choosing. If what you are complaining is too much choice, then maybe MSDOS 1.x is the best operating system for you?

The beauty of Linux is customization. If you don't agree with that, then stay on MacOS. No harm done.

But if what you're complaining about is that you lack the skills to understand and investigate - without having paid anyone anything - then honestly, I think you are an ungrateful user that nobody should help out because it's a waste of (everybody's) _free_ time.

Be nice and maintainers will be nice, too. Be cooperative and they'll be cooperative as well.


> If you decide on choosing a specific distro, you should know what you're choosing.

Indeed. And when that distro is MacOS suddenly HN is up in arms about how "not understanding why developers are chosing it".


> I can easily customize what is being installed, it's versioning, and control it's dependencies better than apt

In terms of customizability, is Homebrew any different from Apt? As far as I'm aware, Nix and Guix is the only system package manager that allows me to have full control over versioning and inter-package dependencies. Other package managers only let me install packages as provided by the packagers.


More accurate to say that apt is for the sysadmin, perhaps.


Homebrew's very up to date, without that cutting-edge quality risking system stability (since that's totally separate) and has an incredible number of supported packages, including tons of closed-source stuff, out of the box. No hunting down PPAs or obscure unofficial back-port packages or anything. The only Linux package managers I've seen even approach it (not match, but approach) are from bleeding-edge distros like Arch or Gentoo, but those come at a harsh stability cost since they also manage the rest of your system, including all the shared libs (ugh) and system-level packages (I gather that's the case on Arch, it sure was on Gentoo when I used it for many years, mostly because I loved Portage and OpenRC)


> Homebrew's very up to date, ... and has an incredible number of supported packages

Package stats from Repology seems to contradict this claim:

https://repology.org/repositories/graphs

It's not bad, but it's not the best either. Not even close.

> including tons of closed-source stuff

Homebrew doesn't ship any proprietary formulae at all. They have a clear policy against it:

> We don’t like binary formulae

> Our policy is that formulae in the core tap (homebrew/core) must be open-source with an Debian Free Software Guidelines license and either built from source or produce cross-platform binaries (e.g. Java, Mono). Binary-only formulae should go to homebrew/cask.

> Additionally, homebrew/core formulae must also not depend on casks or any other proprietary software.

> This includes automatic installation of casks at runtime.

https://github.com/Homebrew/brew/blob/master/docs/Acceptable...


> Homebrew doesn't ship any proprietary formulae at all. They have a clear policy against it:

And yet, I can install Sublime Text, Slack, and others through it out of the box. I just checked a couple more, Figma's there. Microsoft Office. Steam.

You used to have to run a one-liner to enable casks (just one, not one for every damn vendor like with apt) but not anymore.


Can't edit anymore, but just wanted to say: on review that post came off as snarkier than I intended it. I just mean that, whatever the policy on including closed-source in the primary Brew repo, casks are enabled by default and don't even require a different command or any set-up anymore. From a user's perspective they're 100% as available as other packages, as soon as you install homebrew. I think the only major difference is that they don't auto-update when you do a "brew upgrade"—you have to specify the cask package you want to upgrade. Which is a good policy since a lot of those programs have their own built-in updaters anyway.


Some of this is a matter of taste, clearly. I strongly prefer having my system packages being rock solid; I can always fetch updated software for the very few cases where I want that.

However, my aversion to homebrew goes beyond taste: my experience with homebrew is rife with breakages. To be fair we were trying to use it in a CI system, which will very quickly reveal a buggy system. By contrast, apt/dnf are rock solid when used in CI.

An actual example: we tried providing our own recipe to install a particular version of libicu. This triggered an upgrade of some dependency; that triggered an upgrade of libicu to a different version than 68. The command exited with a successful status. A real package manager would have detected the package conflict and reported it, giving you resolution options, or errored out in a non-interactive terminal.

Why were we trying to pin versions in the first place? You guessed it, package breakages.


Yeah, I don't manage dev dependencies for projects in home-brew, just software for which I am a mere user. I probably wouldn't use apt and friends for those, either—not directly on my workstation anyway, maybe in some pinned-OS-version VM—unless my workstation happened to be identical to my deploy target and was guaranteed to stay that way. For a macOS build for C or C++ or anything along those lines, I'd probably vendor dependencies.


Agree as a Mac user. I miss pacman from Arch. Now -that- is a nice package manager. It took the best (simple) parts from Gentoo and combined them with the better parts of apt/rpm/zypp etc.



I always found pacman a little weird to use, but I think that was more a function of its UI -- its commands and options just weren't easily memorable for me, and I had to look them up almost every time. Its actual functionality was great, though.


It isn't, but there's MacPorts, nixpkgs, pkgsrc, and ArchMac (although I kinda dropped the ball on the latter)


On the planet that runs arbitrary community maintained Ruby scripts to install packages, and the planet where doing brew update requires a full days work + max CPU usage.


> It's nice you can customize almost everything on Linux, but most of the time I feel I must customize everything to get to a basic standard.

The last time I had to customize everything was like 10 years ago, and now I just copy my $HOME from machine to machine when I get a new one and everything just works and looks like it did on my previous machine.


"- Multi- and highres monitor support out of the box with proper scaling and readable fonts"

Unless you want to use two TypeC->DP connected monitors using MST. For "reasons" ($$$), Apple arbitrarily decided to not support MST over TypeC connectors (thunder bolt good, TypeC bad!!). And since this is MacOS, its impossible to ever have that support unless it was blessed upon us by the overlords. I don't like being held hostage by a company, and Apple is great at setting their way or the highway (some may like that, but not I).

When I got my new job and they forced MacOS on me: Ok, now I need a usable home setup. Lets try to get this running without running to buy $4k in new monitors.. days searching and a few wasted purchases later, everything worked fine just to discover that Apple refuses TypeC MST for no specific reason. So by all means, you can keep it. I'll hold my nose because I like my company, but their choice to mandate this hardware was awful.


> Multi- and highres monitor support out of the box with proper scaling and readable fonts

What's funny, is this is the complete opposite experience that I had in every single way. Multi-monitors absolutely suck on macos unless you drop $1000 on mac monitors

Try running two external monitors with differing resolutions, in my experience, it will be stable about 1 time out of 20. The rest will have artifacting, refusal to recognize the monitor, or other weird behaviour.

Or try running a monitor that isn't at least 4k, the most recent macos removed text aliasing so text rendering on 1080/1440p monitors looks like something out of the 1980's.

Linux though? I've never once had an issue with external monitors using Ubuntu

Edit: Sitting here on my work mac, almost forgot about my favorite one! When running multiple monitor resolutions, mouse movement hitches and lags for seemingly no reason! Only a disconnect and reconnect of the external monitors fixes it!


Meanwhile I use both a 1080p display and a 1440p display (Both Dell displays) with zero issues on macOS Big Sur.

I get no odd behavior, both monitors are always detected nor do I see artifacting or anything other issue. There was some minor pink lines on the boot up screen that have since been fixed in the latest release. (M1 Mac mini)

I can't really say I noticed a difference personally since they removed text aliasing on 1440p or lower, however it's a single toggle to turn back on.

I get zero mouse lag with differing resolutions and I use both a Magic Mouse 2 and a Magic Touchpad 2.

anecdotes are always going to differ.


Might be a difference between the Intel and M1 macs


You can't even change the subpixel rendering to BGR on a Mac! The suggested solution is, literally, to flip your monitor upside down.


Mac OS removed supixel rendering AFAIK


> Multi- and highres monitor support out of the box with proper scaling and readable fonts

My M1 mini has all kinds of issues with 2 4k monitors attached. Sometimes waking up from sleep, the monitor plugged into TB scales to default setting (200%?) instead my config (125%). And don't get me started on Ultra Wide support.


I’ve got a 49 inch ultra wide connected to my MacBook Pro using a Belkin Thunderbolt dock… what about ultra wide support?


> Macbooks are solid laptops. Every other laptop I've owned hasn't stood the test of time as well as my Mac.

If you are American.

In the UK, I find the keyboard layout bewildering. It is not ANSI and it isn't ISO. It's some other thing, with keys that don't exist in any other English speaking keyboard. They even hide # behind a special alt key combo.

Other things about it are good, but there are some design decisions which are just plain wrong.

[Edit] I received downvotes, so as someone who uses a UK Macbook Pro I just have to reference this because they layout pisses me off.

Here is an Apple link to prove that this is real.

https://store.storeimages.cdn-apple.com/4668/as-images.apple...

In the UK ISO layout, the `~#` key is normally where the `|\` key is on the Apple keyboard, and the backtick which is down by the Z is to the left of the 1. We get range and paragraph next to the 1, which is horrible.

The thing that makes me concerned about the build of this 2019 i7 Macbook Pro is that is is always extremely hot. I'm only running one 4k screen off it but it is regularly running with fans on. I've had Macs in the past, and they haven't been quite as noisy as this. I'm sure its mostly due to crappy Intel hardware which is why they are being dumped, but this is a Mac and I can only judge them on what they sell.


> They even hide # behind a special alt key combo.

That's way worse than removing the escape key.


It's things like this that make me say that Macbooks aren't for developers rather than running Linux in a VM.


I'm baffled how a developer ever assumes that whatever's on the keyboard is hardcoded and can never be changed.

Yes, for some reason (tradition, history) Macs prefer typewriter layouts on their keyboards. But... have you ever even tried looking into System Preferences - Keyboard - Input Sources and changing the layout to "US (PC)"?


I have no idea why you would assume that I don't know how to change a keyboard layout.

I have my keyboard set to UK ISO so the keys don't match what is printed. I don't understand why you don't see that a company that sells laptops with proprietary keyboard layouts is bad.


Ah yes, unlike every other company that ships opensource keyboards right?

As a person who has had laptops and keyboards with layouts in Russian, Turkish, Romanian and Swedish, and who uses US layout almost exclusively, I honestly have zero idea what your problem is.


I have no idea really what you are talking about, but in the UK we have a standard layout. And no matter who I buy from they are all identical except for Lenovo Function key which is swapped with Control, but otherwise identical.

Except Apple who's keyboard is drastically different to literally everyone else's.

Why do they bother with such a poor layout if they are supposed to be such consumer centric?


By "drastically different" you mean "has maybe two differences that are not too different to weird stuff manufacturers do to keyboards"?

Note: removing # in favor of £ is apparently standard for UK keyboards: https://en.wikipedia.org/wiki/British_and_American_keyboards...


You should read your own link.

We do put the £ where Americans put #, but we don't remove it from the keyboard.

2 differences? Read your link.

Back tick is in the wrong place, hash as already discussed is in the wrong place, forward slash is in the wrong place, double quote is in the wrong place, @ is in the wrong place.

This isn't about Super being switched with Alt.


> We do put the £ where Americans put #, but we don't remove it from the keyboard.

Apple doesn't remove it either.

> 2 differences? Read your link.

Windows:

- the extra key is added next to the Enter key to accommodate # (number sign) and ~ (tilde)

- The £ (pound sign) takes the place vacated by the number sign on the 3 key

- @ and " are swapped (to ⇧ Shift+' and ⇧ Shift+2, respectively)

- (the list goes on for another 4 or 5 items)

Apple (emphasis mine):

- The # symbol is replaced by the £ symbol (as on PC keyboards); the # is available by pressing ⌥ Option+3

- The " and @ keys are swapped.

- More recent Apple British keyboards move the backquote/~ key to the left of the Z key and replace it with a section sign (§) and a plus-minus sign (±), respectively.

And that's it.

Well. It's three differences compared to US layout, two of them are basically exactly the same as PC versions.

> Back tick is in the wrong place, hash as already discussed is in the wrong place, forward slash is in the wrong place, double quote is in the wrong place, @ is in the wrong place.

Apart from back tick the rest are consistent with PC layout.


What has opensource got to do with it?


Funny. @#$~^&*{} are all alt (Option) combos on my Mac, my language has actual letters on those keys (ěščřžýáíé). Some devs I know switch to US layout for programming and some don't. I never do, I'm used to the alt combos and I don't like retraining my muscle memory.


The keyboard layout is absolutely non standard in the UK but it's absolutely standard apple in the UK.

Appreciate that may be off if you're trying to adopt but I'm so used to this layout after many, many years. I'm using a 2007 iMac keyboard and it matches exactly to my 2019 16".

For example, the alt 3 for hash is so naturally embedded I reach for it when using windows machines. I have to do weird rebinds on my windows setup to match the layout because it's so embedded. I think macs have had the same keyboard layout for 15 years or so at this point.


That's nice that you have trained yourself, but it's crappy enough that MacWorld had to write an article explaining how to use the keyboard.

https://www.macworld.co.uk/how-to/hashtag-mac-3688542/


It's not about training, it's about being a mac user for over 15 years.

If they suddenly changed the keyboard layout I and many other long time users would be absolutely infuriated. This is just the correct keyboard layout for me.


There are many ways macOS improves over Linux desktops, but file explorers is not one of the arguments I would have made. Finder is practically unusable.


Honest question, what's wrong with Finder? I use ForkLift for the heavy lifting (lol), but it works just fine for "navigate to file, open/move/delete file, sort by size/date, tag files, find files".


Finder still can't handle SFTP connections. In 2021. I feel like I'm going insane, or I've missed some sort of critical update, but no, it's just sitting there.


It hardly handles SMB/CIFS connections correctly, and it's been fucked up for years.


Well.. you’ll have to install an fs driver for that. Exactly like in Linux. Or just use mountainduck


What makes you think that you need to install a driver on Linux to make SFTP mounts work in a file manager?


Every file manager I've used on Linux has support for SFTP out of the box. Not quite sure what you're talking about here.


This.

It's incredibly useful basic functionality that both Finder and explorer inexplicably lack. This alone makes Linux desktops far more friendly even for novice users who want to do something beyond sharing gifs on web forums.


SFTP.

Novice users.

Why would a novice user want SFTP built-in to their file manager?


SFTP is a protocol, and "novice users" are actually using it every day without realizing it.


Right... When and where they would use it without realizing it?


To move files between machines they own?


Novice users use flash drives or emails, they don't set up ssh servers. In fact, I've never seen a non-power user set up an ssh server except maybe if you count a consumer NAS (which usually show up as networked drives).

To that point, I'd be willing to bet money that any user that even has access to an ssh server they'd want to use either has the technical know how to set up those tools themselves, or has an IT person who can do so for them.


On the OSes that have SFTP capable shells ssh is enabled by default.

Other OSes lacking this is why everyone keeps their data in silos.


This still doesn't answer the question of why a novice would want SFTP.


   - It's slow
   - Middle-click don't open the folder in a new tab
   - It doesn't natively handle SFTP mounting
   - The visual fixed arrangement of icons can be weird


Not mentioned yet:

- no explicit refresh - if you're using network shares you often won't get an update notification, but have to go out and in again

- insistence on abstractions - I don't want to click through all the folders, sometimes I have a path ready to paste


Saving a file as /tmp/blah saves it as :tmp:blah the current directory, then you curse and have to press cmd shift g to pick a folder, paste the filename with path, remove the file name bit, then finally get to save your file.


Care to explain? I'm not saying Finder is great, but I find it perfectly usable and I've never noticed it drop features willy nilly (as was the case with Nautilus back in the day).


I have to use TotalFinder to be able to cut and paste files which I find very strange after all the years of experience on other OSes. I also resent not being able to conduct basic file management in file selection dialogs. Other missing features I have to hack around with scripts or add-ons: Copy terminal-friendly path, open current folder in terminal, create a blank text file here. Probably more.


you can move (cut + paste) in finder, it is hidden for some reason. instead of cmd + v, you need cmd + option + v and the file you copied will be pasted just like it was "cut".


I don't particularly like it, but I've not seen it crash or glitch out with the frequency that Linux file managers have ever since I've used them (a couple decades across a dozen or so desktop and laptop systems; mostly Nautilus, Dolphin [wasn't Konqueror also the file manager for a while, or am I mis-remembering?] and IIRC Thunar)


The Finder doesn't even allow me to middle-click to open a folder in a new tab, it's horrible. I miss KDE Dolphin.


True that. Finder is only slightly better than nautilus, but it gets beaten up by Dolphin badly. It would win outright for me with the "Press F4 for an integrated shell" feature alone.


You can definitely do that in Finder by adding the Terminal.app as a Service.

Here’s a guide I found: https://www.howtogeek.com/210147/how-to-open-terminal-in-the...


They are referring to the shell being integrated into Finder similar to the integrated terminal in Visual Studio Code or IntelliJ IDEs not launching a separate Terminal.app window.


Oh, I see. Apologies for misunderstanding, then.


I see what's wrong. I just don't have middle mouse button - problem solved.


You're probably joking sarcastically, but in case you aren't, you can click both sides of the track pad or three finger tap (if supported) to preform a middle click.


What do people use the middle click for?


FYI, you can open a folder as a new tab (or window) using cmd+click in Finder. Myself, I still struggle trying to ctrl-click folders open in Dolphin instead of middle click.

https://www.appleworld.today/2017/01/17/how-to-open-folders-...


> - I've never booted to a black screen when upgrading macOS.

Haven't had anything close to this happen to me in Linux in like 15 years. I've had to reimage my macbook thrice in 5 years. I really don't get it, my linux laptop is pretty wild (touchscreen, hidpi, tablet mode) and everything is supported out of the box, and I'm not even using a friendly distro.


> Macbooks are solid laptops.

I desperately wish this were still true, but I can't even see myself keeping my M1 Macbook Air as a Linux laptop. Too many compromises, too little power. Not to mention, it's a fragile little sucker too. I somehow managed to scratch the bezel on the second day of owning it...


Most of your above list would be taken care just by sticking to Ubuntu on Thinkpads using gnome-session-flashback. Its basically a polished version of the same DE I have been using since 2004 and love... rock solid (not of the boot or HW issues you mentioned, etc). I spend like no time ever messing with it and its been that way since 2014, 2016?


These sorts of lists always just sound like someone laundry list of personal preferences which have no bearing on what I would pick. Is is just a narcissistic tendency to think that one person's personal preferences are that generalize-able? Or is it more just the general love people have of talking about themselves?


>o Linux DE I've ever used beats macOS in terms of stability.

Maybe this is because I exclusevely use naked WMs with Xterms but OSX is horribly unstable. The GUI is fantastic though in every way you would expect a good gui to be that Windows and kde/gnome disapoint you.

>macOS is fundamentally the same as it was 10 years ago

It's way more service focused and a lot less performant. Opening apps sometimes pops up a "verifying authenticity" dialog with a progress bar for example.

>Windows and macOS solved vsync issues long ago.

If the tearing really does bother you then yes you should use OSX.


> I've never booted to a black screen when upgrading macOS.

I never had Linux physically damage my hardware after an update, MacOS sure did.


> - macOS is fundamentally the same as it was 10 years ago, just with some relatively minor changes to the design. I'm pretty confident they're not going to move the dock to the top and force a new window toolkit on me that most existing software can't use.

I don't know anything about macOS but that is an interesting point. I actually use Linux because of its stability. It is a deeply conservative operating system that tries its hardest to never break existing software. I recently booted up an old Netbook running Linux that is surely much more than a decade old now and hasn't seen any update and I still felt right at home.

Sure the Linux ecosystem has seen a bit of changes but most of them are opt in and can be avoided. If you were on Ubuntu you got experimented on quite a bit but thank god nobody is forced to use Ubuntu.

In contrast I am not even able to use a modern Windows system productively these days. The last version I used was Windows XP and it does not seem to have improved for the better UI wise to say the least.


> Sure the Linux ecosystem has seen a bit of changes but most of them are opt in and can be avoided

Ah, I see you've managed to avoid Mr Poettering and his opinions. Well done.


Not that I'll say Linux filesystem managers are any real good (last one I liked I think was replaced by nautilus), but Finder is no great piece of software. It actively opposes me finding hidden folders and files. It intermingles folders and files, with (AFAIK) no way to to change it. It won't show to-the-byte files sizes (AFAIK). Cut and paste and moving files is annoying. It constantly forgets I want details and not other views. It won't show zip contents without exploding it.

There are a dozen other things I recall shaking my head at but don't remember the specifics. File extension hiding, program association issues, split view crashes, integrations constantly broken between releases.


> It intermingles folders and files, with (AFAIK) no way to to change it.

“Keep folders on top” is a Finder preference as of Big Sur.

> file extension hiding

Also a Finder preference

> program association issues

That’s nothing to do with the Finder, but rather with how macOS discovers app-bundle file association claims through Spotlight. It applies equally to files opened through CLI open(1).

(Hint: if you downloaded the app from a website/through Homebrew, try opening the app itself once. It’s probably quarantined. Spotlight ignores quarantined things until you vouch for them. This is also why you won’t find the app in a search until you open it.)


Thanks for pointing out that preference -- I hadn't noticed it being added, so this was a nifty discovery.


Hidden file/folder visibility can be toggled with ⌘-Shift-. and zip files can be previewed with QuickLook after BetterZip is installed.


Didn’t know about the shortcut! Supernice


macs also have unzip already installed so no need to install anything to see contents of zips


> All the customization doesn't offset the trouble that desktop Linux can bring.

To be fair, those that desire that typically don't use file explorers.

I personally find them a hastle when they must be used, such as some websites for file upload have no easy way around using a file picker, perhaps they are much more convenient on MacOS, but I generally find it more convenient to use a shell command and simply provide the file to upload by way of an argument to the command. Modern shells also typically have advanced history search functionality to quickly enter a file path that one has already used in the past for something.


One of the interesting things I have encountered with Linux vs Mac users is that Mac users tend to blame faults much more on tools than on the system, while Linux users blame things more on the system and often try to workaround it or fix it.

To give an example, I've tried to convert colleagues to use meet.jit.si instead of zoom. On macs to share your screen you apparently have restart safari and give it some permission (I think you even need to do it every time? ). The people who were using macs were quick to dismiss jit.si because of this, even though it's completely an apple problem.


You don’t need to do it every time; you only need do it once per application. It’s a privacy feature that prevents an application being able to record your screen (or use your camera/microphone) without your explicit knowledge and permission.

And frankly Zoom just works, and works well. What advantage would using a random site with an unheard of record possibly give you?


> I've ever used beats macOS in terms of stability

laughs in elinks as I read PDFs in fbi

Scoffing aside, MacOS has all kinds of crazy edge cases. Linux is pretty good considering free -- but it also actively encourages you to get to the command line. I view this as a net positive.


> Macbooks are solid laptops. Every other laptop I've owned hasn't stood the test of time as well as my Mac.

If we go with anecdotes, in the last 2 decades, I used a mix of laptops from bargain bin to thinkpads. I used macs only the last 3 years (2 different mbp models) and those are the only ones that ever needed servicing.

1. Key caps falling off (replace the top),

2. Weird memory corruption on boot (out of warranty, get a new model),

3. Charging issues (replace the inside),

4. (kind of mac issue due to lack of ports) Their usbc-hdmi dongle started failing. (not serviced, get a new one)


MacOS full screen mode has been at least as quirky as i3 for me, but without all the benefits of i3.


I use both. Here is my take on it:

1. Mac has shit for a window manager. When I focus and get in the flow, Mac's window manager becomes a massive showstopper for me. My productivity lives and dies by my window manager customizations and shortcuts. Mac's is just a joke when it comes to controling 20+ windows. I sometimes have 100+ editor, terminal, and browser windows. Linux has many window managers up to the task (i3, xmonad, openbox, and countless more). Mac has the default one which you CAN'T change. There are Window Manager "Apps" which use the default window manager's APIs to tell it to, say, move this window to this area. As a result, I haven't found a usable third-party window manager on Mac that can operate at a fraction of the speed of the simplest window managers on linux.

2. Mac's official builtin package manager is a joke. The community's effort to fix it (Homebrew) is halfway between the debian maintainers community and the nodejs community, closer to the latter. I wouldn't say Homebrew is a joke, but it's not really comparable (and fair to compare) to the many human-years that has been poured into QA and patches the Debian community does. Also, you can touch all aspects of the system with apt/dpkg, unlike the like of ports or Homebrew. For people who want more control there is also Arch, and many other distros to pick.

3. Laptop build quality: IMHO Mac doesn't really have a contender here. Every year I try to hard-force myself to buy a non-mac laptop and fail. There is really no one serious enough (or, to be fair, with the same order-of-magnitude of cash and operations and hardware expertise) to pull of the same build quality. An anecdote (but very generalizable): A while back my non-mac (yet, a very well-known brand) laptop's fan died. I got a fan and replaced it. My wife's mac laptop's fan also died about the same time. I replace that one, too. At one point I had both laptop's open on my desk beside each other. I never want to buy a laptop with _visibly_ poor engineering ever again. Guess you have to compare the internals of a few laptops to get my point.

4. Software compatibility: I think this is a very fragmented area, to be fair to all OSes. A lot of vendors only produce on Windows. Some are Win+Mac. Some are Win+Mac+Linux+ChromeOS+Android+iOS. Also a very (yet very significant in some sectors) are Win+Linux, or Linux-only. So, one has to check the availability of the critical software they need. My gut feeling, lacking any better measurement, is that Mac has far more compatible Apps than Linux, especially Apps for the general public (not taylored to a high-tech profession).

5. Appeal: Mac has clearly undergone far better UI/UX design and QA processes than all existing linux DEs. This is very visible to some people (if not to most people), and does change the personal choice of people.

6. Stability and similar problems with Linux: I use both Mac and Linux everyday, and for me Linux and Mac has been about the same in terms of stability (with linux maybe a bit more stable). This is obviously hardware dependent, and linux runs on a vast number of hardwares, so it's not easy (or reasonable) to compare all Mac and all Linux instances. Or at least I don't care about such a comparison. Only the Linux configurations that make sense (well supported, without undocumented hardware blobs, etc.) matter (to me at least).

Overall, I prefer my Linux machines (not just because of software freedoms, but also because Mac is unusable for me when I work on large/serious software projects), but I simply can't live with current batch of Linux laptops either. Maybe in a few years some decent ones show up (purism could get somewhere, or system76, etc). Or maybe Apple finally works to scale up their window managers and package managers to make them suitable for special-cases and make it a bit less frustrating for some of us.


> I sometimes have 100+ editor, terminal, and browser windows. Linux has many window managers up to the task (i3, xmonad, openbox, and countless more). Mac has the default one which you CAN'T change.

This is so much my issue. I love i3wm, it's been a revolution for how I work. I never really understood the "desktop" concept with overlapping windows very much, and i3 works at an abstraction that is very close to how I imagine my desktop. I keep stacks of windows open in an arrangement that might be bizarre to anyone except me, but when I look at it it's 90% how I want it to be, a place no other WM/DM has ever gotten.

But I also don't want to deal with linux any more. Please don't sealion me with "but linux works fine for me!" here, but using linux feels like death by a thousand frustrations. Most recently I had to alias pulseaudio -k to pk because pulseaudio got out of whack so often I got used to killing it. That, plus I can't live with Ctrl-based shortucts anymore: I get serious pinky and wrist fatigue from a full day's work on linux. I can't be bothered to work around an entire missing staircase, so I switched back to macOS, where even if the WM isn't as good I can live with it.

(Incidentally, have you heard of yabai[1] / amethyst[2]? They're tiling WMs for macOS. I've been thinking of trying both out for a while now but I can't spare the time.)

1: https://github.com/koekeishiya/yabai/ 2: https://github.com/ianyh/Amethyst


I keep checking Amethyst every couple of years. Still not remotely comparable to i3 or other linux window managers. For one, it's extremely slow. I think it is about two orders of magnitude slower to say, move to another desktop/Space, than most (all I used, really) Xserver window managers.

The "Caveat" on the yabai's README page has been enough to deter me away (or rather, make it strictly impossible for me to try it). And it's not even yabai's fault that Apple has made the window manager (WindowServer) mandatory.

So, no usable window manager here so far, yet.


Ah, the SIP requirement for yabai isn’t that important IMO. They detail it in their wiki [1]. Incidentally, I tried it out since making the comment, and even without SIP disabled I’ve got it close to where I want it to be. It’s still not as great as my custom i3 setup was, but a few more weekends might get it to a much more comfortable place.

1: https://github.com/koekeishiya/yabai/wiki/Disabling-System-I...


This is a great, high effort post, and it matches my experience pretty well. Couple of comments:

> Laptop build quality

You're absolutely right here. When I had to take apart a MBP last year it was way easier than I expected from their reputation for being non-serviceable. I certainly wish parts weren't soldered on to the board, but that's an understandable tradeoff, maybe. I think my biggest point of criticism is the battery bags: pretty every older Macbook seemingly has had them expand somewhat, while I still have no issues with my Dell battery (in a solid plastic case that's externally swapable). The choice of Torx screws for the internals is fantastic as well. I'll never order a Mac for myself, but I am ordering Torx screws and the first thing I'll do with the next laptop I buy is going to be replacing all the internal Phillips screws with Torx for long term serviceability.

The externals are really important too: you're pretty much guaranteed to get a high quality screen with a Mac for example.

> Appeal: Mac has clearly undergone far better UI/UX design

Also agree strongly with this, although it's still messy and the inability to configure many things the way you can in Linux is a pretty unfortunate tradeoff. Tiny UX issues still bite: the global menu bar makes multitasking a pain because macOS desktops have a single application global context - you have to switch which application you're working on before you can do anything with it. Likewise, while you can usually maximize windows in macOS, practically speaking it's assumed you'll never actually do this. For example, the dock will change widths depending on how many apps are open, so "maximizing" is not really meaningful (the window size does not change when this happens).

> Software compatibility

This one's kind of messy, as you say. If you use mostly open source applications, there are a ton of them which are Linux-first or Linux-only. macOS has a weird problem where the norm is to sell every desktop application on a slick React website at about the $40 price point. Obviously, it's mostly closed source too. Though as a Linux user, if you need Photoshop, you've pretty much got to dual boot. That alone is an enormous negative in the compatibility bracket.


I have a mac pro and a lenovo carbon, build quality is on par with the lenovo being way more serviceable.


> This might be a controversial opinion, but I find developers flocking to macOS really bewildering.

You’re entitled to your opinion, but it is a good platform to work on. A real UNIX underneath, with a great GUI on top. Most things that run on Linux a recompile away from working natively, and still native versions of Office and such.

> This Lima thing

It is a VM to run Linux. How is that a demonstration that the OS is hostile?

> docker running in a virtual machine

This hasn’t much to do with the OS. OTOH if you want Linux containers, then I don’t see how you can avoid using a VM somewhere.

> Apple being actively hostile with the default coreutils requiring you to layer multiple third party tools just to get a modern version of awk and grep.

The versions of the GNU tools are ancient because they are pre-GPLv3. The BSD tools are more up to date. In any case, you can just do what you’d do on Linux and use a package manager.

> I Just recently I learned you can't add more swap ( creating a swap file and adding it ). That seems incredible to me.

What is the use case for this? The OS just adds some swap by himself, no need to mess around


> As a developer, why do you want to fight your operating system to get basic things done?

This kind of thing easily goes both ways, and shows you're considering things only from a narrow angle. Which is understandable by the way - but please do consider other views :)

There are lots of "basic things" that Linux doesn't get done, depending on your definition of basic thing. It's entirely reasonable for developers to consider things like "accurate and versatile trackpad movement" [1], "renders things consistently on HiDPI screens", "natively runs mainstream image editing or word processing apps", "can stream Disney+ above 720p", "has font rendering at least on par with Windows Vista", "has a Little Snitch type application that's both usable and actively maintained" or "there's stronger accountability in the development of apps I use because it's not largely developed by volunteers or people who assume I should solve my own problems".

All of these "basic" things are a fight on Linux, most are a fight you can't even win, and this isn't even a comprehensive list. A lot of these have a good explanation as to why they're a fight, but you can't blame people for wanting to avoid that fight.

I too run desktop Linux on machines because it offers a lot of flexibility while tinkering with things and a greater sense of control. But failing to see why Linux is not the objective pinnacle of desktop computing - even objective pinnacle of desktop computing for developers - is just really for a lack of trying. Desktop Linux is really awesome but damn it does it still have long ways to go.

[1]: Up until recently, and maybe up until this day, the best trackpad experience on Linux is running desktop Linux in a VM on a macOS host.


The situation with steaming services only supporting a lower resolution on certain platforms reminds me of skype only supporting a certain resolution if you didn't buy a logitech camera or only supporting a lower maximum number of people in a video call if you weren't using an intel CPU.

It's a scam with no technical justifications that would magically disappear if there were enough users demanding it.

Most users may need the ability to read word files but proportionally few need word. Photoshop is far less useful yet. Out of 4.7B internet users 22M are using photoshop. 1 out of 213 internet users need photoshop now. Bloom is an app that costs you $50 once if gimp doesn't suit. Instead of paying by the month you pay if you want the updated version.

Nobody on earth needs little snitch. It's literally a fix for one of two things. Applications you don't actually trust that want to phone home and people keeping their cracked applications from realizing they are cracked. The actual solution is not to run applications you don't trust. Don't pirate software and don't install untrustworthy garbage. This is literally the reason why there isn't a good solution for this on Linux. There isn't an actual use case. It's a solution in search of a problem.

Incidentally KDE has good hidpi support out of the box but a few applications need particular configuration. Takes about 10 minutes to read an article and configure stuff. Add 3 more minutes if you need to configure this yourself by setting environmental variables.

https://wiki.archlinux.org/title/HiDPI

Works well even on mixed DPI even on plain old X11. I can't speak for trackpads because I regard them as pretty crappy I'd prefer a small blutooth mouse even on the go. I've only tested the Mac trackpad in a show room I didn't find it particularly better or worse.


> "accurate and versatile trackpad movement"

I think you should leave this one out, because it's at best subjective. I've had a much better experience with trackpads on Linux than I have had on any Mac I've used, thanks to the synaptics driver. Far more customizable as well. Additionally, until pretty recently you'd be stuck with the nasty hinge-based touch pad on Mac laptops which required quite a bit of force to push, and tap-to-click was very much an afterthought.


> Additionally, until pretty recently you'd be stuck with the nasty hinge-based touch pad on Mac laptops

I don’t remember that being the case for at least half a decade, while my 2019 Thinkpad still has such an awful trackpad.

I would agree that trackpads are good enough on Linux, but not great like on a MacBook. Things like gesture support are unquestionably better on macOS.


Yeah, I'm referring to the MBP I still have to use sometimes, which is mid-2014. The point being that it's not like Apple has a long history of consistently great trackpads.

Certainly PC trackpads are inconsistent, which is unfortunate. Ideally you should try the trackpad on a laptop in person before you buy it (although if it feels great, and cursor movement sucks under Windows, might be safe to assume that's fixable in Linux).

Interestingly, while I do appreciate some of the gestures on Macs (I don't use many of them), I'd trade that for having physical left/right buttons. I can even play casual games on my Dell laptop without plugging in an external mouse because the experience left/right clicking is so much more reliable.


I use a Macbook Pro for development. I spend a fair amount of time in Linux servers. Running a Linux VM for local development of things that require Linux doesn't bother me.

I don't have to fight my OS. It works with my brain. When I'm using awk and grep, it's in Linux, not macOS.

Not judging you or your opinion here - just explaining that I'm as bewildered by your experience as you are by mine.


>I don't have to fight my OS. It works with my brain.

I think that's a mantra that applies a little better to Linux than it does MacOS. Linux is well known for it's customization, and you can really pad out your desktop to be an ergonomic and customized place designed for you. MacOS, on the other hand, is practically the definition of fighting your OS: you aren't allowed to have a proper package manager, Apple has to drip-feed you old coreutils through their notoriously slow XCode service, and now you aren't even allowed to use a VPN without Apple disabling it on some of their apps. I don't really see how a Mac elevates your workflow that much, especially when most of your praise seems to be towards GNU tools and your Linux machines.


Linux is more customisable, but macOS is much, much better out of the box. I use both every day for about the same amount of time, and macOS requires much less fighting to get the basics right (i.e. networking and Bluetooth just works, no need to tinker with X or Wayland, printing is much less problematic, OS updates are non-events, etc). I am happy to use Linux at work, but I would never put it on my main computer at home. It’s just too much trouble.

> you aren't allowed to have a proper package manager

I don’t know why you say that there is no package manager. This is demonstrably false. It’s just a different update mechanism than the core OS, which hasn’t been a problem for about a decade.

> Apple has to drip-feed you old coreutils through their notoriously slow XCode service

The old coreutils are the result of GPLv3. Latest versions are one command away with your package manager of choice.

> now you aren't even allowed to use a VPN without Apple disabling it on some of their apps

If you’re alluding to the Little Snitch thing, it had nothing to do with VPNs, and has been fixed AFAIK.

Honestly, your points sound like third-hand complaints you’ve heard in an echo chamber. It’s fine if you don’t want to use the OS, but then you don’t need to comment either.


It absolutely varies by workload and individual but I can be productive under macOS in a fraction of the time it takes with any Linux distro. Its defaults are much better aligned with what I expect of a desktop OS, and customizing Linux to behave similarly is both a fight and not possible to the fullest extent without breaking out the source code for existing projects and making modifications.

It's great that source-level customization is possible under Linux, but really, who has time for that? I could see myself delving into writing a macOS-clone DE (which as a sidenote, GNOME and Pantheon doesn't go far enough with) if I'm fortunate enough to be able to take a multi-month break from work but otherwise it's a lot easier to just keep using macOS.


> I could see myself delving into writing a macOS-clone DE (which as a sidenote, GNOME and Pantheon doesn't go far enough with)

How do they not go far enough with it? The only thing that I can think of them not emulating is the menu bar in the top left, but the Gnome team is already flying pretty close to the sun with their recreation. Even still, there are ways to implement a global menu bar into Gnome with a little effort if it means that much to you. Otherwise, I really can't fathom what you're missing out on, besides some walls for your garden.


Global menubar is indeed a big part. The biggest issue with implementations of this feature on the Linux desktop is that support of it varies wildly between apps (which is where some of the mentioned modifications come into play).

There's also a huge pile of small features that go beyond the scope of a comment to list, which are either implemented inconsistently or not at all. For example, in GNOME and Pantheon, window minimization is disabled by default and even when enabled lacks integration with whatever dock you may be using.

GNOME generally is rather odd, even if it's one of the more polished options. It strikes me more as a somewhat-desktop-adapted iOS than it does macOS.


I had to scroll back a long ways for this, but you might want to keep an eye on helloSystem[1]. While they don't seem to be super polished yet, their "MacOS Dream Clone" concept is something you might me amenable to.

>GNOME generally is rather odd, even if it's one of the more polished options. It strikes me more as a somewhat-desktop-adapted iOS than it does macOS.

That's because Gnome has to fulfill different responsibilities as a toolkit. It has to accommodate for touch-enabled devices, which pads out the UI quite a bit. It takes some getting used to, but I think I'm finally quite into it. It does a nice job of maximizing the actionable area of your window without sacrificing usability, uniformity or screen space. Compared to Big Sur's design language, the Gnome devs are already quite pretty far ahead of the game in my opinion. Gnome 40[2] positions the DE in a pretty good spot for the next several years, too.

[1] https://github.com/helloSystem/hello [2] https://forty.gnome.org/


Well, let's start with the places I take issue with:

> OS updates are non-events

Big Sur and Catalina have been the most disastrous updates in MacOS history. I'm not really sure why you'd choose now to highlight their notorious stability and ease of use. Ask any sysadmin who had a fleet of Macbooks during this update cycle: it was a nightmare and a half. Failing that, ask them about Catalina. They might run and hide under the table, a lot of them are still a little skittish about the word.

> I don’t know why you say that there is no package manager. This is demonstrably false.

Brew and Macports both suck. If you use Linux on a daily basis, then you're well familiar with what a good package manager looks like: apt and Pacman are both good examples. The amount of software on either of those platforms default providers makes Macports and Brew look like a pathetic joke. Add in the lack of extensibility offered on them both, the lazy Macports development cycle, Brew's half-correct installation philosophy and how out of place they all feel on MacOS, and you've got yourself a package management system that is just about as helpful as 'make install'ing it yourself.

> The old coreutils are the result of GPLv3. Latest versions are one command away with your package manager of choice.

The ball is in Apple's court then. If they want to brag about being a real Unix system, the least they can do is ship modern Unix tools with their OS. Ironically, MacOS is the least compatible Unix system around.

> If you’re alluding to the Little Snitch thing, it had nothing to do with VPNs, and has been fixed AFAIK.

No, I'm referring to the fact that Apple gives divided their networking API into privileged and non-privileged systems as of Big Sur. Now, Apple can designate certain developers (and themselves) a way to circumvent any custom network filters when sending data.

> Honestly, your points sound like third-hand complaints you’ve heard in an echo chamber. It’s fine if you don’t want to use the OS, but then you don’t need to comment either.

I mean, the M1 Macbook Air is sitting in my desk as we speak. I've also run MacOS on my beloved Thinkpad(s), but even the magic of a touchscreen Mac couldn't really persuade me to like the operating system. My guff is well founded, I think: as the most valuable company in the world, Apple has an obligation to provide at least some level of modularity in their ecosystem. Otherwise, the precedent they set will continue to influence every market we can conceive, until our concept of "ownership" is poisoned to mean a subscription service. It's driven by greed, and makes me sick. It always comes at the cost of the user, and the declining greatness of MacOS is a perfect example of how Apple's hunger for money is poisoning their product line.


> The ball is in Apple's court then. If they want to brag about being a real Unix system, the least they can do is ship modern Unix tools with their OS. Ironically, MacOS is the least compatible Unix system around.

macOS ships with BSD coreutils. It sounds like you prefer the GNU coreutils package, but that doesn't mean that the BSD tools aren't "real Unix", or that they're "less compatible".


> Ask any sysadmin who had a fleet of Macbooks during this update cycle: it was a nightmare and a half.

That’s not saying much, everything is always terrible and it was all better under Lion/Snow Leopard/Tiger/OS 8. The 4 computers I had to update did it just fine.

> Brew and Macports both suck. If you use Linux on a daily basis, then you're well familiar with what a good package manager looks like: apt and Pacman are both good examples.

Indeed. From my experience either work great (I use CentOS and OpenSuse daily, alongside macOS). The only bits of software I’ve ever needed which weren’t on Macports were quantum chemistry codes, which I wanted to compile myself anyway to configure them properly and avoid MPI issues. At some point I had to compile GCC myself to track the development branch, but I haven’t had to do that in quite a while now. So yeah, your points are valid, but they still do their job, and you don’t have to rely on them for OS updates, so they cannot compromise stability.

> The ball is in Apple's court then. If they want to brag about being a real Unix system, the least they can do is ship modern Unix tools with their OS. Ironically, MacOS is the least compatible Unix system around.

They haven’t bragged about it in a decade. Besides, if you know UNIX, you realise that this kind of shenanigans is just life, and that there is quite a bit of variance in the specific implementation of user land software. Your problem is not that it is a sub-par UNIX, it’s that it isn’t Linux (which isn’t UNIX). The BSDs also lack most of the GNU tools by default, and so did most other UNIXes when they were still around.

> I mean, the M1 Macbook Air is sitting in my desk as we speak.

That’s fine. I didn’t accuse you of lying, and you are entitled to your preferences. I just pointed out that your arguments were not great, and indeed often heard from people who never really used Macs.

> My guff is well founded, I think: as the most valuable company in the world, Apple has an obligation to provide at least some level of modularity in their ecosystem.

This might be your problem. Whatever their market cap, they don’t really have an obligation to align with your opinions. I understand that you’d like it, but what kind of moral imperative would there be?

> Otherwise, the precedent they set will continue to influence every market we can conceive, until our concept of "ownership" is poisoned to mean a subscription service.

How is this related to their business policy? I strongly dislike their foray into services, but other than that they sell devices, not subscriptions. Your devices are yours, nobody is going to come and take them.

> It's driven by greed, and makes me sick. It always comes at the cost of the user, and the declining greatness of MacOS is a perfect example of how Apple's hunger for money is poisoning their product line.

Right, so you have an ideological problem and that’s why you sound like that. Well, if I can recommend anything, it would be to keep using Thinkpads, they are good devices and Linux is great as well. That way you can completely ignore whatever happens on the Apple side and be happy.


> Right, so you have an ideological problem and that’s why you sound like that. Well, if I can recommend anything, it would be to keep using Thinkpads, they are good devices and Linux is great as well. That way you can completely ignore whatever happens on the Apple side and be happy.

Welcome back to square one. The only reason I even had any input on this in the first place is because I frequent Hacker News, and I just wanna pitch in my two cents where applicable.


> I think that's a mantra that applies a little better to Linux than it does MacOS.

You might be right. But Linux vs MacOS argument is meaningless. For me it's "Linux laptop" vs "MacOS laptop", and there's a huge difference in 2021.


Linux users clearly have an echo chamber too.


Substitute "more commonly" for "a little better" and you may be right.

As I mentioned in another comment, macOS works for me. Linux is more customizable, yes, that is objectively true. But macOS is uniquely structured by default to work how my brain works.

Just because something is more malleable does not mean it is the best solution for all people.


The VPN thing has been fixed months ago.


>>I don't have to fight my OS.

> I think that's a mantra that applies a little better to Linux than it does MacOS. Linux is well known for it's customization

> pad out your desktop to be

You've just described fighting your OS.

I mean, sure, if you like customizing things and "padding your desktop", knock yourself out. The last thing I want to do on my machine is spending any time doing that.

> I don't really see how a Mac elevates your workflow that much

You listed package manager, coreutils, and VPN. That.... That is a minuscule part of a programmer's workflow. And for the vast majority of people who end up using Macs as their development machines these three are a non-issue.


> You've just described fighting your OS.

It's only fighting if it wasn't designed for it in the first place, which isn't true. Linux (and the software designed for it) will always be modular. Once you have your desktop however you like it, you can backup your dotfiles and call it a days work. Bare git repos do the job almost perfectly.

> You listed package manager, coreutils, and VPN. That.... That is a minuscule part of a programmer's workflow.

If coreutils and a package manager are "miniscule parts" of a programmers workflow, I'd sure like to see someone program on a Mac without them.


> It's only fighting if it wasn't designed for it in the first place

You've completely ignored this: "I mean, sure, if you like customizing things and "padding your desktop", knock yourself out. The last thing I want to do on my machine is spending any time doing that."

I have other things in my life than fiddling with arcane configs.

> If coreutils and a package manager are "miniscule parts" of a programmers workflow, I'd sure like to see someone program on a Mac without them.

Yes. Here you assume that everyone is like you and has the same workflows and desires from a desktop like you. Nope, not everyone.

For the past 7 to 8 years brew has served me as a good-enough package manager. It's not perfect, but no package manager is.

No idea what your gripe with coreutils is. All of these [1] exist and work just fine out of the box.

So yes. Those are incredibly minuscule parts of a programmer's workflow. I've yet to remember any pain points concerning these two in the past 10 years of working on anything from backend in Erlang, Java, C#, Python, Go to frontend in Javascript and Typescript [2].

Granted, one thing you might not want to do is do C/C++ development on a Mac. I don't know the details, a friend of mine does embedded development, and needs a Linux machine for that.

[1] https://en.wikipedia.org/wiki/List_of_GNU_Core_Utilities_com...

[2] Well. Two or three times in these 10 years I needed a version that wasn't immediately available in brew, so I had to find out how to install the specific version I required. Installing also involved brew. Installing arcane versions isn't a better experience in Linux either. And LTS versions of Linux can rarely properly install new versions of required packages, much less arcane ones.


> I don't have to fight my OS. It works with my brain.

It's great that works for you, but that only works for people whose brains are (or have become) attuned to Apple's (often... interesting) ways of doing things.


I won't deny that. Just because my workflow adheres to the one that macOS best suits does not mean it is the best workflow objectively, or the best workflow for any other individual.

It just means that it works well for me.


I'm also pretty baffled. I fell for the M1 Macbook Air, and now that I have it... I still reach for my Thinkpad 90% of the time. Maybe it's just because we're in a pandemic, but the battery life didn't really wow me, and the performance was a little underwhelming compared to the Ryzen APUs I had seen on laptops half that price a mere 12 months ago.

And that's just the hardware side of things!

Not only are your coreutils horribly outdated, but getting a complete set of development tools on MacOS is a nightmare. Unless you install the 65 gigabyte monster (!!!) that XCode is, you're getting a gimped toolset, and Apple is kind enough to offer the end user absolutely no modularity in that install. MacOS still doesn't have a good package manager (though Brew and Macports are fine), it still doesn't have support for any industry-standard graphics APIs (sorry, Metal is still a joke), and your "end-to-end" encryption still sends your keys to Apple and third parties.

Seeing a developer use a Macbook used to be a symbol of pedigree back when OSX debuted, since it offered a pretty unparalleled Unix desktop experience. Nowadays though, MacOS has become such a bloated beast that its hardly worth using in my opinion. Big Sur feels like Apple's take on Windows 7, and I can only imagine that they will make the same mistakes that Microsoft did in their hubris with Windows 8.


So much of this is incorrect. You can prefer the ThinkPad, that's fine! But you've got several incorrect statements.

"Unless you install the 65 gigabyte monster" - It's 9GB. With caches and Simulator, maybe another 9GB. 1/3 of 65 GB.

"sorry, Metal is still a joke" - It's different, but developers who have to write shaders in Metal actually have pretty good reviews of it. They admit it isn't as convenient as having native Vulkan or OpenGL, but Metal has it's charm as a language.

"your "end-to-end" encryption still sends your keys to Apple and third parties." - INCORRECT. It sends your data over an encrypted connection to iCloud without any end-to-end encryption, but if you disable iCloud Backup, your data is completely end-to-end encrypted. This is very different than sending your E2E keys to Apple.

"bloated beast that its hardly worth using in my opinion" - The same could be said for Windows 10, eh?


Sorry, I was referring to an older setup I had where I kept multiple copies of Xcode for project testing. Either way, 20 gigabytes is still way too large for a program running on a laptop that starts at 256 gigs of storage (220 after the worlds largest operating system gets comfortably situated).

As for Metal, I think my statement still stands. I can't think of a single developer who would prefer to write shaders in a language that is slower than Vulkan and more complicated than OpenGL. Charm be damned, it's an asinine practice, and Apple should just default to an open standard like Vulkan, which would likely be a win-win situation for all of their users. I don't care about Metal and it's existence as an API is what makes developers around the world lament cross platform development.

I'm not really sure what point you're trying to make with the encryption bit, but it's a well known (and demonstrated) fact that Apple has the ability to unlock and access your iCloud data without your permission or credentials. They've done it several times, and have even used it to wiretap high-profile targets before (like poor Rudy Giuliani, or our friends over at SciHub!)

>The same could be said for Windows 10, eh?

Almost, though MacOS is technically the "larger" operating system: the disk image is more than twice as large as Windows, and it occupies about 50% more space on a fresh install. Both operating systems are pretty terrible choices though, and I should hope that incoming CS grads care enough about their freedom and privacy not to hand it all over to a centralized company that is ultimately beholden to a board of shareholders.


Perhaps the command line tools are all you need? They are much smaller than Xcode.


And easier to install as well, without even the need to log on to the Mac App Store. Just typing cc or some other similar command should start the installation.


"As a developer, why do you want to fight your operating system to get basic things done"

After 10 years of linux it took me 1 month with a macbook to decide that i just dont have the time to keep my linux running the way i want to, play the hardware lottery and fear every major update (or every update after a vacation with arch).


After 2 months with a macbook supplied by my employer, I am literally begging to go back to a Windows or Linux machine.

I just don't understand how you can possibly be productive with these things if you have to do anything out of the norm. It's like bureaucracy as an operating system.


I have the same experience.

I was given a MacBook pro at my last job and had to request a ThinkPad after a few weeks - the lack of function keys alone was enough to drive me mad, but countless issues with docker and even homebrew pushed me over the edge. For context, I _used_ to be a hardcore mac fanboy and did all my development work on it, but the macOS of today doesn't feel the same as the OSX of yesterday - at least not to me.

Linux desktop environments definitely still suck, and there's always some quirks with hardware but for the work related tasks once it's initially set up, it's always rock solid.


I mean, I just don't understand the fascination with rolling update models for the core os. I've got other things to worry about than playing with config files, so I just install a new LTS distro every couple years or so and amortize the pain to less than the yearly macos updates.


I guess that's just personal preference; I prefer to keep my systems up-to-date at least on a monthly basis. Most of the time the updates go without a hitch, and maybe once a year something very minor breaks. If I were to only update once a year (aside from security updates), I would expect many more things to break. And that's what I see from the complaints of my co-workers when they update macOS on their laptops once a year: a lot of pain in the ass issues that take a while to resolve. And this is after our IT dept has taken 3-6 months to test things on the new OS version and allow people to upgrade.

For reference, I run Debian testing until it becomes stable, and then 4 months or so later I switch to the new testing release name. I get an up-to-date system (Debian stable has a reputation for being old and outdated almost at release day), but also skip the part where Debian testing has a lot of churn and possible breakage. The newstable->newtesting upgrade, even though it's a larger one, rarely causes problems, and happens once every two years.


I, too, dislike rolling updates for my workstation OS.

I don't like using anything OS- or package-manager-provided on my dev workstation for per-project development dependencies, since usually it's much less painful (sooner or later) to manage those with a special tool for that purpose, or to vendor them, or to pick some OS that you might not like for your workstation as your deployment target (Alpine, say, or a very vanilla stable Debian) and just use scriptedly-reproduceable VM or docker or whatever.

I do like rolling updates for my actual tools and programs that I, personally, use. Editors (code or otherwise—image, video, audio, document, whatever), multimedia programs, browsers, quality-of-life improvement tools, command-line tools that aren't build dependencies, that kind of thing. If I hit a bug, then see that it's fixed in the latest release, I want there to be a very good chance I can just update my packages and get the fix, no further effort required. Or at worst wait a day or two for the package to be updated, and get it that way. If I read that a tool has some functionality, and install it specifically for that functionality, I don't want to lose time wondering why the hell I don't see it in the program, only to realize that it's because Ubuntu's packages serve a version that dates to before that feature was added (real thing that's happened to me on Linux).

That's where LTS Linux distros end up being a bad fit for me, because I want most of the stuff I actually use to be newer than what's in the repos.

macOS with Brew is about as close to perfect (for me) as I've seen. Slow-paced and relatively-reliable major OS updates, but my tools and programs stay up-to-date, and I can install damn near anything though the package manager (the closest I've seen to being as good as Brew as far as likelihood of my asking it to install something without checking that it has it first, and that actually working nearly every time, including for closed-source software, is Gentoo's Portage). I wouldn't prefer to install a project-dependency (say, PostgreSQL) through my workstation package manager anyway, so I don't care that it's rolling, since if I need something pinned I'll be fetching it some other way.

Given how fragmented Linux's GUI desktop is, and the way so much of it blurs the line between system- and user-packages, I think it'd be very challenging for a Linux distro to deliver as clean an experience, if that's the workflow you prefer (as, I've discovered, I do).


My solution for this on linux has been to run Linux Mint Debian Edition while using Nix for package management of stuff I want to stay reasonably up to date.


For the most part hardware lottery can be summarized in one word - Nvidia. Don't buy laptops with Nvidia card if you want to use Linux. Optimus is crap, prime offloading is crap and often laptop manufacturers hardwire external hmdi to Nvidia GPU.

I have been running the latest Thinkpad t14s with fedora 33 and it is perfect in almost every possible way compared to MacBook. I also have Thinkpad extreme gen2 with Nvidia card and I had nothing but trouble with it.


I'll just repost something I wrote on some other thread one time:

I've changed my laptop 4 times now in 5 years for different reasons, when I do so, there's only a couple of things to consider:

if I'm upgrading the HDD (for example when I made the jump from HDD to SSD or from my 2.5inch SSD to my M2 SSD currently) I need to clone the drive to my new storage, otherwise I only need to swap out my storage device from my old laptop to my new one.

With linux it just works I don't have to fiddle for my devices to be found, everything is just where I left it, the biggest change was when I went from an intel based PC to an AMD one, I only had to switch the display drivers after the fact (I knew because X crashed, I had to do this from tty), but it is expected since the display cards are totally different, all it took was a: sudo pacman -S xf86-video-amdgpu and a restart.

having a rolling release distro helps too, because you really don't have a reason to nuke your install and start from scratch, but even if I decided to do that for whatever reason, since most configuration is done via text files I can easily save those in a repo and just clone them to my new install and be done in a few minutes.

drwx------ 2 root root 16384 Dec 25 2016 /lost+found

^ that's when I last installed linux, I've been using the same install through 5 years in 4 different devices, it's pretty cool.

Of course I do my research before purchasing a new device, see if there's anything on the arch linux forums that's causing trouble with that particular device, but beyond that, it's all been good for quite a bit, I've never used another OS for this long without doing a hard format and performance hasn't suffered at all, I have almost every development environment available to me one command away (except for Xcode and some Windows specific stuff ofc).

but, my counterpoint is, I feel all OSs are decent enough nowadays and all provide good enough or better functionality OOTB, so for me it has become more subjective than anything, there are strengths and weaknesses to all of them, and I wouldn't be particularly bothered if I had to use one of them because of some requirement or something, but if the choice is mine, it's GNU/Linux


> fear every major update

Like when a major macOS update bricks your computer and requires hardware repairs? https://en.wikipedia.org/wiki/MacOS_Big_Sur#Criticism


I don't feel that I have to fight the operating system at all. In order to get the package manager and a modern version of coreutils you have to run three commands:

    $ sudo xcode-select --install
    $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    $ brew install coreutils
The upside is getting a system where most of what I need works out of the box with fairly sensible defaults. The viability of macOS probably depends heavily on the kind of work you're doing.


I can't tell if you're being sarcastic, and I say this as a Mac fan, but your 3 commands are:

  - Install a whole IDE, so you can...
  - Install an unofficial package managar, so you can...
  - Install coreutils


"sudo xcode-select --install" doesn't install the whole IDE, just some cli tools.


> an unofficial package manager

I thought the reason everyone loved Linux was because you could mix and match components and choose what fits for you. But suddenly "an unofficial package manager" is out of bounds?


'xcode-select --install' literally just installs the developer command line utilities, not an IDE.

Xcode, the IDE, is a separate download on the App Store.


For me I stopped fighting the OS by abstracting the OS away from my work. The JVM is my target and it "runs everywhere" essentially.

Then I chose macOS over Linux or Windows because I like the way it looks, iTerm is good, brew is "good enough", my IDE (IntelliJ) runs nicely and looks good with nice crisp fonts on big 4k display.

I do Docker things but only because others write code in JS, generally I use tools like Google's Jib that allow me to build and push containers without needing Docker locally. Docker does nothing for JVM apps, we have jars/wars/nars for distribution and already get that "runs the same everywhere" for free without all the nonsense that comes with languages that depend on system libraries and architecture specific code like Node/Python/Ruby/Go.

Build with Jib, push to registry, run with k8s, enjoy life without Dockerfiles.

You can do similar with Bazel too but I imagine it would be harder if you need to cross-compile from Darwin to Linux, etc so probably only works this well with JVM.


Long time Linux user and also long time macos user. I've never had any problems getting "basic things done" on either platform. Except for Linux, which has inferior applications for most things.


I think where macOS shines is it's standardization of things beyond the unix terminal.

(I'm also a big fan of the hardware. 2019 macbook has been the best laptop I've owned so far)

In terms of fighting the OS, I don't know where that comes from.

Anything cli you generally use sudo, anything else you open the security settings and tick some boxes. I don't even have to type my password, I just touch the finger print reader. Then the program works forever. (I have a keybinding to open security settings too, so it only takes maybe 5 seconds most of the time)

I honestly don't know what people are fighting, unless they just really hate clicking through a few menus.

One key piece of advice I follow is NEVER update to the latest new OS version. Almost every person I know does and they run into crazy issues that shouldn't even be problems. I'm not going to be your free QA engineer, Apple.


Would you call tethering your Android phone via USB to your laptop a basic thing? Recently, I was having trouble with my phone's WiFi hotspot and tried to tether via USB. The only solution was Horndis, a 3rd party kernel extension. I quickly became knowledgeable about kexts and csrutil, rebuilt a kernel extension for M1 architecture and gave up after several hours of frustration. It's ridiculous that Apple can get away with being so closed


That’s not an Apple problem, that’s an Android problem. The ball is in Google’s court there.


How so? It works fine on Linux, and I hear it works fine on Windows too (I think you might have to install a driver there though). Apple seems to have the odd OS out here, why is it no their fault?

My assumption here is that, as usual, Apple doesn't care about anyone who hasn't fully bought into their ecosystem. If it's not an iDevice, they don't care if it works fully with their desktop OS.


you can just use adb to forward a socks proxy through your phone. not sure why you would need a kext


If a Linux user suggested that, they'd be laughed out of the room. "Yeah, just use this semi-obscure command line tool to forward a port, then set your system to proxy through it" is a technically workable solution, but poor UX.


Exactly! I keep seeing this shit about how you have to fuck around with all these config files in Linux... Then when you have to do the same trash for basic things in OSX, nobody blinks an eye.


Or maybe it's ridiculous that Google leaves this "basic feature" to Horndis and doesn't make a nice way to do it themselves. Which is telling on how "basic" this feature is and how many people actually use it in the real world. I wouldn't call it a basic thing.


I've been using Debian almost-exclusively since 2001. A new job requires that I work on MacOS, which has been fun.

The primary things that I am struggling with are the keybindings and loss of true fluxbox sloppy focus. zsh and the BSD tools take a little getting used to (different ps, grep, sed, etc?), but are quite serviceable.

But lordy, do I wish I could hit windows-A at any time and instantly get a new terminal, as I've been doing for twenty years. How do y'all Mac people live? ;).


Yeah the different keyboard shortcuts are annoying. Though I have the opposite perspective, and macOS’ feel much more natural.

That said, on macOS there is a preference pane in which you can rebind almost all shortcuts, and add shortcuts for things that don’t have them, and it works OS-wide without fuss. In particular you can add shortcuts to services (which is something you probably want to look into), and you can set Automator workflows as services. I haven’t seen anything quite like that on Linux.


I do love that the command-key allows terminal copy/paste without overloading Ctrl-C (and was overjoyed when I center-clicked by reflex and the Terminal did the right thing :))


> wish I could hit windows-A at any time and instantly get a new terminal

You can create your own macOS native workflows with Automator and launch them with macOS keyboard shortcuts. It's all built right in.

https://www.computerhope.com/issues/ch002051.htm


Will that override command-A for select-all? (which would be ctrl-A on most other platforms) Looks like maybe-not, through redirects?


It would override command+A for select all.

You could rebind select if you wanted, I wouldn't really suggest doing that though. The command key sends the same key-code as the windows key, but it's not on the same place on the keyboard.

If you're on a Mac keyboard, the muscle memory should map to Option+a. Which by default types å.

If you're using a PC keyboard with your Mac, and you're not already used to it… you might want to look at 'System Preferences > Keyboard > Modifier Keys...' so that your setup either:

1. Puts the modifier keys where they are on Mac keyboards, by setting Option->Command, and Command->Option.

2. Puts most shortcuts where they are on PC keyboards, by setting Control->Command.


I have two MacBooks now given to me by work. I loathe these things. The two finger scroll is awful. I'm constantly getting what feels like palm rejection mid-scroll. Everything is mouse driven, including split windows and if you want to use your mouse to split your windows it shifts the window and you over to a new virtual desktop. MacOS is constantly roosterblocking me from installing any apps not from the App Store. If I connect it to my little HDMI type-C dock that hooks me into my multi-monitor setup, then leave it to sleep it will begin making a chime saying it can't provide power to my peripherals.

Docker is awful on it, (yes that's what ssh is for), devland in general is awful on it. It feels like I'm using an overwrought iOS interface.

The trackpad is obnoxiously large. There's no reason for it to be so large. My XPS 13 Developer Edition's trackpad legitimately feels as good and leagues better as far as scrolling goes.

There's also some huge performance issues if you upgrade Catalina to Big Sur and you use a model with hybrid graphics. Like out of the box, upgrade, bam issues.


I definitely agree with the trackpad complaints. Pre-2016 MacBook trackpads were basically perfect. But the newer ones are truly junk. I'm holding onto my 2015 Air as long as possible, for this and other reasons related to the hardware.


"why do you want to fight your operating system to get basic things done?"

Depends on the developer. How many developers use awk and grep? Most web developers probably have touched them once and never used them again, and prefer using MacOS compared to fighting Windows to do their web dev. Making a blanket statement that doing any development requires "fighting MacOS" is silly.


A couple years ago I realized that if I had a good terminal environment, all I really needed was a terminal, browser, and IDE.

So, by using Linux, I lose, I dunno, iPhoto and iCal and whatever, but I gain real Linux with a real Linux package manager and immediate access to the latest version of every tool I can imagine. Plus fun stuff like BTRFS, a tiling window manager, and a feeling that I'm actually in control of the system I spend 8 hours a day in front of.


+1000 for the tiling window manager comment! I can't stand the weird nightmare which is macos desktop management with spaces.

iCal is a big draw though, Linux calendars are terrible and since thunderbird choked and left xul Mailmate is attractive too.


I develop backend (services and other infra-y things) and ML systems on a MacBook Pro. I use awk, grep, find, cut, sort, etc. frequently (awk and grep daily).

They work fine. And I really enjoy developing on my laptop.

I was forever the biggest anti-Apple, anti-M$, pro Linux “fanboy” you could imagine until a year ago or so. So it’s quite new to me really.


That was just an example though. My point was that you're constantly fighting an operating system that's clearly not designed for you ( the developer ).


Apple has always made it clear that they care about the experience of their users, not the developers. Because the customers are there, the developers follow. That's just how it works unfortunately.

Also, clearly not designed for you? You can install Brew to have a package manager, Magnet to add Window snapping for a dollar, you can make it fit your use case for not that much effort or money. You don't have to use vanilla MacOS.

Furthermore, consider the alternatives. You've got Windows (bleh for a thousand reasons and clearly also not designed for developers), or you've got Linux (which doesn't have many of the apps you need, worse battery life, doesn't have Handoff to your iPhone). MacOS is the best all-rounder option for many people.


Forget window snapping for a dollar, try window snapping for free with Rectangle! https://rectangleapp.com/

And I agree. As a user and developer, I have no idea what the OP is on about


Yabai is (also free, beer and speech) the best I found. I mainly use Linux, but I do try to keep my dotfiles agnostic, or have ~'equivalents' like i3 & yabai.

MacOS is fine if you want to run with defaults and experience everything as Apple wants you to, and change that if they announce they want you to in the grand unveiling of the next version.

If you try to deviate at all, it becomes a fight.

Linux is sort of the opposite extreme and some people don't like it because to some extent (although surely not really true of Ubuntu etc.?) you have to have these would-be deviating opinions on setting something up, you know, choose a shell, a window/display manager, a browser, a file manager, etc. But because of that, it doesn't care which you pick, if you change it, or how long past its sell by date you keep it running.


> If you try to deviate at all, it becomes a fight.

Exactly this. Linux scares people because many people are allergic to choice, and the concept of actually developing an opinion on something other than the sum of their total experience on MacOS. Linux is frustrating, because there are a lot of different places you can point to as underdeveloped, but only because you can see the entire thing. When something breaks on MacOS, you just have to shrug and pray you don't use it, because your only support options are to reinstall MacOS or buy a new computer.


Beyond the choice vs lack of choice issue, Linux is also frustrating because it just lacks the high quality apps macOS has. Period.

I use Arch btw.


"High quality" depends on how you measure quality. If you're judging by looks and how many buttons it has, then yes, I think it takes the cake. But I honestly appreciate the current Linux design paradigm. GTK and QT are both awesome GUI toolkits, and compliment each other nicely. GTK does a wonderful job of filling the MacOS gap, by making it easy to create simple but effective UIs. QT, on the other hand, offers a more stable and "complete" experience, pretty much catered towards people familiar with the Windows/.NET development workflow.

Like the other commenter said, I just don't see anywhere Linux is particularly lacking. It has first class support with DAWs like Reaper and Bitwig, it has pretty great video editing chops with apps like Davinci Resolve and Kdenlive, and it almost has a complete photography setup, at least once GIMP switches to GTK+ and Darkroom gets a few more features. All of those are "high quality" apps, and they're also free: a pretty massive distinction from the MacOS software you might pit against it.


I sort of simultaneously see that that's true, but also don't personally feel I'm missing anything except Fusion360.

But maybe that's just the extra motivation I need to use something else like FreeCAD or OpenSCAD with more git-able files anyway.

(I also use Arch btw.)


Sure, you might only miss one or two apps. And I might only miss one or two apps. But it's probably different apps for both of us, and I think that probably generally holds true for the vast majority of people.

The Linux Desktop is 95% of the way there, no question about it. But that 5% is different for each individual, and ultimately, it matters.


I mean, we can't kid ourselves here: none of these operating systems are 100% of the way there. By your logic, MacOS isn't 100% of the way there because it can't play the same games as Windows, and Windows isn't 100% of the way there without running Final Cut and Logic. The issue with that metric is that it will grossly play against your favor if we're being diminutive about the amount of software that's on each respective platforms.

It really depends what you do on your computer. I think a better way to look at it is that each of these OSes will do 90% of the things you want them to, and you just need to pick and choose which 10% matters the least to you.


You forgot BSD… oh wait I guess they’re also user hostile because they dare to ship without GNU grep


> to add Window snapping for a dollar

You have to pay extra for basic window manager features on macos? How is that even caring about the experience of users let alone devs?


It is not built in. They won’t sell it, though. There are tools to add this sort of features, some are free software, some are gratis but proprietary, and some cost money.


Apple clearly has evaluated Window Snapping and decided not to add it for whatever reason. Rumor has it Microsoft patented it.


That's untrue though, because Linux DEs have been doing 4-way snapping for decades now.


> That's untrue though, because Linux DEs have been doing 4-way snapping for decades now.

That doesn’t mean it’s not patented. It just means there’s nobody worth Microsoft suing.


It reminds me of how my old Nokia phone could do such basic things as use custom ringtones, whereas iPhones of the time did not have this functionality.

Apple seems to have this thing where they treat basic functionality as a premium or an upgrade. Things like window snapping, or being able to compile and distribute software...


It's especially heartbreaking when they take that same functionality and lock it behind APIs that most developers can't use.


For a few years now, Linux has had KDE/GSConnect, which adds in basically all of the MacOS/iPhone handoff functionality to your Linux distro/WM of choice, with a few extra tools that go beyond even what Apple has.

For starters, there's the basic stuff: desktop messaging, contact synchronization, integrated wireless filesharing, universal clipboard/notifications and battery updates for your connected device.

Then it also has some features that don't exist on MacOS/iOS: you can set up macros on your computer and easily remotely execute them with the press of a button on your phone, use your phone as a wireless trackpad, synchronize media controls across all your devices, use your phone as a keyboard for your computer, use your computer as a keyboard for your phone, wirelessly mount your phone as a webcam, ring it at max volume if you lose it, and sharing links.


You can’t stop dozens of chatty network services, due to a read only system partition. Without defeating other security that is. That’s a poor design.


Umm... yes, you can. You can use Little Snitch just fine.


That’s a band aid, rather than the proper solution of not having them on by default.


Poor design is leveraging a security model on an arbitrary and centralized root of trust, but maybe it's just a matter of perspective.


Yes, that is a poor design - no sarcasm - I mean it.

However it’s better for most people than the alternative.

Fixing this should be job #1 for the Linux community.


For the most part, Linux has "fixed" that. Really, the hardest part of using Linux is the onboarding process, which is being addressed with companies like System76 and Lenovo offering to ship laptops with Linux preinstalled.


As far as I am aware Linux hasn’t even started to work on the problem:

https://m.slashdot.org/story/360034


Visual Studio, Delphi, C++ Builder are clearly designed for developers.


Can you list a few more examples of fighting things?

I'm using a macbook as a dev machine, and I've genuinely never been so productive in my career.


The people who develop macOS, iOS, et al are also users of those systems. It’s pretty awesome actually.


I works perfectly fine for me as developer, because I don't use macOS to develop Linux software, for that I use a Linux laptop.

While on macOS, I as developer, only care about Apple Frameworks and languages.

Developer != UNIX command line.


>Apple being actively hostile with the default coreutils requiring you to layer multiple third party tools just to get a modern version of awk and grep

This is a pretty trivial complaint. It's three lines pasted into the shell available on like a hundred blogs on the internet to update your coreutils. If you are at the point where you need a modern awk or grep and you absolutely cannot do with what is installed already, I would be shocked if you didn't already know about brew and have them installed.


"I Just recently I learned you can't add more swap ( creating a swap file and adding it ). That seems incredible to me."

At what point are you just approaching MacOS with the wrong mindset? MacOS isn't something you should or need to manage swap for or should really think about. It's the same reason you don't think about managing swap on Windows or your iPhone or your Android or your Smart TV.


> you don't think about managing swap on Windows

I haven't really been a Windows user since Win7, but as I remember it 'increase page file size' was right up there with 'clean the registry' and 'try turning it off and on again'.


> MacOS isn't something you should or need to manage swap for

I would 100% agree with you with regards to most macOS users. But as a software dev of course this is something you might have to do every once in a while.

The fact that you can't doesn't seem to align with the fact that macOS is the operating system of choice for software devs.


But as a software dev of course this is something you might have to do every once in a while.

In about twelve years of a variety of software development on Mac, from embedded to iOS/Mac apps to web, it has never even once occurred to me to do that. Considering that the OS will fill the disk with swap if need be, I'm trying to think of a reason to even want to do this.


Swap files are created by the OS when the existing ones are full. They are removed by the OS when they are empty. There is no way to set the swap size, because it is dynamic. What is the point of setting the size yourself, besides running artificially out of swap when you need more or taking unnecessary space when you need less?


AFAIK macOS will use the whole drive for swap (or at least an awfully large number of gigabytes, correct me if I'm wrong), why would you want to add more?


>It's the same reason you don't think about managing swap on Windows

Except one of the first things I do on any Windows setup is to move the page file somewhere else or resize it.


Same here. It feels like the people going gung-ho for macbooks here are the type of people that would take their computer to best buy if they got a boot loop instead of just fixing it.

Kind of incomprehensible to me that anyone in that mindset would be a developer.


> if they got a boot loop

I have literally never seen a boot loop on a Mac.

How would that even come about?


This poster gets it.

I use macOS because there's about 1/10 the likelihood that I'll have to burn half a day fixing its fuck-ups as there is with Windows and Linux. And I did plenty of that for years before ever seriously using a Mac.

Nowadays when I check in on the Linux desktop to see how it's doing now, I notice how easy it is to get into the old habits of "oh this is pretty good, just a little tweak and I can get the audio working the way it ought to, oh and this and that" down a bunch of little rabbit-holes and pretty soon I've burned hours on stuff that sure looks like work, but is 100% unproductive. When I catch myself doing that I go "well, not ready to switch back yet, I guess, maybe next year".

I think a lot of people using Linux on the desktop either somehow manage to use it very differently from how I ever have, or are completely blind to how much time they're losing to it because they're having to work around deficiencies, put up with bad behavior, or fix stuff. That is, I think both categories of Linux desktop user exist, not that it's one or the other. I was definitely in the latter category, and can recognize that in myself now. Last I checked (a few months ago) the Linux desktop remains something I need to avoid if I don't want to end up doing a bunch of fake work.


For me personally Windows/Linux falls under the same umbrella: I'm going to largely use it as it comes from my favorite distro (or microsoft) with slight tweaks that rarely break anything. These tweaks are usually accessible via settings panels (or regedit)

For MacOS: Instead of tweaking things internally I have to reach out to third party application developers to fix things the OS lacks. Some examples: bettersnaptool to give me modern window snapping like Windows/Linux, or the Android File Transfer so I can actually access my phone.

Either way I'm having to make changes to get cozy, MacOS just means I'm going to be handing money to a few thirdparty devs by the end of it in order to get it to behave like I'm used to OS's behaving. Maybe that's my fault from growing up mostly in a Windows/Linux environment besides the few years I spent in OS8/9 in college.

I'm comfortable in all the major operating systems. It just cost more for me to get comfortable in MacOS. Not that it's a bad thing, dev's need money too.


> Maybe that's my fault from growing up mostly in a Windows/Linux environment besides the few years I spent in OS8/9 in college.

I would say so. It took me a few years to adapt from Windows/FreeBSD when I bought my first Mac.


try Elementary.


It happened to me on the big sur upgrade. Apparently there wasn't enough space on the internal HDD to finish the upgrade, but it tried anyways, got halfway done and just... failed.


> It's the same reason you don't think about managing swap on Windows

not managing swap on windows means being condmned to slowness


Just to address one part in detail, what "layer multiple third party tools" means in practice is: install brew, install gnu-utils, and add the relevant directory to $PATH.

It's fire and forget. I'm quite confident you can do it with ports, or even nix if you really want to.

I know it's subjective, but it doesn't feel like Apple is being "actively hostile" here. It's just configuring your system to be different from the default.

I don't even remember the steps in detail (like what does brew call the gnu utils?) because I did it, once, four years and three laptops ago. I actually did it seven years ago as well, but that laptop was stolen.

Edit: also, I didn't "flock to" OS X, I eagerly bought a G5 as soon as I could afford it, in 2003. I learned Unix on workstations (Sparcs mostly) and my Yggdrasil Linux partition was always a poor substitute in comparison. So when Apple started selling workstations? and they were Macs? Yes please!


> As a developer, why do you want to fight your operating system to get basic things done?

I've been using Macs for development since 2013. I've done Android, Ruby on Rails, React, data science with Python and R. Apart from Docker, I don't remember "fighting" the system.


Same story as you. Nearly a decade of professional software development, most of it on company-supplied Apple hardware. I spent... maybe a week or two getting used to macOS with my first laptop after coming from linux and Windows, and don't really recall fighting much in the decade since.

I used to be a heavy desktop linux user, and can kind of empathize with the idea of being frustrated with less control. But at the same time... I feel like if you're legitimately fighting with an operating system, you're just picking a fight because you're unwilling to adjust your workflow even the smallest amount.

If I had to use a Windows laptop for work tomorrow, I'd probably spend a couple of weeks annoyed about relearning it, and then I'd be fine again (though I'd miss unlocking with my Apple Watch and having iMessage). Life is too short to get worked up over stuff like this.

Sometimes I'm frustrated by AWS and miss being able to SSH into bare metal. Sometimes I'm also annoyed by payroll software. Confluence's text editor has a habit of freezing input if it thinks I'm offline. No tools are perfect. Imperfect tools still let you earn a living, and you can even do it without fighting holy wars in internet comments.

There have got to be dozens of us around here who are competent technologists without the zealousness.


As a longtime macOS user and an ex-Linux user, I believe for many the idea goes the other way around. Why fight to keep your linux installation working? MacOS has worked nearly unconfigured for me for almost a decade now.


That's fine if you're content with whatever changeable (just not by you) defaults.

I use both, but mostly Linux, and macOS is way more of a 'battle' because something I have set to behave how I want it to will suddenly stop working, or have been barely possible (e.g. window managers) in the first place.


Oh I'm not fighting my OS to get basic things done, also I can't remember the last time I used awk. I use grep often, but I'm okay with whatever version I have (apparently it's BSD grep 2.5.1).


I use macos for my desktop, but it has gradually become a terminal emulator + firefox + mail. and for mail, I won't move to catalina mail because they nerfed it.

Eventually this will all be linux. I just have to make the time to figure out a good desktop setup.

EDIT: actually preview (space bar in finder) on macos is quite useful.


That's pretty much what I use these days. Plus emacs. I run a minimal gentoo setup and hate using other computers as they are always sluggish despite having newer and more powerful hardware.

You should look into a tiling window manager. It's really liberating to stop worrying about wm behaviour.


and emacs (yes)


Not sure what alternative you might have in mind, but none comes close to macOS if you want a half descent desktop experience based on unix. Ubuntu Desktop is an utterly terrible user experience, people who advocate for it generally still believe for example the mouse should have never been invented and those lesser people who find it useful should be happy with Ubuntu Desktop. Windows is also a no go, if you think Apple is hostile wait until you're presented with Internet Explorer or a slew of administrative layers meant to control you on a Windows box.


> I find developers flocking to macOS really bewildering. As a developer, why do you want to fight your operating system to get basic things done?

Why is it hard to grasp that different people have different needs and experiences?

Maybe you would have to fight macOS. Others have to fight Linux, or Windows, or Android, or iOS. There’s a reason not everyone is on the same platforms.

Developers, like scotsmen[1], aren’t an amorphous group.

[1]: https://en.wikipedia.org/wiki/No_true_Scotsman


It’s just a trade-off. Which part of the OS do you hate fighting the least. Given that by the early 2000s you couldn’t really get away with a text-only terminal as your dev machine and years of fighting with XF86Config and some other bullshit I left it for MacOS using Emacs tramp-mode on the Linux box for development. I’m still waiting for the “year of desktop Linux” to arrive.


I kind of think similarly on the subject. They make some beautiful hardware, but I've never been able to get comfortable on macos. I love linux, but that also has some drawbacks when running that as your desktop or laptop. I have been really liking WSL on windows 10. I don't need to worry about installing stuff on windows, but having linux as my shell has been pretty great. I wouldn't call it just a better integrated VM, it's almost like having a chimera of an OS that is both linux and windows.

e.g. I have this in my .bashrc in my centos container. It runs the windows powershell executeable to write to my windows clipboard. Not sure how they're doing it but, seems pretty magical.

function cb () { powershell.exe -command "\$input | set-clipboard" }

echo "hello" | cb # hello written to windows clipboard

All that being said, I'd be really interested in how well this project integrates the container on macs. Maybe this will be a good option for the future.


I found the start up time for powershell to be quite noticeable in WSL for scripts like that.

If copying is all you're after you can invoke `clip.exe` instead.

Honestly though I just caved and ended up using an xserver with WSL for really smooth copy and paste support. Paste requires a powershell invocation without an xserver.

Definitely recommending X410 (paid) or VcrXsrv (free) -- let's you launch x11 apps too!

Once WSLu is released everything will be even more seamless though.


What latency do you get? Haven't checked, but would guess I see ~100ms. I've been using centos 7 with bash.


Yes, I am the same way. As soon as you leave some tiny sandbox whose borders I can't even make out, development on macOS is absolute hell and the world breaks every new version.

I guess macos devs just know how to confine themselves better to the sandbox than me (don't use other shell, don't use postgresql, only do web/jvm/interpretted language programing, never ever need a C library that isn't installed?)

NixOS doesn't make the things linux is bad at better, but it sure makes the things linux is better at better, so the difference between linux and macOS for me is especially stark.


> Apple being actively hostile with the default coreutils requiring you to layer multiple third party tools just to get a modern version of awk and grep

This makes no sense. Apple's Unix CLI tools are largely derived from FreeBSD, not GNU coreutils. I've seen no evidence that Apple is actively holding those back.

That you prefer the GNU version is an entirely different matter from Apple not shipping "a modern version." Frankly I'd prefer the GNU version too, but still.


It’s because web design software does not work in Linux and a lot of developers are expected to be full stack. Sometimes the software packages don’t work well in windows


Why do you assume running a bunch or GNU utilities and Linux chroots (“containers”) is something developers need generally? Only developers working on specific things and working in pretty specific ways will need that. Maybe that’s a lot of the folks here on Hacker News, but it’s not, say, the millions of people doing iOS development.


Plenty of us don't really have any need for Docker other than stuffing CV, and not every developer on whatever platform is doing UNIX stuff.

Thankfully the world of development is much more richer than that.


> I find developers flocking to macOS really bewildering. As a developer, why do you want to fight your operating system to get basic things done?

Haha! (I assume that was sarcasm. If not, you might want to look at the voluminous writings of humans who have had trouble getting standard modern laptop functionality working on linux, suspend to disk, battery life, hi res screens etc etc. Not you -- I mean mere mortals who don't want to change their OS's swap configuration)


Because the touchpad works.

And my dev is in the cloud (mostly).


for me, I travel a lot. Have you seen the size of workstation-class laptops? Just the powerbrick on the top-end lenovo is almost the size of a shoebox. And even the upgrade screens don't hold a candle to macbook screens.

So I will put up with Macos interop quirks with docker and so on for the great screen and ease of carrying.


You're kidding right? There's a decent number of thin & light laptops with HiDPI and 100% DCI-P3 coverage screens offered by OEMs. Some offer 16:10 and 3:2 ratios too. The only downside is all of these high-end models will be Intel quad-core (even if Tiger Lake has been pretty good compared to previous Intel generations)


how many have 32gb+ of memory?


Sadly, I'll concede on this selection being dismal and in this form factor, the RAM is almost guaranteed to be soldered.


> shoebox

it's closer to the size of a cellphone

https://www.amazon.com/Charger-Compatible-Lenovo-ThinkPad-Ad...


Isn't WSL2 at its core also just a better integrated linux virtual machine?


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: