Lion Is a Quitter
tidbits.com
tidbits.com
First of all, he dismisses the performance benefits, but frankly why am I even running the application if it's unused and in swap? Expunging it from memory with application-level semantics is a potential win because it can theoretically prevent you from ever hitting swap even after using hundreds of apps over the course of weeks or months. If you have an app with bad memory management this could be more than a trivial win.
As to the UX question, Apple is trying to push the envelope and say there is a better way to interact with a computer. Much like the auto-save stuff, Apple is re-examining quarter-century-old paradigms that geeks take for granted, but are perhaps not necessary in today's world of computers that are thousands of times more powerful. Now it may be that this they are overstepping and this is creating real usability problems, but it seems more likely to me that a good portion of computer geeks are simply uncomfortable with any change to assumptions they've had for the majority of their lifetime in computing.
There's no reason not to leave an entry in the Dock so as to maintain the user's expectations, while still recouping background resources as needed.
http://hints.macworld.com/article.php?story=2007101815375480
It toggles your dock between 3D and 2D. The 3D setting still has the dots, but they're very hard to see. So I was wrong about them disappearing entirely, but that's the change I was referring to.
If you still have the 2D look in Lion perhaps you ran this command previously under Leopard? I did, and the setting survived my upgrade to Lion, so I still have the 2D enabled.
Rather that they seem to be heading in a direction where they want the user to not be concerned with whether a particular app is running or not- just click on it, and it will pop up in the state you last left it, whether it was actually running or not. Just like (many apps) on iOS.
In general I appreciate Lion's approach to quitting/restoring things, but they have messed up the associated Dock and Alt-Tab behaviour. I wouldn't be surprised to see this fixed in an update.
The transition period will be rocky and the UI in OS X is currently still very much optimized for the old model but I think Apple is walking in the right direction.
If all apps auto save and restore their state only very few apps actually need to run in the background: mail clients, music players, RSS readers, …
The dock could then show all apps with open windows (including hidden or minimized open windows) and Cmd-Tab could show recently used apps (including apps that are not running).
For this to work seamlessly all apps need to be able to auto save and restore state and all apps need to be sane about whether or not they need to run in the background. That’s certainly a daunting task and it’s understandable why Apple can’t (and won’t?) jump right to that.
She used to be a typist and a stenographer, so you're probably right about the forming habits key.
Other than saving some disk space, how is hitting swap to page an unused app back in significantly different from loading the app from memory again?
Granted, you can always fall back on the argument that if developers support the APIs correctly, this isn't an issue, but that is putting a lot more trust in developers than is warranted based on historical evidence.
IME the Xbox 360/Xbox Live method of just building features into the system always wins out vs the PS3/PSN method of expecting developers to support the available APIs and do the right thing. In that context, I think just allowing virtual memory to do what it has always done is the better way to go.
Several times now, I've accidentally Cmd+Q'd Chrome because I didn't realize that TextEdit or Preview was no longer the application in focus.
This happens mostly if I just closed the last of the application windows, and accidentally expose'd the windows back and forth. If you "Show Desktop" and then bring the windows back, TextEdit and Preview will now be closed.
I don't think I like it, but it might just be a matter of retraining myself.
Don't add some non-deterministic 'feature' that messes up my model of where my apps are. If you must quit an app to recover resources, do it whilst pretending that the app is still running, because that's my model.
Perhaps, in regularly cmd-tabbing to running but documentless applications, I am some kind of uber edge (head) case, but I suspect not.
As a user, I don't know when the app will go away.
Perhaps if you really think about it, it's deterministic, but it's 'casually non-deterministic'.
So yes, I'll admit to abusing the term in its pure sense.
Screenshot of how to enable it: http://jhn.me/9BDE
What I really wonder, though, is why leave it running at all if you're just going to kill it later? Seems to me they should have just changed the model to quit the application when the last window is closed, unless the application tells the OS not to.
MacWrite, being a marvel of tight engineering, manages to handle documents of a whopping two to three pages in the 40 kB or so of RAM available to it. So, if you want to write a huge document of say four pages, you have to split it into smaller parts.
If MacWrite quit when you closed its only window, moving from part 1 to part 2 of your document would take over a minute. That is why document-based Mac applications do not quit when you close the last document.
Back in 2011, many people will expect that command-W, command-N will close the current document, then create a blank new one. If Mac OS X Lion quit applications as soon as the user closed the last window, that would no longer work. That, I guess, is the reason that the OS waits for a while before doing that.
Is that a good idea? I think quitting apps is a good idea, as long as the OS manages to completely hide it from the user. Apparently, the current behavior isn't good enough, as it annoys some people a lot. On the other hand, it may just be a matter of getting used to the change.
But it's clear from Lion that Apple doesn't really care what you're used to. We've had scrolling mice for about as long as we've had OS X, yet they chose to reverse it's function in Lion because, after entering the age of touch-screen devices, they realized the old model was wrong.
I just think it's a little odd for them to implement a half-way solution like this.
I do look forward to a better solution, though. The days of the "Quit" menu item are numbered. Longer term, I think we should get rid of File-Open, too, bring back Lisa-like Stationary documents, and remove File-New.
Launching small apps like TextEdit didn't really become "effortless" until the Intel era, which really didn't start that long ago.
Here's a very specific use case that comes up all the time (for me, but I think it's more general too) where this model is superior: I have a folder-ful of files that I need to go through one-by-one. In my case it's usually assignments my students have handed in. What I want to do is open the first one, then Cmd-W Cmd-O and look at the next one, and so on. What I have to do if I'm unlucky enough to be on a windows machine is open the first one, look at it, open the second, click or Ctrl-Tab to the first, close it, and then look at the second. This is excruciating. Alternatively, I could keep one dummy file (or perhaps just the first one) open while I sequence through the rest. This is also annoying.
This is roughly the same reason (or one of them, anyway) that I also like the screen-wide menubar: at least some actions are relevant to the program, not to the document, and there's no reason that I should need a document open to execute those actions.
But for single-document applications, what I do (on Windows, running Cygwin), is roughly this:
for f in *.your-file-ext; do cygstart --wait "$f"; done
That'll iterate through each of the files in sequence, opening them up in the application registered for that file type, and wait until the application is closed for each file.
If some action is required, I might stick a 'read' in to that ad-hoc script.
(Disclaimer: I contributed the --wait flag to cygstart for just this kind of task.)
You could have a 2nd app like a spreadsheet for "scoring"... in fact this is what I did when I'm reviewed resumes for new hires.
The only loss is that you can't tab between applications without paying attention, but I suspect that many users don't do this anyway.
If the openness of an application should be obsolete, then the user shouldn't be able to tell without explicitly poking through 'ps'
If the user expects to to find an app in the dock, and it's not there, then the user does care if the application is open.
A feature like this doesn't matter as much on an iOS device because of the way applications are launched & managed. Applications are launched and managed differently on the desktop though...
http://developer.apple.com/library/mac/#documentation/Genera...
Only applications that support auto-save AND set NSSupportsAutomaticTermination to YES do quit when there are no open windows.
Since most apps don't implement "close when the last window closes" Apple is simply trying to do some smart checking for the sake of these users.
If the argument is really "today's computers have enough resources", then apps should maybe never close, not do a Heisenclose in the background.
1. Application without a process: if an application has one or more open documents but no documents visible on screen, the app may terminate itself when resources are low. The applications still appears to be alive in the dock and command+tab menu, but its process has been terminated and is no longer consuming resources. When you command+tab back to the application it restarts itself and restores its previous state.
2. Process without an application: if an application has no open documents it will appear to quit automatically and is removed from the Dock and command+tab menu. In actuality, it remains running in the background ready to spring into action again.
The question is, why support behavior #2 at all?
Behavior #1 covers the automatic resource management and I think it works well (and unlike iOS, Mac applications can opt-out of this behavior). Behavior #2 seems to be aimed at Windows users who have no concept of "Quit", but it only aggravates long-time Mac users with zero actual benefit with respect to resource management. It has nothing to do with iOS and everything to do with grandma Windows users who just bought their first MacBook.
Mail. File Transfers. Staying available for chat. Rendering process that can run headless. (Handbrake, I think, plus others.)
If an application needs to do work in the background then it is not subject to automatic termination by either behavior #1 or behavior #2 and simply remains running.
http://developer.apple.com/library/mac/#documentation/Cocoa/...
If you make no changes to your application, then the OS won't touch it. And if you do decide to support sudden termination, then hopefully you would call disableSuddenTermination before starting any background file transfers, renderings, etc.
However, the user should have some control over what to show in mission control and elsewhere -- namely the k most recently accessed applications (whether or not they are running).
One thing that I really like is FileVault 2. I have a lot of sensitive data for several clients on my laptop (SSH keys set up for their servers, AWS credentials, proprietary materials, etc.) and I used to go through a tortuous process of having encrypted file volumes that I had symbolic links to files on the volumes. I wasted a good 3 or 4 minutes a day with this. I set up FileVault 2 and encrypted all of the external disks that I rotate for TimeMachine backups (I tend to use one for a few days, switch to another, keep rotating), and now I just keep everything on my permanent disk partition. One hassle: I lost my time Machine "history" because the conversion process to encrypted external disks requires a reformat; I thought that it was worth it.
As to auto-save, get over it. I never want to lose another hour of work because I haven't saved and a damn app crashes or hangs. The model that Google Docs uses works for me. It auto-saves periodically (the saved state is visible at all times) and the user can save more often if desired. But it would be fine with me if Lion somehow managed to save continuously (and performantly) and take Save out of my vocabulary.
I don't find Apple's perspective objectionable in principle, though I do prefer Microsoft's approach. Most novice users will generally prefer Apple's; whether that's the case in this specific instance is an open question, however. I'll bet most users don't even have a clear mental model of a document editing application distinct from the documents it's editing.
Before upgrading to Lion I kept everything closed but my active windows. But I decided to turn off the dock indicators as an experiment and I have to say, my experience has improved drastically. I don't close things anymore, and I don't worry anymore. For example, opening iTunes, which I do about daily, is no longer a ten-second wait, which is actually kind of soothing.
Most people assume it does that any way.
This is something that I think MS does more intuitively than Apple.
Spaces: Gone If you have a lot of different windows up at the same time, its impossible to use. Its impossible to scatter the windows and find the window you're actually looking for.
Other than these small shifts: I'm all good with the new OS. As I'm not a power-user I can't see any fault in a 3sec load time instead of 1-2sec.
If I remembering correctly you can choose to make available an autokill flag for the system. From (my) memory you can control it programmatically... so if you say "no windows open and been alive for 10 minutes with no state change" then kill me.
No opening, no saving, no closing. Just instant switching.
So Apple supports now onSaveInstanceState() / onRestoreInstance() for desktops?
I can quit it, it saves everything, including my temporary copy/paste buffer, -no questions asked, - and restores everything when I reopen it. Also search is improved and a whole lot more keyboard-friendly. (I'm using a couple of years old MBP, but with SSD.)