Lima: Linux-on-Mac
github.com
github.com
Docker on a linux VM, with all code on the linux VM, is significantly faster than Docker for Mac. Generally just because of IO.
For Docker Desktop, hopefully Justin Cormack will stop by and answer.
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.
I originally did this in a Linux VM, but got tired of the battery hit that running a VM 24/7 has.
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.
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.
You don't need strong marketing for small pet projects, so a longer generic name achieves exactly the same purpose.
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.
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.
- 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.
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.
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. :)
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.
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.
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.
> 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.
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!)
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.
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.
> 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.
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).
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...
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.
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.
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.
Of course that‘s not acceptable for some people and for some use cases but it is for me.
- 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.
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.
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.
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.
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.
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.
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...
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.
(But please read this)
https://lna7n.org/2020/01/06/pulling-the-plug-on-archmac.htm...
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.
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.
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!
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.
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.
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.
That's way worse than removing the escape key.
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)"?
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.
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.
- 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- 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
https://www.appleworld.today/2017/01/17/how-to-open-folders-...
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.
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...
I never had Linux physically damage my hardware after an update, MacOS sure did.
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.
Ah, I see you've managed to avoid Mr Poettering and his opinions. Well done.
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.
“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.)
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.
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.
And frankly Zoom just works, and works well. What advantage would using a random site with an unheard of record possibly give you?
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.
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)
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.
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
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.
1: https://github.com/koekeishiya/yabai/wiki/Disabling-System-I...
> 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.
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.
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
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.
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.
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.
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.
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 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 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.
> 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'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.
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.
> 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.
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".
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.
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.
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.
> 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.
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.
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.
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.
It just means that it works well for me.
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.
"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?
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.
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).
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 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.
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 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).
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'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
Like when a major macOS update bricks your computer and requires hardware repairs? https://en.wikipedia.org/wiki/MacOS_Big_Sur#Criticism
$ 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. - Install a whole IDE, so you can...
- Install an unofficial package managar, so you can...
- Install coreutilsI 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, the IDE, is a separate download on the App Store.
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.
(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.
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.
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? ;).
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.
You can create your own macOS native workflows with Automator and launch them with macOS keyboard shortcuts. It's all built right in.
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.
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.
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.
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.
iCal is a big draw though, Linux calendars are terrible and since thunderbird choked and left xul Mailmate is attractive too.
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.
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.
And I agree. As a user and developer, I have no idea what the OP is on about
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.
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?
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.
I'm using a macbook as a dev machine, and I've genuinely never been so productive in my career.
While on macOS, I as developer, only care about Apple Frameworks and languages.
Developer != UNIX command line.
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.
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.
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'.
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.
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.
Except one of the first things I do on any Windows setup is to move the page file somewhere else or resize it.
Kind of incomprehensible to me that anyone in that mindset would be a developer.
I have literally never seen a boot loop on a Mac.
How would that even come about?
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.
not managing swap on windows means being condmned to slowness
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!
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.
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.
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.
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.
You should look into a tiling window manager. It's really liberating to stop worrying about wm behaviour.
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.
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.
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.
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.
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.
Thankfully the world of development is much more richer than that.
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)
And my dev is in the cloud (mostly).
So I will put up with Macos interop quirks with docker and so on for the great screen and ease of carrying.
it's closer to the size of a cellphone
https://www.amazon.com/Charger-Compatible-Lenovo-ThinkPad-Ad...
The differences between Linux and XNU might be less problematic, since it's a Unix derivative.
But as Wine shows, it takes a lot of work and you still get a suboptimal, buggy experience.
>NOTE Lima is not tested on ARM Mac.
what does it mean?
It had a bundle which had a NFS server or client, I don't remember. The only thing I remember is NFS functionality was a sure way to get BSODs. Every. Time.
Towards end of its lifetime, SUA was re-purposed as a toolset to migrate UNIX environments to Windows, not to enable interoperability. The toolkit discontinued a year or two later IIRC.
I'd go with either 'WS of L', 'WLS', 'LWS', or 'LS for W'.