Ask HN: Why does Apple refuse to add window snapping to macOS?

357 points by retskrad ↗ HN
It’s honesty shocking that in 2023, MacOS still has a nonexistent window managing system. Forget us on the outside. How are the tens of thousands of employees who work for Apple not sending the executive team daily feedback on this?

572 comments

[ 4.3 ms ] story [ 332 ms ] thread
I don't miss it. I carefully dragged each window to align just right one time, and never had to redo it since. It persists across reboots, and remembers placements separately for the two monitor arrangements I use (laptop, laptop + big monitor) so I only had to do the fiddly work once.
And you've just never, ever, needed to rearrange or move your windows since?
(comment deleted)
Apple users are that vanilla ;)
For me personally it's not a requirement the snappy window.. Apple is a small walled garden. They don't have wide screens so most of the time one app on the screen is enough. I have an old 27' iMac and it wasn't enough screen space for me to put xcode, terminal and browser next to each other. So the most used mode was split screen mode with xcode and a simulator. But the "split full screen" mode is much better and professional than windows' snappy window feature.
What's the difference between the apple split full screen and the windows tiling?
Windows tiling still keeps you on the overall Desktop, while the split full screen is a separate Desktop altogether with no access to the other applications (without exiting fullscreen).
A few times, I guess.

I might do it more often if I had separate OS windows for code editing. But I use VSCode (and Emacs before that) with 2 or 3 side-by-side panels. I drag those panes wider and narrower frequently.

I tend to setup separate Spaces and put related apps/windows in the same Space. So I have a general/browsing Space, and development Space, a graphics-editing Space, etc. So I don't usually need to move my windows around. Unfortunately when reboot/login restores them, it puts them all in the first Space, so I have to move them, but since I reboot a handful of times a year, it's not a huge problem.

I've defined Cmd-1, Cmd-2, etc. shortcuts to switch spaces like on Linux desktops, which is a lot faster the 3-finger swiping macOS comes with.

That's interesting. I do use Windows with 2 monitors

and I do change placements/sizes of windows constantly - accordingly to the task

I’ve been using Stage Manager on macOS for this. I have groups of apps, each one in a separate “stage” that I switch between to work on different things. Out of all the desktop paradigms I’ve tried, this one is working the best for me

I can constantly see the thumbnail groupings of apps that I can switch to along the left hand side of the screen. I’ve used other modes (like multiple desktops) but would often forget what spaces I had created, and ended up re-creating them without realising

> It persists across reboots, and remembers placements separately for the two monitor arrangements

You're lucky. I didn't even realise this is supposed to happen. Every day I start by moving everything to the correct screen and correct location. It's never remembered and each time windows move to a completely random spot. Things are even worse if I work from a different location for a bit. (Some windows are pseudo-minimised and I have to click the icon a few times to show them again)

It's not even random/occasional. I put slack on the right third of the right display every day. It's never there after sleep or cable reconnection.

This does seem like a personal preference. I quite like MacOS window management, and I hate Windows window management.
Specific to snapping, you'd prefer there was no way to snap windows at all - even if it didn't affect the current behaviour?
I've honestly never cared enough about it, I am perfectly fine with my windows haphazardly thrown around. But I can understand that some people like it and wouldn't really care if it was added. But I certainly won't be the one to request it.
Same. I have Rectangle and others installed previously and very rarely use them. Double-clicking corners to expand in that direction only is good enough for me and wish Windows would do that. My layouts intentionally overlap windows with some horizontal/vertical staggering and window managers don't have shortcuts for that.
There is snapping. It’s been there for years. All you have to do is drag a window to a side or the top.

While I’m not the person you asked, I would prefer if there was no window snapping at all. I wrote my own code for window management with keyboard shortcuts on macOS and dislike that it tries to be smart when I move windows with the mouse.

Me too, but that's also because Windows' version is ... weird. I drag a window up, a pop up appears showing grids where I can put my window (nice), I drop it there, and suddenly another window appears. That doesn't fit the "snap window" flow.

On the mac, I use a freeware thingy (Rectangle, linked elsewhere), and I've assigned three shortcuts, and that's enough for me.

