Baby steps in the Mac OS X UI
Some conceptually simple changes to “fix” the Mac OS X document-handling UI paradigms:
Remove the code in Finder which currently deals with “Stationery Pad” files.
Update Finder such that, when dragging a Stationery Pad item between folders, the default action is Copy rather than Move, in much the same manner as dragging an item from a locked folder. Holding down the Option key would override this.
Wherever file icons are displayed, Stationery Pad items should be obviously overlaid with something to indicate that’s what they are.
Update application frameworks such that opening a Stationery Pad item is actually equivalent to creating a new document, pre-populated with the Stationery Pad contents. For user-interaction purposes, the document is “new” (thus, unsaved).
All documents will have proxy icons from the outset (currently if you create a new document in say, TextEdit, it will not have a proxy icon until the item is initially saved).
Dragging a proxy icon to a folder becomes the canonical “Save As…” action. Currently, when a folder is the target of a proxy icon drag, Cocoa defaults to creating an alias to the source item.
Opening a document is primarily accomplished either by: (a) double-clicking on the icon in the folder, launching the default application (with variants for using the context menu and “Open with”), or (b) dragging and dropping the icon from the folder onto the running application or docked icon. (It’s worth noting that lots of people use Mac OS X this way currently, but I’ve included it here so that the workflow is apparent).
Save should happen quietly, automatically, and in the background. This is the hardest part, with respect to the expected state of the file on disk. Automatic saves with (effectively) unlimited undo is a very straightforward concept for new users to grasp, but existing users would have trouble with it. Perhaps there’s room for a “checkpoint” mechanism using a separate fork for “draft” versions? Maybe that’s the key - separating the act of “saving for safety” from the concept of draft/final versions. “Enable draft versions for this document”?
Thus, “open” is accomplished by dragging items from folders into applications.
“Save as” is accomplished by dragging items from applications into folders.
“Save” is automatic and silent.
“New” is accomplished by opening a Stationery Pad item (either by dragging and dropping into a folder, then opening as normal, or by dragging and dropping into an application, or by double-clicking).
I don’t think File Selector sheets will go anywhere in the immediate future, but their use could at least stand to be made completely optional without a massive amount of difficulty.
I should note that I’m by no means the first person to come up with any of this stuff. This is all inspired by recent discussions with people who are smarter than me, and UI designs from years ago created by people are are far more experienced in such things than me.
Updates: It’s been pointed out that it’s Cocoa, not Finder, that creates aliases when dragging proxy icons. Also, because NSDocument is “fundamentally path-based and therefore broken”, some of the stuff above could be somewhat difficult.
== Further reading elsewhere ==