I thought about posting this thread while dragging a window around macOS funnily enough. It seems that it makes intelligent guesses on whether you are trying to place windows near each other and ‘snaps’ them into place if it thinks you are - it’s ever so subtle - so subtle that it’s barely noticeable, making it feel very natural (thus, perhaps more importantly, also making it void of any frustration which might be the case were it was poorly implemented).
So that got me thinking - what is it about each OS that makes it unique, or, in your view, what makes it worth using over the others?
In nixOS my USPs are its reproducability and its “integrated toolchain manager”.
Backing up and restoring /etc/nixos is enough to re-install all system relevant software, while backing up and restoring ~/.config/nixpkgs is enough to install user related programs and their configuration.
In each project I can have a shell.nix or a default.nix which describes the development environment. Usually one loads this environment manually, though tools around that have been developed which make me able to enter the environment on dir change. as well as aggressive caching of those environments.
Would you recommend nixOS for development? I will have to make a decision in the next 2-4 weeks about a Linux development environment and I kind of forgot about nixOS.
For macOS my USPs are definitely the [alleged] high security of the system. Apple has gone out of their way – and often broke a lot of programs and scripts which isn’t nice of them – to make sure some plain virus, ransomware or rootkit won’t have an easy time taking over your machine. I do however have to say that the performance of programs under macOS has been mediocre. Linux reigns absolutely supreme here and stomps macOS like there’s no contest. Still, I like macOS’ beauty and opinionated approach in general and I feel that it’s suitable for a lot of people. But I do start to question if it’s a good fit for professionals at all…
For Linux my USPs are, obviously, extreme customisability (although that’s not always a good thing; I am more in the camp of people that want a good minimal working system out of the box and not an installer with 50 steps and checkboxes) and the raw speed. But Linux seems to have long way to go in terms of isolation (to this day, any X11 program can read and record keystrokes, and Wayland is sadly not that useable for everyday usage, I hear).
For Windows 10: ubiquity. A lot of Linux fans love to trash it but its backwards compatibility and stability (ever since Win7 which is a lot of years already) should give them pause and hopefully make them strive for a better ecosystem. I know it’s not Linux’s fault for many OEMs who never make drivers for it – or that games must use emulation / pass-through layers – but if Linux wants wider adoption it will have to climb 3 mountains, not 1.
Especially with WSL2, Win10 is now a very solid contender for a workstation + gaming OS and I imagine a lot of people might forgo their macOS laptops for work and just move to their Win10 PC for that.
I wouldn’t consider it if I had to learn it from scratch. Though using a random Linux or Mac with nix as auxiliary package manager for the shells, with regular installed toolchains as escape hatches is what I’ve done first to learn how to deal with nix peculiarities.
As already mentioned, I like how Apple are taking security seriously - now you need to give apps permission if they want to access files in certain locations, for instance.
I also like their recent addition of improving battery health through automatic management (no need to discharge the battery manually yourself every month):
How battery health management helps
The battery health management feature in macOS 10.15.5 is designed to improve your battery’s lifespan by reducing the rate at which it ages chemically. The feature does this by monitoring your battery’s temperature history and charging patterns.
Based on the measurements it collects, battery health management may reduce your battery’s maximum charge when in this mode. This happens as needed to ensure that your battery charges to a level that’s optimised for your usage – reducing wear on the battery and slowing its chemical ageing.
While battery health management benefits your battery’s long-term lifespan, it can also reduce the amount of time your Mac runs on one battery charge when capacity limits are applied. If your priority is making your Mac notebook last as long as possible before recharging, you can turn the feature off.
When battery health management is turned on, your battery’s maximum charging capacity might be limited. Although the feature is designed to improve your battery’s lifespan, the limited maximum capacity might update your battery status menu to indicate a need for service.
I will keeping adding to this thread as and when I think of cool macOS features
Ah mac has that feature? Been in linux as far as I can remember as well. From ‘snapping’ to other window edges or dragging to left/right side and taking up half the screen on that side, or moving to a corner and it takes up a quarter of the screen, or moving up to maximize, or down to minimize. But yeah I’m addicted to window snapping, it drives me utter crazy that I can’t easily line up windows in Windows10 at work, I spend way too much time manually aligning things there… >.<
NixOS is fantastic for enforcing complete reproducibility of builds, it’s really nice for that. I need to really learn it in depth sometime. ^.^;
Eh, Win10 has removed some API’s that were relied on with some things at work, so backwards compat is definitely not there, and we still get BSOD’s on random machines all over the place, in some cases very routinely…
And yeah, security on linux has always been nice, though newer things like snap/flatpak’s that sandbox even more is fascinating to see!
I don’t know what it works like on Linux or Windows, but I was trying to emphasise how it works on macOS - in that it is implemented incredibly well. What I mean by this is that it is not overly aggressive, or continually assuming the user wants to (or doesn’t want) the snap to kick in. This is in contrast to many programs where you often turn off snapping because they are just so annoying
I guess you’d need to experience it for yourself to get an idea of what I mean and I think the overall point I was making is not having certain features, but in their implementation - Apple seems to care about the little details which is what gives it’s OS many of it’s USPs
Yeah it’s seemless on linux (at least KDE5 and earlier, a many-decade feature) and easy to disable by holding a modifier key should you so need. I use them extensively, just habit to toss my terminal to the right and my IDE to the left when I’m going to be performing some tests for example. And moving windows around, as stated, I’m addicted to it’s snapping to borders, lol. All of it is configureable of course as is par for KDE5, but I use defaults for those as they are very very well tuned after 20+ years.