You can turn the selection and forced snap of other windows off, and I do.
It's still bad though. I mean, what if you didn't like it?
Just use Rectangle app https://rectangleapp.com/
Thank you! I used to have a solution but after getting a new Mac I could never remember what it was called (a problem when an app just works and needs no interaction. You never need to know what it's called after you first install it!)
This doesn’t actually answer the question.
Still useful though!
No, but this is a question to Apple, can anyone even answer it? If they were an Apple employee, and it was upcoming in a new release they couldn't talk about it?

The best possible outcome is you get an ex-Apple engineer who may have some background as to the thought process.

I started with rectangle but now prefer moom.

https://manytricks.com/moom/

It integrates in the way I would expect the native feature to work: hover the green button for a snapping palette.

Rectangle integrates the way I expect window snapping to work: with easy and sensible keyboard shortcuts. They keys are much easier to aim than the tiny green circle on the corner.

I'm not saying moom doesn't have those, I just haven't used it and Rectangle serves my purposes perfectly well.

To each their own, of course. Just trading anectodes. :)

FWIW Moom does also support keybinds too, including for custom sizing. I have binds for left/middle/right third and left/right two-thirds.
I imagined it did. Just didn't want to assume as I never used it. :)
I use Spectacle but it’s not being maintained any more. Thanks for the suggestion.
When you install Rectangle, it has an option to mimic Spectacle’s keyboard shortcuts (if I recall correctly) which I thought was a really thoughtful touch.
There are a few apps that do this but Rectangle is the best IMO. It is also customizable via the terminal.
+1 for amethyst, it's a window tileing tool.
I've been looking for an alternative to Divvy because I've wanted more features, I'll give this a shot. Thanks!
Rectangle Pro is also totally worth it. The mouse control is super handy.
It’s probably like how their Health app sucks to use directly: they figure people will solve it with apps, and people have done that. There are competing solutions available that are all pretty good.

And now that there are so many solutions it might make less sense to then integrate one which will practically kill the rest.

I personally use an app Divvy which let me create global hot keys for specific arrangements and moved on.

I use Rectangle for this. Works like a charm. https://github.com/rxhanson/Rectangle
I use magnet^1, should I be using rectangle?

^1: https://apps.apple.com/us/app/magnet/id441258766?mt=12

I use bettertouchtool, should I be using magnet or rectangle?
I'm the developer behind Rectangle. There are a handful of features in Rectangle that aren't in Magnet, like being able to repeat shortcuts to achieve different sizes/positions, and being able to modify a lot more of the behavior of the app (there are more settings, and there are terminal commands listed on the readme of the GitHub repo). The main draw is that Rectangle is FOSS, which comes with obvious benefit.

Beyond that, Rectangle Pro (paid, closed source) is where I've put a ton more features. You can find Rectangle & Rectangle Pro at https://rectangleapp.com

Thanks - sounds totally worth checking it out!
What about that interminable animation every time you fullscreen a window or switch between fullscreen windows? It should be at least twice as fast and there's not even any way to hack it to speed it up. You just have to live with it. ("reduce motion" changes it to a crossfade but doesn't make it faster)

While we're at it, the Dock has always been bad. And the top menu bar was good for the original Macintosh with a tiny screen but it makes no sense on a 4k display with many different app windows showing simultaneously. MacOS has a lot of relics of the past that Apple refuses to give up. I just see it as a tax I have to pay to get to use Apple Silicon.

I still have to meet anybody that is not at a minimum annoyed by the macos animations.

I literally stopped using the spaces feature because of that!. The default animation got me dizzy all the time, but even with that one disabled via accessibility settings they keep a terribly slow fading animation.

It's absolutely ridiculous for a professional machine to impose these things on you.

Those animations are there to help people maintain a spacial understanding of their GUI.

Most people are not highly technical power users who get annoyed by the small delays, this is a bias I see a lot on HN.

I do agree that their accessibility options should allow for more customization of animations, though. I use ‘magnet’ for window control and it’s instant. Highly recommend. Just wish switching between desktops could be made instant too.

