Going forward, advanced sandboxing is indeed one of the most important things that I would love to see Apple focus on. Ever since I first considered the possibility that apps can have individual access controls, probably around the time I first encountered SELinux/RSBAC and later AppArmor, I've been wondering why vendors aren't pushing this as an absolute top priority on the security front.
Meanwhile I'm using this:
https://beta.f-secure.com/key/XFence
It's Jonathan Zdziarski's Little Flocker rebranded after he sold it to F-Secure. It works great, but it does admittedly require an upfront investment.
2 caveats:
- Current version only works on Sierra (I'm not touching High Sierra until just before the next one comes out)
- Creating "any via" rules can lead to noticeable slowdowns, while "ancestor" rules, even though they are theoretically more expensive, don't (unless one overuses them, I suppose). It's probably a bug.
Other than this, I've been using it for over a year and have no complaints whatsoever.
I think OSX's UX problems are mainly in the first category - Apple just doesn't care. Windows introduced snapping in Windows 7, nearly ten years ago. It is extremely useful and seems pretty easy to implement. As you say, you can always get a third-party application like the (fantastic) BetterTouchTool. But you shouldn't have to do that for something so fundamental. The very least Apple could be bothered to do is keep up.
It has multiple desktop spaces, fullscreen mode, and "expose". It used to be that clicking the green dot on a window expanded it in developer-defined ways that were often unpredictable, but that got replaced with fullscreen mode.
With window snapping, I can use keyboard shortcuts to quickly position each window and have all 3 windows be fully visible in their own distinct space, without having to remove my hands from the keyboard.
If window snapping 'doesn't provide any benefit', then there must be some alternate method that achieves what I've described above. What is this alternate method?
I'm also hoping Fuchsia will save us.
Time will tell.
Edit: looking up in dictionay, it's actually /fjuːʃə/.
Meanwhile, user-controllable per-process (or per-app) sandboxing would provide tangible benefit to all of us. This means, easy controls for accessing filesystem, network, cpu, gpu, memory, peripherals, and other processes.
Most of these controls exist, but in ways that don't map well to the desktop environment. How do I see what that adobe agent is doing? Sure, I can buy Little Snitch, but this should really be built into the OS. Too much of the UNIX model is designed to secure a user's information from other users, which simply isn't a massive concern these days when we often have dedicated workstations and have issues trusting the processes we run as our own user. What if I suspect my TODO list has a built-in bitcoin miner? I should be able to limit its use of the CPU and GPU.
Meanwhile, my editor still needs to read the configs of all my sandboxed apps, and whatever else I want it to access. This isn't necessarily an easy problem, but it's one I have confidence Apple could tackle, especially with mobile paving the way already.
All this time, docker has been innovating on the sandboxing, with mostly positive results. Android, I believe, runs each process as its own user, leveraging the existing UNIX controls better. I'm not sure what precisely iOS does, but it's locked down well enough to cause me immense frustration building stuff for my phone--not exactly what I'd like to see on the desktop, but they clearly have the ability to provide many of the controls I am looking for on the desktop.
I'm sure this would result in an improved UX as a result, TBH.
If not, Google is coming down the road with Fuschia.