As for question 10,
I imagine the idea's for the future interfaces will be defined by other features in the OS such as Orthagonal Persistance.
Also if you have read many of the blue sky pipe-dream pieces on what could be, such as a service based OS's and such. These and others will all have a distinct effect on the final user interface, just like the legacy of BCPL meant the old FFS was screwy in odd way's.
Right now most systems are running a WIMP setup, thanks to Xerox, bless their cotton socks. Thats Windows, Icons, Menu's, Pointers. Usually with bells and whistles added. Also the storage is usualy represented as a hierachy, you have root directory with directorys branching off into a tree like structure. In linux even devices, processes etc. are represented as part of the file system hierachy. (Ugh!)
All this you are given is basically an abstraction layer used to make the computer more understandable to the human mind.
All this was all designed and thought up a long time ago. 60's, 70's we're looking at 30-40 years old. A true legacy that effects all computers.
Problems are that when they were invented no planning was put into these structures, because when you only had 8 k of memory you didn't lose things so easy. no we are looking at 120 GB HD's as standard things are gettings lost. Look at the Internet. GB's of information, all lost and drifting through the ether. The standard convention is followed just because it's been followed for years.
I say cast off ye shackles computer users. Things do not need to be that way. No one uses filing systems these days and so the analogy is obsolete. Best thing to do is throw in some buzz words. Like meta data. Yum, it's actually useful if you actually know what it is. It's data about data. I have this file on a computer and it's stored in binary. it's just a bunch of 1's and 0's. what is it? how can we find out. If we're windows we'll look at the extension, Mime types? uhh, both flawed systems. This is where Meta data comes in. Describe what it is, how it's stored etc. and you have a meaningful object not just a bunch of data. So remember guys dublin core isn't such a stupid idea, just a stupid implementation. XML now thats a better metadata description language.
So here we have a system where each file or bit of data is not just a bunch of 1's and 0's, (at least at the level we care about) instead each is an encapsulated object which describe's itself, what can be done to it etc. Now the data can be referenced by the meta data we set. Instead of files being defined by their metaphorical hierachical location, they are instead defined by what they are.
See now this is where I get so enthused about the idea I fall insensible to the ground, expounding the true way of computing.
Now our files are defined as objects we can also define our system by objects our, applications as objects. certain file objects are described as being assocaited with certain apliaction objects. neato, how about this plug-in objects. Some application objects can accept plug-in objects that add extra features. this is actually a wrong step forwards. what if you remove the idea of an application objects, instead you have service objects much like the idea of b(r)owser services Amiga talks about what if everything is a service. You have a text service object that allows you to enter text into a buffer like a simple text editor. What if you want some kind of formatting on that text you can have a text formatting object attach the two together and you have the rudimentarys of a word processor, add a file object creating service and it can save it to disk. Add a printer object it can print it. Add a speel checking service and you can spel check it.
Ok so now we have these services, we can actually mix and match, build our own applications with the functionality we want.
My own minds eye of this is like a mix between the tron and stickle bricks.
The beauty of this is the power it gives to the end user, at last user empowerment. You don't like someone's spell checking service, buy/use someone elses. Suddenly because the code is in smaller chunks there is accountability. If it doesn't work it doesn't get used. What if you want to do something really wierd no one's thought of to add to an application your using? No problem create your own service stickle brick it on. Just like with Arexx, only rather than adding a scripting language to get over the limitations of the software just remove the limitations of the software.
I better stop now my mouth is foaming and at those times they put me back in the jacket and lock me in the soft white room again.
Also the difference between Andrew Korn and just someone called Korn is I can't ever remember AK making personal attacks or posting incomprehensible posts, also he can speel quite weell.