The Time Machine one is amazing. I go there by accident sometimes, usually when trying to work out why it isn’t working (this is a whole other issue) and it’s ludicrous.
I'm absolutely fine with them. I use Spaces all the time - mostly by hitting f3 and clicking on the screen thumbnail at the top, rather than control-arrowing or control-number.

HN has a lot of hate for these animations but I don't think I've ever seen anyone bitching about them elsewhere.

Yeah, I’ve never had issues with the animations. And, additionally, I’ve always found that the animations make a UI feel finished by making state changes more apparent.
> HN has a lot of hate for these animations but I don't think I've ever seen anyone bitching about them elsewhere.

Because MacOS (and iOS) are the only major OSes that don't let you disable them.

macOS is designed for mainstream users, not power users who want an efficient workflow with minimum distractions.

This is why I stopped complaining about macOS and just use Linux.

I’m a power user who wants minimal distractions… OSX provides that just fine, my workflow is nearly identical between OSX and Linux because it’s just a full screen terminal.
Only if you're very lucky with Linux, or your definition of distraction does not include hours spent on fixing sleep and hibernation, finding the right input method among several that keep getting deprecated, fixing pixel scaling with multiple monitors, and other fun stuff.

I still have a Linux Desktop that I boot up from time to time, but I've pretty much given up at this point. My time is more valuable than that.

I've never had a serious issue with Pop OS on both a desktop and a Thinkpad.

Linux does have some issues (GNOME has some pretty noticeable UI issues) but overall I'm much happier with it than I ever was with macOS.

> I still have a Linux Desktop that I boot up from time to time

And by that you obviously mean you haven't booted it up in the past 15 years, judging from what your complaints are.

I feel the same way. I would much prefer no animation at all, and an instant transition between spaces.

Apparently this is possible with yabai (https://github.com/koekeishiya/yabai), but it requires disabling system integrity protection which I am personally uncomfortable with.

Same here. I don't use spaces because I can't stand the animations, and they can't be turned off.
I like the menu bar, and don't mind the Dock.

Wholly agree about the space switching animation. At the very least, I'd have liked the focus to change when I start switching - not when the animation ends. This way at least I could start typing and pressing shortcuts without having to wait. Not perfect, but better.

    defaults write -g NSWindowResizeTime -float 0.01 
should fix that (disclaimer - haven’t tested this in a long time, may need to restart apps or whole os to see effect).

In general, if something about macOS annoys you and there isn’t a preference setting to fix it, googling “defaults write com.apple <thing you dislike>” will often find a solution. Writing with `defaults write` lets you alter nearly any value in the OS, very few things are hardcoded. A word of advice if you start messing around with this stuff - you will generally want to follow up any `defaults write com.apple.foo` command with `killall Foo` to force restart that component, as writing directly with the defaults utility will not be reflected in real time, unlike what you are used to with changing things in System Preferences.

(comment deleted)
Not really. Tons of these preferences are gated behind SIP, something you can't turn off if it's a work laptop.
It doesn't affect the fullscreen animation.
I wish you were right, but no. I've tried that one and a lot more besides. Go ahead and test it yourself, and let me know if you find a different one that actually works.
I tried it out and you’re right, it no longer works (it definitely worked for me several years ago). As far as I know, macOS even up to Ventura is still built on Cocoa, so the answer should still have an NS prefix. I’ll have a look and see if I can find anything.
> And the top menu bar was good for the original Macintosh with a tiny screen but it makes no sense on a 4k display with many different app windows showing simultaneously.

My display is 27" with resolution of 1280x720. I rarely use multiple windows.

Maybe it's inherently slow, because it's a "loading transition" like in video games. Takes a second for the new backing virtual desktop to be allocated, and for the window to potentially grab new assets to redraw (think: resizing iMovie window larger ⇒ larger timeline preview ⇒ re-rendering timeline thumbnails); and the animation plays on the old desktop while this is going on in the background on the new desktop, so that when the animation completes, the new desktop is "ready" for an atomic single-frame cut-over, rather than ugly pop-in happening and the app still being blocked on input.

Probably also has some constraints imposed upon it due to requiring that virtual desktops transition smoothly over Screen Sharing, where texture assets are being sent and buffered to a remote compositor.

These rationalizations don't justify it. The animation still has ugly pop-in and jerkiness despite being so slow and despite the fact that most apps can relayout and redraw their window in a tiny fraction of the time that animation takes. And screen sharing shouldn't make things slow when you're not using it.

Anyway, I'd trade a bit of pop-in for a faster computer if that was necessary. There's no excuse to not offer that choice even as a power user "defaults write" option.

> most apps can relayout and redraw their window in a tiny fraction of the time that animation takes

Re-rendering to the same compositor target buffer (when you e.g. resize a window), and allocating new textures in (potentially) new formats under control of a new compositor target buffer, are different orders-of-magnitudes of work. Think about how much delay there is from the point you plug in an external display, to the point your windows finish "popping over" onto it and it becomes usable. Allocating a new virtual desktop and moving a window to become fullscreen on it, is doing 90% of that same work.

Why does each virtual desktop have its own compositor and own target buffer? Because each virtual desktop has its own active display mode it's operating under: its own display resolution, its own bitplane format [think RGB vs BGR displays], different memory allocation constraints depending on whether it's currently being mirrored / screen-shared or not, maybe allocated in the VRAM of a different GPU if it's being drawn on a monitor plugged into a discrete GPU's HDMI/DP socket, etc.

This "distinct target buffers with their own compositors" approach is also why you can't span windows across displays on macOS 10.9+. (Before that, macOS used a different approach, that allowed for single virtual desktops that span multiple monitors, but where this would use one big target buffer, formatted to the lowest-common denominator format acceptable to all display targets. So if you plugged in a shitty external display like a 720p projector, and "extended" your desktop to it, then the whole compositor target buffer would get reformatted, and so your internal display's resolution/color depth/refresh rate would decrease.)

