It's been around since Lion. If you leave certain applications open with no windows, the app will quit, for example, TextEdit and Preview. If you want to try it, open Preview and then open a PDF (it only works if you open a PDF first). Then close the PDF. Then switch to a different application. Preview will automatically terminate. It tries to anticipate what you're doing. That's why I suppose it doesn't automatically terminate if you don't first open and close a PDF.
You can read about it in the developer guidelines. Slightly OT, I've read a number of developer guidelines (even though I'm not a developer) and each time an OS comes out they basically read like an explanation of why it was OK for Apple to do what it did. They've always reminded me of how president's pre-emptively have lawyers write out legal briefs explaining how some controversial thing the president is going to do is legal.
Automatic and Sudden Termination of Apps Improve the User Experience
In OS X v10.7 and later, the use of the Quit command to terminate an app is diminished in favor of more user-centric techniques. Specifically, Cocoa supports two techniques that make the termination of an app transparent and fast:
Automatic termination eliminates the need for users to quit an app. Instead, the system manages app termination transparently behind the scenes, terminating apps that are not in use to reclaim needed resources such as memory.
Sudden termination allows the system to kill an apps process immediately without waiting for it to perform any final actions. The system uses this technique to improve the speed of operations such as logging out of, restarting, or shutting down the computer.
Automatic termination and sudden termination are independent techniques, although both are designed to improve the user experience of app termination. Although Apple recommends that apps support both, an app can support one technique and not the other. Apps that support both techniques can be terminated by the system without the app being involved at all. On the other hand, if an app supports sudden termination but not automatic termination, then it must be sent a Quit event, which it needs to process without displaying any user interface dialogs.
Automatic termination transfers the job of managing processes from the user to the system, which is better equipped to handle the job. Users do not need to manage processes manually anyway. All they really need is to run apps and have those apps available when they need them. Automatic termination makes that possible while ensuring that system performance is not adversely affected.
Apps must opt in to both automatic termination and sudden termination and implement appropriate support for them. In both cases, the app must ensure that any user data is saved well before termination can happen. And because the user does not quit an autoterminable app, such an app should also save the state of its user interface using the built-in Cocoa support. Saving and restoring the interface state provides the user with a sense of continuity between app launches.
For information on how to support for automatic termination in your app, see
Automatic Termination. For information on how to support sudden termination, see
Sudden Termination.