On 6/19/2011 9:49 PM, Julian Leviston wrote:
On 20/06/2011, at 2:33 PM, BGB wrote:

in a sense, the metaphor no longer works, and should likely itself be left to 
fall into the recycle-bin of history. worse yet is having to read stuff written 
by people who actually take this metaphor seriously.
Given the historical perspective, it was appropriate at the time. These days, our 
computers are so vastly scaled beyond the original intention of the "file" 
metaphor that it's getting silly, I'd grant you that.


yep.


It's not really any surprise, then, that Apple's trying to "get rid" of the file system, 
is it? :) Mind you, I think the "app" metaphor is just as crappy, personally. I like the 
idea of workflows much more, and combining a few small simple tools together to get some particular 
job done.

interestingly, I don't believe in getting rid of the file-system, per-se, as technically it works fairly well and is a proven piece of technology.

but, mostly, I just want the filing-cabinet metaphor to go away, if anything, so that people making stupid computer/filing-cabinet analogies will go away, or worse yet, talking about computers implying that they themselves are subject to the same sort of limitations as filing cabinets, or describing technical limitations WRT computers and data storage which haven't really been the case since maybe the 70s or 80s... (such as claiming that files are simply collections of fixed-format records and are unable to store heterogeneous data, leaving me to think "WTF?...").


if I could make any notable change to how filesystems worked, it would be likely to introduce user-defined VFS systems as an OS-level facility.

this would mean one of several things:
ability to more easily introduce user-defined virtual directories as a part of the host operating file-system (as is, on both Windows and Linux, it is a little nasty...); ability to run apps (and parts of apps) inside of custom VFS's (more like finer-grained chroot); potentially a "virtual mount" facility, where an app can locally mount/unmount volumes it has rights to, and can choose whether or not they are visible to the external OS (say, an app might mount its own data-files as volumes, and choose that only itself can see them);
...

as-is, it is generally less nasty to do this within the app, essentially having the app provide its own VFS and drivers (for example, my project can mount zip-files as volumes, including for random read/write, albeit with a few limitations...).


going more extreme, one could begin to blur the line between files and in-program objects and code (say, packages, functions/methods/variables, ... could be potentially visible as part of the VFS). implementation-wise, there is likely to be a layer of separation above the true filesystem (this would introduce a huge number of tiny files which would not map effectively onto most existing filesystems, and so it would seem better to introduce this as a "virtual mount").

another possible idea could be to go from a traditional "mount/unmount/fstab" style system, to possibly supporting a mechanism partway between mounts and symlinks (one doesn't "mount" a volume, they "link to it"...). I am partly imagining "links" partway between Unix-style symlinks, and the links supported by Windows, but with more features (such as ability to mount something via accessing a link, or redirect to a network resource such as a CIFS/HTTP/WebDav/FTP share).


and, for something like the prior concept, they can create a link from a directory into a program, allowing the program to fill a role partway between being an application, an FS driver, and an OS service.

taken further, this could also potentially be partly used as an alternative to traditional DLL/shared-library and IPC/RPC mechanics as well (could get hairy, primarily if C/C++ and data sharing are involved, potentially limiting to high-level "managed" types, which may either be copied or passed as handles...).

worst case for the above, probably can't be too much worse than MS's COM system (COM / COM+ / DCOM).

a proper HLL could probably mostly hide the underlying mechanisms.


trivia:
in a much-older version of my projects, it was possible to open network sockets purely via a VFS "vffopen()" operation, but this feature later died with a rewrite of my VFS mechanism some years back (I may eventually re-add it, possibly among several other VFS features, namely cached HTTP mounts and ability to support virtual file encryption).

basically, the rewrite partly broke my ability to route network sockets over the local VFS (in general), as well as several other things.

my code also generally works within a local VFS, rather than directly using the OS provided FS facilities. the VFS is actually one of the oldest parts of my codebase (dating to sometime around the late 90s...).


For example, when web programming on a specific web app, I use a web browser, a text editor, a database 
management program, a command line, and a couple other tools. It'd be nice to be able to "fit these 
tools together" into a pseudo-app and then build "documents" for this pseudo-app... that were 
accessible within the pseudo-app (ie not the file system) to use Apple's idea, and that could simply do all 
the things I generally need to do... (there are only a few "tasks" I generally do and none of them 
correlate directly into any one particular application).

I love the way I edit text in my one particular text editor. Why do I have to 
use a different editor to edit my email text? lol... it makes little sense.

well, mostly I am using Windows Explorer and the shell (both CMD and Bash) for managing things on Windows, and this setup works "adequately".

admittedly, I am not entirely sure how the idea you are describing will work, so maybe it can be described in more detail? (like, what parts it may contain and how they may fit together...).



_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to