> Anyway, I'd trade a bit of pop-in for a faster computer if that was necessary.

My point is that this wouldn't be the trade-off. Instead, you'd switch over to the new fullscreen view, half-rendered — and then it would very likely still take just as long to finish re-rendering and accept input as if there was no animation.

You can actually try this "experience" out for yourself: try having an external display connected; opening Mission Control; and then dragging the focused virtual desktop from your internal display, over to the external display (or vice-versa.) It takes about 3 seconds before all texture assets finish re-allocating in the new compositor target buffer's texture format and re-rendering; and because there's no animation to paper over this case, it just feels unresponsive, like the whole shell has stalled for 3 seconds.

There is absolutely no reason for the common case of maximizing a regular window on the same display to switch texture formats or change resolutions or whatever else. That's silly. The compositor side of maximizing a regular window can and should be implemented in the same way that window resizing normally works, i.e. simply allocating one new screen sized texture to hold the application contents, which can be done in much less than one frame. For special cases like switching resolutions then sure, things can take longer, but that kind of thing is orders of magnitude less frequent than maximizing or switching between regular full screen windows.

If you think that Apple engineers can't optimize the compositor side work that needs to be done to maximize a regular window or switch between regular full screen windows to take less than one frame then you have a very poor opinion of their engineers that I do not share. And if you think it's not worth the effort to optimize a case that typically happens every couple of minutes while people use macOS then I have to disagree in the strongest possible terms.

• Full-screened windows are virtual desktops with special UI treatment.

