That instead of picking up the tools of the trade before sitting down to work, you first decide what it is that you are going to create.

A paradigm of user intefarce design where applications become tools that are applied to documents rather than being production lines through which a document passes. You'd start with a basic document type that the operating system would know how to deal with and be coded to create, for example, an image, a sound, a text document, etc. Of course, this would be extensible, and new document types could be added as app venders see fit. Say you had chosen to create an image. You would then decide which tools to use. Applications would exist as palettes of tools, and menus of actions that could be called by the document handling code of the OS.

When you bought Photoshop, its facilities would be registered when it is installed, and would then be available alongside those of Painter or whatever, meaning that you would no longer have to swap a file between applications, or be continuously copying and pasting. Simpler applications would gain far more functionality, and traditional deficiencies could be supported, allowing developers to concentrate on what they know best. I mean, no one expects a spell checker in Photoshop, nor a greyscale command in WordPerfect. Such things would be unnecessary bloat. But I'm sure there has been the occasional situation for everyone where such a convenience would have saved a moment's work.

This idea is already being brought about to a certain extent. Microsoft's .NET is based around this idea, and the services menu in NeXTStep is too a limited implementation. However, for this way of doing things to be successful, it requires an enormous cooperation between app vendors, some of whom are sworn mortal enemies. A conversation with someone familiar with .NET lead them to disbelief at the idea of Microsoft letting another app vendor use its spell checker or equation editor. It shouldn't be seen like this. You'd still be selling your product. Such cooperation is needed if things are to move forward for the user. App vendors need to realise that what they are producing is part of a system. Not an OS unto itself.

Some people have suggested that this route would lead to applications being broken up into modules that are sold separately. While this would be beneficial to many, for example shareware developers, and pro-sumers who at the moment have to make do with compromises between underpowered Lite and expensive Pro versions of packages, there's no reason why Adobe, Macromedia, et al couldn't continue to sell their wares as suites of tools to art houses an' such.

I miss the universal spell checking in Mac OS X every time I go back to OS 8.6.

Update: Fsck you! I'll misspell words if I want. There, I've run it through Nisus Writer's spell check. I hope you're happy now. The comment about the universal spell check is supposed to be illustrative of the philosophy I was attempting to describe.