There are also those of us in Team D (to take into account of the
position of strobe anarkhos <***@mac.com>): The /best of all
worlds/, no "common denominator" (incidentally, "least" common
denominator is a misnomer, since the /least/ common denominator is
/always/ zero or the null set---it's just that calling it the /greatest/
common denominator makes it sound reasonable, to most people), no
compromises (so the system may need to have more options, more choices,
so it can grow with the user).
WARNING: What follows is rather lengthy. Please bear with me.
Furthermore, especially if you think you disagree with me, please read
the whole thing before responding. I think it will help us all.
Post by Mason MarkPost by strobe anarkhosThis is not just a different way of doing things, it's a superior
way.
...
But these things both have to do with the schism that has become
apparent over the past few weeks/months. (Maybe to a lesser extent
the past couple years?)
Unfortunately, it also appears to have been (if it isn't still) a
schism that exists within Apple. There is an honest difference of
opinion (one which you, with your biases, have not expressed very well).
The only answer, as I see it, if for both camps to admit that they each
really want what is the very best. They both think that what they have,
or have had, is the best. However, both really need to also recognize
that their side /does/ have some weaknesses, and that the other side
/does/ have some valid points.
Right now, Mac OS X is mostly not the old Mac, nor is it the old
NeXT. It has some things, particularly at its core (and, potentially,
with the Quartz graphics system---once optimized, and once it has
distributed capabilities added back in) that are better than either has
had. However, it is also missing some cherished features from both
sides---some very powerful and/or user friendly features.
Post by Mason MarkIt's not like this community is confused over these issues, there
are basically two different camps, with very different opinions.
You see the same names, same kinds of arguments, and the same kinds
There is, of course, more than this---a whole spectrum---but there
are those that are on the extremes, or who think that the way to get the
community to move to the middle is to take an extreme position.
Post by Mason Mark1) Metadata in Resource Forks (other than type/creator)
Virtually nobody is in favor of essential data being stored in a
file's resource fork, but there was severe disagreement about the
pros and cons of storing nonessential metadata there.
Team A: The Mac has long benefited from programs being able to
store things like cursor location, selection info, and other data
along with a standard file type. The data fork contains strictly
standard data, and can be read by any program that supports it. The
Mac program that understand the resource fork can enhance the user
experience greatly without sacrificing the use of the standard
format.
Team B: Resource forks are inherently a bad proprietary idea, and
the disadvantages outweigh the user experience gains.
Metadata (other than TYPE/CREATOR codes, which are /not/ stored in
the resource fork anyway), whether "essential" or not, is a good thing.
We have to get away from a particular implementation (at least at first),
and think about such things from a higher level of abstraction. There
are limitations to the resource fork implementation. There are pitfalls
in the bundle implementation.
Let's first tackle the idea of what metadata can and should be used
for, to what extent it should be strictly a part of the file (at least
from a user's perspective), and to what extent it should be globally
associated with the file vs. being associated with the file on a per-user
basis (or even a per-user, per-role basis: The role, here, being how the
user is using the file: Edit, View, whatever). Only then can we
rightfully consider an implementation.
Any decisions should be implemented at a very high API level, so
programmers don't have to be aware of the nature of the implementation
(this is where OO shines). In this way, the implementation can be varied
(even depending upon file system [including remote vs. local], write
privileges or capability, and so forth), without adversely affecting the
programmers, and, therefore, the users.
(Incidentally, there are those that accuse the *n*x [Unix-like]
community of not solving the problem at a fundamental file system
level---not "fixing" the file system---but, rather, using a "band-aid"
like fix. The problem these people don't seem to
understand---understandably, since they usually have little idea of the
nature of file systems, at their implementation level---is that any such
"fundamental" fix would, in actuality, create a /new/ file system
[admittedly, it would be a superset of the old, but it would be
fundamentally incompatible with systems that use the original]. The same
would be true if one were to fix certain "fundamental" flaws of the HFS
or HFS+ file systems [HFS+ /is/ a fundamental fix of the HFS---look at
how it is, in actuality, a different file system: The only reason it is
at all viable as a "fix" of the old is that support for it has been added
to the old system {even though the old system's limitations don't allow
it to take full advantage of this new system}].
This is not to say that creating a new file system might not be such
a bad idea [I'm certainly entertaining the idea], it's just that we have
to recognize that that's exactly what we would be doing if we make
fundamental changes in the file system. Furthermore, even if a new file
system is deemed desirable, there will still be the issue of whether we
can make our "brave new world" work on older file systems. Whether it's
worth trying, and, if not, how to address such a loss in the most user
friendly manner possible.)
Post by Mason Mark2) Types and Creator codes
Team A: Giving my documents Mac creator codes means that my
documents will open in my app when double clicked even if the user
renames the file "My Stuff" with no extension. A document's type
should not depend on the filename, computers should be smarter than
that, and have been in the Mac world for many years.
Team B: 95% of the world is used to using filename extensions. Type
and creator codes are more arcane relics we should do without.
You are certainly being disingenuous here.
It can be proven that, barring border cases (and there always are
such), all the functionality (even the ones that adversely affect the
users) of TYPE/CREATOR codes /can/ be encoded into the file name, and
that this can be done in such a way that the user will not know the
difference (except in some of the border cases, and when they use lower
level tools [a CLI, using one of the usual interpreters, can be rated as
one such]).
However, I believe it is far more instructive if we focus on
designing a system that is superior to either. Again, recognizing that
implementation on any particular file system (or implementing a /new/
file system) is a secondary consideration. (Getting Apple to adopt such
is certainly a further concern, but as we hash out generally acceptable
details we should certainly give Apple our feedback. I have already sent
some of my ideas on certain parts of this to the Cocoa team at Apple---it
turns out that Cocoa is far more amenable to such fundamental changes due
to the level of its abstractions [even if some of those abstractions are
presently implemented such as to allow programmers to take shortcuts in
certain directions]. It will certainly help if such abstractions are
woven into CoreFoundation/Foundation so they are fundamentally available
to all levels [admittedly, there will certainly be a lot more work
required of Carbon developers to take advantage of such, since their code
tends to expose more of the implementation details].)
Post by Mason Mark3) References to open documents
Team A: An application should be smart enough to know that a user
has moved or renamed a file. It is still the same file; why should
an app lose track of it just because the name changed? Some other
mechanism than just the path is needed to keep track of it (FSRef
or whatever) and the Mac has long had this ability, which is one
reason why over the past years the Mac user experience has always
been better (except for the hellacious daily crashing of the OS,
ha ha ha).
Team B: Who needs that legacy junk? Paths work fine, 95% of the
world's users are used to it and know they can't move their files
while they are open and expect applications to keep up with them.
Furthermore, I like to rename a file to save it as a backup, rather
than using the cumbersome two-step process of Save As. Plus, the
Mac UI is overrated and NeXT kicked some serious ass, that's why
NeXT got paid $400 million to take over Apple.
Again, you are being disingenuous---even inflammatory.
The primary issue here is one of how the system behaves from a user's
perspective. If a file is moved or renamed, is it still the same file,
and in what sense? Even when the contents of a file are changed, to what
extent is it still the same file (this has bearing upon per-user
association of metadata)? Again, implementation details are secondary.
(As has been pointed out, Cocoa abstracts the nature of the file to the
point that such can certainly be implemented without any modification to
Cocoa applications---especially once the handling of aliases is
integrated [in fact, from my perspective, this is the only issue with
aliases---I, as a programmer, just as any user, should not have to be
bothered with whether I run across an alias, a symbolic or hard link, or
a mount point {this is not to say that there cannot be any way to find
out, it's just that the default is that it should "just work"}].)