• Virtual desktops each have their own compositor texture "namespace", so that everything on the virtual desktop can be reformatted to deal with the screen beginning/ending mirroring/sharing, with the desktop being moved to a display that has a different color-space, etc. The copy of textures to new ones owned by the new virtual desktop, allows the compositor to be able to assume that a given desktop exclusively owns all the textures assigned to render on it. (It's the same set of engineering trade-offs as with message-passing IPC. Here the "messages" are textures and the "processes" are virtual desktops.)

• The "optimization" you mentioned exists and I already mentioned it. It was the old behavior. Go into Settings > Desktop & Dock and uncheck "Displays have separate Spaces." Congratulations, now you're using a non-per-virtual-desktop-texture-domained compositor. Enjoy going back to a world where putting your computer to sleep with no display attached, plugging the display in, and then waking it up, makes the kernel panic! But, if you do as a sibling commentor said and turn the animation down to nothing, you will surely notice the performance increase of full-screening windows.

> simply allocating one new screen sized texture to hold the application contents, which can be done in much less than one frame

Yes, this is what the animation that plays does at the beginning of the animation, on the existing virtual desktop — it creates a new, screen-sized texture, and renders the window being "resized to fullscreen" onto it.

Meanwhile, in the background, textures are being message-passed to a new virtual desktop.

> And if you think it's not worth the effort to optimize a case that typically happens every couple of minutes while people use macOS then I have to disagree in the strongest possible terms.

I don't know why you're full-screening windows so often.

> maximizing

Oh, maybe this is your misapprehension? Full-screen ≠ maximize.

Maximizing a window in macOS is what you get by option-clicking the green caption button. macOS calls this "Zoom".

Until Yosemite, this is the one and only thing the "maximize button" on a window did; "full-screened" windows didn't exist as a separate concept. There were just Spaces, with (maybe Zoomed) windows on them.

I — and pretty much every other macOS user I know — regularly uses zoomed (or just resized to be mostly zoomed) windows, but very rarely uses full-screened windows.

For a lot of reasons, full-screen windows on macOS are really inconvenient. They hide the menu bar; they cause some apps to make a ton of their UI elements inaccessible; they make "overlay" apps (e.g. iTerm's "quick access" theme) inaccessible; they make the Dock require a double-bump to access; they make things you open from the Dock open randomly on some other virtual desktop; they make it impossible to drag-and-drop things onto the full-screened window from another window; they make it impossible to grab the window itself with the mouse to move it to another display (instead requiring you to move the virtual desktop the window occupies to the other display); they don't respect application window grouping in Mission Control, so you inevitably "lose track of" the one window you decided to fullscreen; etc. (Also, until more recent macOS versions, full-screened windows couldn't even display modal dialogs or palette windows.) Basically, they take everything that makes macOS more useful than iPadOS and toss it in the trash.

Using windows zoomed rather than full-screened, meanwhile, has none of these problems. (If you want a zoomed window on a separate display, then make a new virtual desktop, move the window there, and then zoom it. I think Magnet has a hotkey for this.)

I've been happily using yabai for years - I even wrote some custom functions in hammerspoon to send windows to new spaces, move focus, and swap windows around n/s/e/w with key-bindings. Can't imagine life without it :shrug:
Probably for the same reason they won't support no-raise-on-focus or [sloppy-]focus-follows-mouse.
They has enough with the groundbreaking announcement on wwdc of widgets in the desktop and Chrome... Sorry, "Web apps".

Maybe in 2025

OSX / MacOS has always felt frustrating that way. There isn’t appreciation for making good use of desktop space. It favours littering windows of various sizes everywhere, and the Dock has always wanted to waste two rectangles of desktop on either side.
I have been using spectacle app since a long time and I love it. It lets you define keyboard shortcuts to make it easy to size and move windows around. Here is the website https://www.spectacleapp.com/
I used to use it and it’s now not maintained. Others here have said that Rectangle duplicates a lot of the function (intentionally).
Rectangle is a drop-in replacement for Spectacle, and provides an option upon first install to select the Spectacle default keyboard shortcuts. Note that Spectacle only included keyboard shortcut window management, while Rectangle also includes the drag to screen edge snapping.
BetterSnapTool! While at it, check out BetterTouchTool as well.
Seems very similar to magnet and rectangle, are there any advantages?
I think this comes down to Apple's envisaged window management paradigm being centered around full-screen windows.

In Apple's UX view, it seems like you're meant to maximize windows to "spaces", and switch between workspaces using a few gestures (4 finger swipes mainly) to reveal all windows, and swap between workspaces that way.

Rectangle, as others have pointed out, give you the "snap" experience you would expect from other OSs.

Why then the two 'full-ish screen' systems? There's 'spaces' as you say, and also the traffic light button that makes it 'maximised' I suppose.

I just don't see why if you'd thought it out, and that's (either of them) the you wanted people to do it, why you'd have both options.

And then there's the weird 'close actually closes the window, not the app' (even though for some large percentage of apps the one window is all there ever would be).

Those are intended as shortcuts for creative apps where you typically need the entire screen real estate. There was precedent for that going back to pre-X macOS, but spaces and full screen windows are a consistent approach at switching contexts in creative apps.
The reality is that they had the green maximize buttons originally (although the exact functionality has changed a bit), then tacked on the full screen experience later. It’s not the result of some unified vision, although in practice is works fine IMO.
The green button was originally “zoom” which, to Apple, meant “adjust this window to its content, or revert to the previous size.” Some apps implemented zoom as maximize, but that was not The Apple Way®.

Their full-screen-window-gets-its-own-desktop-space was added later.

This is such a weird ahistorical view.

Overlapping and freely resizable windows is the Mac paradigm. In my estimation they don’t add snapping mostly due to pride.

Maximized windows is an intruder. Something that was big on Windows but never really a thing (and just not possible at all) on the Mac at all until a couple of years ago. The implementation of fullscreen mode is clunky and slow.

Given that Apple has been throwing different window management paradigms at the Mac (Exposé later retitled Mission Control which was the original new OS X approach, Spaces in different implementations, sticky windows resizing, Stage Manager, full screen mode, full screen mode with split view) it is truly weird that this grab bag does not include snapping windows. And, I still think that is just down to hurt pride and ego.

lol you couldn't be more wrong. Back in the classic Mac days, Apple was so anti-full-screen-environment that most apps had floating toolbars and the document windows were minimal and freestanding. (ircle and office:mac 2000 or older would be my first examples, but I believe photoshop worked the same).

MS did it because.. I think Windows used to only support 1 window per program or something. That's why old versions of Office basically go full screen and each document you open is another 'child window' of the main office window. Same was true for stuff like America Online lol.

And then in 2010 they came out with macOS 10 and went back on all that.
MacOS X was still pretty hardcore about not doing fullscreen, for quite a while. The green button used to make the window 'full size' but that often meant like, as big as a 8x11 document in word would be, not full screen.

That pissed off a lot of users who expected MacOS to act like Windows. So Apple changed it.

Then along came the iPad and Apple went full hog on "1 task at a time" UIs. So full hog that Microsoft had to backstep and do the same with Windows 8 lol.

I don't know what Apple is doing anymore lol.

I have a huge screen and a mouse and keyboard. Full screen apps make absolutely no sense for me, and there's no way for me to "4 finger swipe".
Not quite answering your question directly, but I think it's important for platform owners to leave gaps for the developer ecosystem. This may be one that they have purposely left to the app market.

If Apple and Microsoft provided a solution to every UX variant people want, there wouldn't be a market for apps built on top of the platform for UX tools. The further they encroach on the various markets the more developers will be discouraged from entering those markets for fear of the platform making their app redundant.

Apple and Microsoft have to draw a line somewhere, sometimes they get it wrong though and piss off a load of devs.

There are however obvious counter arguments to this with platform default apps such as email. But again it's important for the "average user" to have those in any new device. The platform effectively needs to do roughly 90% of what the average user wants out of the box, but then encourage users to go purchase further solutions from the various markets. Window snapping probably sits in That second area.

There's no way I believe this is the real reason. The whole history of MS/apple/facebook and successful businesses in general is allowing others to experiment to create add-ons / apps then creating your own integrated version to capture the value. i.e. let them pay the cost of experiementation and then copy it. See MS office, MS internet explorer, MS games, MS teams, Apple sherlock/watson, Facebook UI,......
I don't think leaving gaps for third-party developers at the system level is really necessary, however, in order to not inundate users with configuration options, platform choose their level of user choice and configuration. There is some room for third-party developers, but when more is done by the system, users have to do less to get features and performance without opening up risk vectors. In some environments, you wouldn't even be able to install third-party software.

I definitely think that window snapping, and other general abstract platform-level controls, should be in your first group.

I honestly think it provides perverse incentives, especially in the Apple ecosystem, for Apple to leave their platforms barebones and apps simple. Instead of pushing their platforms and apps to provide the absolute best experience, they can spend less money on R&D and rely on third-party software, while in many cases taking a 30% cut. They've effectively outsourced and crowdsourced the R&D, while leaving the option to sherlock any feature they choose to after it's been proven successful.
I assume because there are several great tools for handling this so it’s not really a priority.

If and when they do add one we can look forward to the many articles about “sherlocking” though so that’ll be fun.

I think Stage Manager shows their hand—that they think users should manage this with the mouse, with no window-snapping.

All this said, I would like to see the full-screen mode get support for three windows, along with a way to stack vertically. There are times when you need more than two windows on a screen.

I also think it’s as simple (and stupid) as Apple wanting to continue to use rounded corners and window-snapping not really making rounded corners look particularly elegant.

ever since lion began the ipadification of macos, apple's Happy Path™ has been native full screen (even though it's an objective downgrade from the scuffed fullscreen mac apps of yore, since you have to sit through a swipe animation every time you cmd-tab)

you can split this; you just have to hold down the fullscreen button, no right-click access because again, thoughtless application of touchscreen idioms

as someone who uses none of the above: lining things up is painless since window bounds are slightly sticky, & macos remembers app state so it's not like you're doing manual window management every time you start up $APP. broadly equivalent in practice to a tiling wm with elaborate preset layouts & pigeonholes for specific programs. except you just drag things instead of editing a config file. couple this with all the apps i frequently use in full screen (iterm, mpv) having options for pre-lion-style instant-switch fullscreen, and i'm not hurting for lack of snapping... ever, really.

fwiw there are third-party solutions for snapping if you really care, and there are even full-blown x11-style tilers

There's a way to snap the window to one side or the other if you long press one of the resize buttons at the top. I'm a HS teacher and I often have my kids put two windows side by side. On the school-issued devices it's trivially simple, but it's honestly not that bad on a Mac. Just really unintuitive like everything else they do.
My go to example to explain the One True Mac Way of Window management is the “The many windows of John Siracusa” podcast from ATP a few years ago.

The relevant discussion starts at 1:33:00

https://atp.fm/episodes/96

Siracusa, who grew up as a (classic) Mac user, explains his tiling and overlapping habits to Arment and Liss, who grew up as Microsoft Windows users and later switched, and they gasp in utter horror, shock and awe.

For example Siracusa explains that he currently has a dozen terminal windows open, and also 19 overlapping Safari windows, normal for him, in BBEdit he regularly hits 20-40; they ask him if he doesn’t know about tabs and he replies “Oh, I love tabs! Of course every Window has many tabs!”. How would he manage/organize hundreds of tabs in multiple applications with a snapping tiling manager? He can’t. It is fun from there. Like, he jokes after a work week his desktop has “sedimentary layers”.

The extinction of OS 7 (platinum) roll-up windows is something many people miss.
Yup. For me it’s like a bookmark + a reminder.
I have 14 terminal and 25 browser windows open (>5000 tabs among all of them — a slightly embarrassing number). :D

Edit: only 1 13' monitor too

Is this why people complain about performance issues with browsers?

I have some perpetual habit to "clean" my desktop - I get annoyed if I have >15 tabs across 2 windows which easily happens.

> >5000 tabs among all of them

Not to be antagonistic but ... just why? There is no chance you are actively managing and keeping track of these? Is this because it doesnt matter if they are open or not? I am genuinely baffled and confused.

People use them as bookmarks.
As a fellow multi-thousand tabber, I can explain what happens with me. So you're browsing, say, Reddit (maybe last month). You see something interesting. Two tabs: One for the content, one for the comments. You read the content and come across something you want to comment about or see if others are talking about. So you switch to the comments. Oh, somebody linked to something else. Another tab. And then you go down that rabbit hole and back to your original Reddit tab. Repeat.

Then you start to work on a project. You have various relevant links open for that, which of course results in opening even more tabs that branch off from those. But then you get distracted and there's another group of Reddit or HN tabs. Oops, right, I was working on that project. A few more project tabs. Then a bunch of Reddit / HN tabs. Then you start a new side project. Etc.

Why not close those comment tabs? Because you're interested and want to see all the new comments! Or you got halfway through and walked away and opened a new tab when you got back. Or you think 'that'll sure come in handy when it's time to work on <some project>, I'll come back to this later for sure!'.

Now, rather than doing the sensible thing and going through all of the previously opened tabs when you're bored, you open a new Reddit / HN window.

(Possibly an attention disorder.)

Windows users who just maximize everything all the time and get giant empty white bars on the sides of their browser shock me. What an insane waste of space. You see windows users with Ultrawides and a maximized browser where the site is centered and 90% of the width of the screen is serving nothing but site border and it just makes me scream.

macOS replacing the “Zoom” stoplight buttons with “Full Screen” as the default behavior still irks me. Why would I ever want something full screen other than a video or game?

In the 2000s there was a huge push for distraction free software. Nearly every application was coming up with a distraction free mode.

Maximizing your window is similar to that. At the same time it doesn’t completely eliminate the window context and the ability to easily switch between applications like full screen does.

What kills me about it is I can't find a way to keep my other monitors from blacking out. I usually have at least two screens, I would love to dedicate one completely to code while leaving the other in normal mode for documentation, references, etc.
If I understand correctly, there's an option for that in system settings, 'Displays have separate spaces'
it's not about maximizing the window you're interested in, but ALSO "minimizing" (hiding) what you are not focused on at that moment.
I recently started using MacOS and fell into this habit as well - I just end up leaving windows open floating underneath other apps. I learned about cmd+` which is handy to deal with multiple windows of the same app.

In Windows I tend to minimize stuff I'm not actively working on (but not always). In general while I also have a lot of "background" windows it feels a lot less fiddly than MacOS.

Personally I don't like how "minimizing" apps on MacOS puts them in the temporary section of the launcher, I'd rather they minimize back down to where the icon of the app normally lives. I would end up with a bunch of black squares on the launcher in some random order with a tiny icon of each telling me which app this actually is.

There's an option for that in system settings, 'Minimise windows into application icon'
The best episode of my favorite podcast ever.
I think with macOS’s design of the dock (resizable, unlike on Windows where the task bar always takes up the whole monitor width,) having one or more windows “full screen” on your desktop feels wrong. There is always some some space left unoccupied to the side of the dock.

Apple has a solution for this which is the green dot that puts your app in a separate space to be truly full screen, and you can split screen between two apps. I guess that’s what Apple would like you to do instead of snapping.

If you hide the dock it works fine to fill the screen without hitting the "full screen" button, unless there is some control at the absolute bottom of the window that you regularly need to access. Putting the dock on the side has always been an option; I've had it autohiding on the right since not long after trying 10.0.
Hold down the option key. Hover your mouse pointer over the green zoom button in the top-left corner of the window. A "move window to the left/right side of the screen" option appears.
Possibly patents. As an example that may or may not be relevant, Google surfaced https://patents.google.com/patent/US10592080B2/en for me. It’s from “Microsoft Technology Licensing LLC” and says

“This document describes techniques and apparatuses enabling assisted presentation of application windows in a multi-application environment. The multi-application environment described herein presents one or more application windows, which can be sized, positioned, or layered to provide an optimized layout. In some embodiments, these techniques and apparatuses enable a size or position of an application window to be determined based on an edge of another application window.”

Like everything Apple, it has an opinion. You either like the opinion or you don't... I feel that MacOS's UI paradigm revolves around extra large monitors and showing your screen as a sort of desk. A lot of wasted/empty space where you arrange things freely, as opposed to Windows/Linux which emphasize efficiency in using the screen real estate.

I use MacOS daily at work but I would LOVE if I could use Windows instead, that's what I have on my personal machine. It looks like the OP simply wants to use Microsoft and can't admit it to themselves!