I think I understand (and agree) with the thrust
of this post, but I think that it's important to
qualify your statement. Inferiority is extremely
subjective. Linux is inferior in terms of
scalability, stability, and such, on high end
hardware. As much as I wish it weren't so, that's
just how it is.
However, Linux is not inferior in some other
respects -- Linux is a pleasure to work with
(especially Debian) and Solaris is not. Solaris
is a major, major pain in the ass.
We hold these truths to be self-evident, as some
famous guy once said. Anyone that has ever
extensively administered both OS understands that
there are places Solaris excels and others where
Linux excels. Saying one is inferior without
qualifying your statement is silly.
So now the question is why? I have a thought on
this. Linux is, by in large, a free (non-funded)
development effort. This is one of the things
that makes it scream on older hardware and futz
up on the bleeding edge stuff -- you need time
for free software developers to get the new stuff
working because most companies don't support
Linux.
Sun big-iron servers and their ilk cost a
lot of money. Much more than the average
Free Software developer could possibly afford.
As a result, Linux is not (and cannot easily be)
tuned for these systems. Is it any wonder that
it doesn't run well on them?
Solaris is designed to be the sort of OS that
runs these servers -- it's not meant to have nice,
user friendly tools, and increasingly Sun is
coming to terms with the fact that people prefer
Linux's interface to Solaris'. But Solaris will
probably always be ahead of Linux in the server
market, because Sun has a lot of these servers
to dev Solaris on (they make them, after all) and
the Free Software Linux core will never be able
to afford these machines -- and since most people
don't run them it's arguably a waste of effort.
And unless you're a real Free as in Freedom
advocate, there's no reason not to run Solaris
on these machines. It's free as in beer anyway
and you know it's going to work on your 64 way
Sun server.
For really expensive hardware, it's just not
workable to have good Free Software. No one is
making FreeMVS, for example. Where would you
test it? No one has a 2 million dollar IBM
mainframe just sitting at home for development.
> And GNU has nothing to do with porting of Linux to any platform.
... is demonstratably false. Whether or not the individual people who port the Linux kernel to a new architecture are or are not GNU affiliates is, simply put, irrelevant. The first step to getting Linux (or BSD, or whatever) on a new system is porting GCC to its architecture. While this is sometimes done by the people responsible for the Linux porting effort, most of the time this is done by members of the GCC team -- getting a new port to work without breaking all the others requires a great deal of cooperation and support.
Not to mention a working linker. Assembler. The list goes on. Who wrote those?
Lately I've heard a lot of Linux weenies dissing GNU and RMS as out-dated hippies who are prone to overestimating their importance. Unfortunately for these people, GNU is the only reason Linux exists. It's not like Linus wrote his kernel and there just happened to be a binutils chain,
compiler, libc, etc just sitting there, ripe for the taking without someone doing a HECK of a lot of work. Probably more work than goes into developing the Linux kernel itself.
Unlike some morons, I'm not here trying to say that Linux/Linus don't deserve a lot of credit; they do. But people who disagree with RMS and his policies often decide that that makes it okay to write revisionist history and downplay his importance to the OSS movement. Without him, there is no movement. Like him or not,
don't forget it.
Basically, underneath the pretty Aqua interface of
MacOS X is the actual operating system, which is
generally called Darwin. As you may have heard,
Darwin is a kind of BSD (Berkeley Systems
Distribution) UNIX -- a server grade multitasking OS designed initially in the sixties and seventies and
later ported to a variety of different
architectures.
Originally, BSD only ran on large, mainframe-like
servers -- which would now compare to your pocket
calculator in terms of processing power but at
the time were extremely powerful. Eventually,
Intel released the 386 series of its x86 processor
family, which featured (among other things) an
MMU (Memory Management Unit) which allowed the
computer to protect memory at the hardware level.
This ability is one we take for granted now, but
at the time it was a new development on the PC
level.
The existance of an MMU allowed BSD to be ported
to 386s, and so it was, and aptly called 386BSD.
It didn't release often enough, though, and so
its code base was forked into two seperate
projects that still exist today: FreeBSD and
NetBSD. The former stepped up development on x86,
and the latter focused on portability. Because
they came from the same codebase, they shared
(and still share) much development between the
projects, and as a result, FreeBSD has been
ported to most major architectures, including,
most notably, PPC (PowerPC).
Both projects have been forked again to create
new Operating Systems. NetBSD was forked to
produce OpenBSD, and FreeBSD was forked to
produce Darwin. Perhaps you're not totally clear
on what it means to "fork" so I'll explain this
a bit.
The BSD license is Open Source, but more
than just being Open Source, it is extremely
permissive. Unlike other Open Source licenses
(for example, the GNU GPL), the BSD license
allows other parties to use source code released
under it for any reason whatsoever, with or
without releasing their developments or
modifications, without paying a dime -- they are
simply required to give credit where credit is
due.
Thus to fork a project means to take
the project's source code and begin developing it
independantly, to better suit your developmental
goals.
Apple forked FreeBSD for several reasons. For
one, they wanted to release their changes under
a more restrictive Apple License, to protect
their own interests. For another, Darwin differs
structurally from FreeBSD in a major way: it is
a microkernel, instead of a macrokernel. This
is a bit beyond the scope of this post, so
I'll refrain from explaining it unless you're
curious -- but suffice to say that it's a major
architectural change and caused Darwin to diverge
substantially from the version of the FreeBSD
kernel from which they forked (3.2).
The Free Unices (especially BSD) are renowned
for their stability, but they are not bugfree.
They continue to be developed, and newer versions
of the utilities that come with the OS are
integrated and tested. Thus, while Apple was
making it's changes, FreeBSD continued to evolve:
bugs were fixed, features added, etc.
Apple hopes to capitalize on this work, as
they should -- so when they talk of syncing with
FreeBSD 4.4, they mean that they will merge the
relevant changes made between FreeBSD 3.2 and
FreeBSD 4.4 into Darwin to the best of their
ability. This is non-trivial, and by the time
they are complete, FreeBSD will have advanced
and they will likely need to sync again. This
generally happens with code forks.
In the end, Darwin, due to its structural
differences, will probably diverge from FreeBSD
to the point where any major sync will become
unworkable (as has happened with other commercial
BSD forks, for example by Sun) and they will
have to work Darwin seperately, incorporating
only the most needed changes.
Apple differs from companies like Sun in one
major way, though: Darwin is Open Source, and so
you (and anyone else) can view and submit changes
to the code. The general idea is that users that
want FreeBSD (or NetBSD or whatever) add-ons to
the Darwin core will be able to do so themselves.
It's also worth noting that, due to the dismal
funding afforded our schools, they _always_ have
obsolete hardware. The local middle school still
has Apple IIe's and Macintosh LCIIs in abundance;
they work, why throw them away to pay for newer
hardware that they can't afford?
I think that most people complain about how slow
the machines are, rather that how slow the
OS is, because they know that schools can
very rarely afford top of the line equipment.
And consider how much Apple in the schools
benefitted Apple as a company -- students, using
Macs in their computer labs, wanted Macs at home.
The same sort of thing could happen with Linux.
The other thing: Linux is not inherently
harder to use than Windows, Mac, or any other
platform. It's simply a matter of what you're
used to -- back before GUIs, everyone ran CLIs
and people simply accepted that as "the way".
Not that Linux is CLI-only, but I'm just
illustrating: it's what you're used to that makes
ease of use.
So it's easy to see that early exposure to Linux
in schools will familiarize students with the
Tao of Linux, and even if they don't use it at
home, they will not feel daunted by it later in
life. Which means that when Old Bill and his
stringent disregard for their rights or his
highway robbery prices get them down, they
won't have problems using Linux.
This actually isn't entirely true. Having an
oxygen rich atmosphere is not sufficient; the
atmosphere must also be humid and hot. Primarily,
this is required because (as the parent post
pointed out) their circulatory system is comprised
of oxygen carrying trachea rather than blood
carrying arteries and veins; as a result, the
oxygen must pass directly through the tracheal
membranes into the cells behind them.
This doesn't happen easily unless the air
is humid, rather for the same reason our lungs
(which transfer oxygen to the blood in a similar
manner) must be moist. This is why we so often
see monstrous bugs in humid (tropical) areas,
and less so in deserts.
The moisture is much more important than the
oxygen. Consider the monster millipede
Arthropleuridea ,
which, during the Silurian Era, grew in excess of
two meters. During that era -- some 55 million
years before the apperance of the dinosaurs, over
300 million years ago -- Earth's atmosphere was
far less oxygen-rich than it is now; yet many
grotesquely large insects existed at that time --
many more than today. The atmosphere was
also hot and tropical, and the excess humidity
allowed these insects to flourish.
No, actually, that's not really what he's saying.
It's important to remember that when we talk about
a circle, we are talking about the space commonly
refered to as S^1 -- that is, it's the boundary of
the 2-ball. Just the line part that you draw when
you draw a circle, if you will, not the area it
encloses.
S^1 is a space in and of itself -- it does not
need to be embedded in another space for it to
make sense. As such, talking about "where" the
circle is not very useful in the context, not
any
more than you need to talk about where R^2 is
(the plane).
Intuitively, S^1 (which is basically like a
line, looped back on itself) only has one
dimension because you can map R (which is one
dimensional) onto it in a continuous
way.
Continuity is important because, for example,
the cardinality of R^1 and the cardinality of
R^2 can be shown to be the same -- which means
there exists a bijection between them. Thus,
there is a function which maps all of R onto
all of R^2 -- and so if you didn't require
continuity you would wind up having to say that
R and R^2 are the same dimension, which clearly
isn't true.
Dimension in topological spaces is
necessarily more complex than dimension in vector
spaces, since there are many many more topological
spaces than vector spaces. I'm only trying to
give you an intuitive grasp of what is meant;
don't take this as definition.
RMS does not have issues with calling Linux Linux. He simply has issues with people calling Linux kernel + GNU userland simply Linux, because it neglects the majority of the software required to build a full OS.
If you were to build Linux without any GNU software -- which would be rather hard, since I don't know of any free binutils toolchain to replace GNU's -- I very much doubt that RMS would care if you called it Foo/Linux or just Linux, or whatever else you wanted.
He wants GNU/Linux called GNU/Linux because it is GNU/Linux. Simple as that.
This is not technically true. A win32 port has
been written, and is part of cvs. While cvs is easy for Linux folks, however, it's rather hard for win32 users -- as such, most windows people will have to wait until release to be able to use it.
This in no way precludes usage by the Linux community, however.
This is extremely common, and linguists have a name for it -- it's called code mixing (or sometimes code switching).
When I speak with people who speak the same languages I do, I very often will mix languages; sometimes this is for convenience because one word describes what I mean better than another, but often it is simply a question of which word pops into my head, as it were.
Actually, when speaking English to someone, I will often mentally "reject" three or four candidate words that pop into my head as I speak, because they are in the "wrong" language. When given the freedom to code mix,
I just turn this part of my brain off, and let
whichever word comes into my head first be the one uttered.
What is more confusing to me is grammatical code switching -- whereby I unconciously choose the syntax (or sometimes even morphology) of a particular language while using the vocabulary of another. Inflection of English words according to French words, for example -- or even weirder, the replacement of English articles with French ones. The latter is strange because French articles are gender marked, and I find myself picking the "right" gender (according to French) while using an English word (which of course has no gender, ships not withstanding.)
While this would theoretically be good, I fear that it isn't really feasible. Why?
Because most open-source programs were not designed this way. Whether a library dependancy is compiled in or not changes the
resulting binary; this means that, say, nethack (compiled with x11 support) and nethack (compiled without) are fundamentally different binaries.
As such, these two would have to be different executables, of similar size. Including both in one package at download time would of course waste bandwidth.
But the situation gets exponentially worse. Consider a package which has n options (all independant of each other, for the sake of computation). Then we have 2^n different package configurations! Clearly, building each and placing them all in the same package to allow users to choose would
eat bandwidth unacceptably. And we haven't even added all the different architectures (although on MacOS X there is admittedly only one.)
So let's say instead that each of these packages exists somewhere, and the package you have simply references them, and (at your discretion) asks you which options you want compiled (or else picks the package
best supported by your system), and then downloads the appropriate version.
How is this really any different from our current setup, where we instead have several versions of the same package for commonly requested options?
Correct me if I'm wrong -- and I may very well be, as I haven't had the pleasure of using Fink -- but as it is based on apt/dpkg, why should you have to use menus at all?
To elaborate somewhat, I understand that Fink supports apt-get in all its glory, and as such apt-get install (perhaps prefaced by an apt-get update to get the most recent listing) should theoretically install any package supported. Moreover, apt-cache search and related commands would be invaluable at discovering the names of packages (sometimes they aren't immediately obvious).
On a side note, I use OpenBSD for my firewall and let me simply say: I love the ports tree. Really a stroke of genius on Jordan's part.
However, the simple truth is that the average user we're all fond of blabbering about simply isn't equipped to deal with compilation as a concept. Sure, it may just be a simple 'make' command to us, but the idea of compilation is necessarily foreign and scary to the novice who simply wants some extra software.
And what exactly is the point of having each end-user compile his own packages? MacOS X only runs on Macintosh hardware, so cross-architectural support (which is what Ports was designed for) is sort of moot. Binary packages install more quickly, and remove any possible problems in compilation (since you needn't compile).
This is slightly OT, but atually, an increasingly large amount of evidence suggests that ADD/ADHD have most of their basis in neurobiological deficiencies.
Personally, I suffer from somewhat minor (read: ignorable) ADD and was told (though I have no facts or links to back this information up) that children with ADD demonstrate a sudden absence of blood in the frontal lobe when concentrating on certain (generally repetitive) tasks. This is unfortunately only diagnosable with an MRI, which is too costly to be of much use to most alleged sufferers of AD(H)D.
I think I understand (and agree) with the thrust of this post, but I think that it's important to qualify your statement. Inferiority is extremely subjective. Linux is inferior in terms of scalability, stability, and such, on high end hardware. As much as I wish it weren't so, that's just how it is.
However, Linux is not inferior in some other respects -- Linux is a pleasure to work with (especially Debian) and Solaris is not. Solaris is a major, major pain in the ass.
We hold these truths to be self-evident, as some famous guy once said. Anyone that has ever extensively administered both OS understands that there are places Solaris excels and others where Linux excels. Saying one is inferior without qualifying your statement is silly.
So now the question is why? I have a thought on this. Linux is, by in large, a free (non-funded) development effort. This is one of the things that makes it scream on older hardware and futz up on the bleeding edge stuff -- you need time for free software developers to get the new stuff working because most companies don't support Linux.
Sun big-iron servers and their ilk cost a lot of money. Much more than the average Free Software developer could possibly afford. As a result, Linux is not (and cannot easily be) tuned for these systems. Is it any wonder that it doesn't run well on them?
Solaris is designed to be the sort of OS that runs these servers -- it's not meant to have nice, user friendly tools, and increasingly Sun is coming to terms with the fact that people prefer Linux's interface to Solaris'. But Solaris will probably always be ahead of Linux in the server market, because Sun has a lot of these servers to dev Solaris on (they make them, after all) and the Free Software Linux core will never be able to afford these machines -- and since most people don't run them it's arguably a waste of effort. And unless you're a real Free as in Freedom advocate, there's no reason not to run Solaris on these machines. It's free as in beer anyway and you know it's going to work on your 64 way Sun server.
For really expensive hardware, it's just not workable to have good Free Software. No one is making FreeMVS, for example. Where would you test it? No one has a 2 million dollar IBM mainframe just sitting at home for development.
See what I mean?
Not to be a GNU pundit, but...
> And GNU has nothing to do with porting of Linux to any platform.
... is demonstratably false. Whether or not the individual people who port the Linux kernel to a new architecture are or are not GNU affiliates is, simply put, irrelevant. The first step to getting Linux (or BSD, or whatever) on a new system is porting GCC to its architecture. While this is sometimes done by the people responsible for the Linux porting effort, most of the time this is done by members of the GCC team -- getting a new port to work without breaking all the others requires a great deal of cooperation and support.
Not to mention a working linker. Assembler. The list goes on. Who wrote those?
Lately I've heard a lot of Linux weenies dissing GNU and RMS as out-dated hippies who are prone to overestimating their importance. Unfortunately for these people, GNU is the only reason Linux exists. It's not like Linus wrote his kernel and there just happened to be a binutils chain, compiler, libc, etc just sitting there, ripe for the taking without someone doing a HECK of a lot of work. Probably more work than goes into developing the Linux kernel itself.
Unlike some morons, I'm not here trying to say that Linux/Linus don't deserve a lot of credit; they do. But people who disagree with RMS and his policies often decide that that makes it okay to write revisionist history and downplay his importance to the OSS movement. Without him, there is no movement. Like him or not, don't forget it.
First, a little background.
Basically, underneath the pretty Aqua interface of MacOS X is the actual operating system, which is generally called Darwin. As you may have heard, Darwin is a kind of BSD (Berkeley Systems Distribution) UNIX -- a server grade multitasking OS designed initially in the sixties and seventies and later ported to a variety of different architectures.
Originally, BSD only ran on large, mainframe-like servers -- which would now compare to your pocket calculator in terms of processing power but at the time were extremely powerful. Eventually, Intel released the 386 series of its x86 processor family, which featured (among other things) an MMU (Memory Management Unit) which allowed the computer to protect memory at the hardware level. This ability is one we take for granted now, but at the time it was a new development on the PC level.
The existance of an MMU allowed BSD to be ported to 386s, and so it was, and aptly called 386BSD. It didn't release often enough, though, and so its code base was forked into two seperate projects that still exist today: FreeBSD and NetBSD. The former stepped up development on x86, and the latter focused on portability. Because they came from the same codebase, they shared (and still share) much development between the projects, and as a result, FreeBSD has been ported to most major architectures, including, most notably, PPC (PowerPC).
Both projects have been forked again to create new Operating Systems. NetBSD was forked to produce OpenBSD, and FreeBSD was forked to produce Darwin. Perhaps you're not totally clear on what it means to "fork" so I'll explain this a bit.
The BSD license is Open Source, but more than just being Open Source, it is extremely permissive. Unlike other Open Source licenses (for example, the GNU GPL), the BSD license allows other parties to use source code released under it for any reason whatsoever, with or without releasing their developments or modifications, without paying a dime -- they are simply required to give credit where credit is due.
Thus to fork a project means to take the project's source code and begin developing it independantly, to better suit your developmental goals.
Apple forked FreeBSD for several reasons. For one, they wanted to release their changes under a more restrictive Apple License, to protect their own interests. For another, Darwin differs structurally from FreeBSD in a major way: it is a microkernel, instead of a macrokernel. This is a bit beyond the scope of this post, so I'll refrain from explaining it unless you're curious -- but suffice to say that it's a major architectural change and caused Darwin to diverge substantially from the version of the FreeBSD kernel from which they forked (3.2).
The Free Unices (especially BSD) are renowned for their stability, but they are not bugfree. They continue to be developed, and newer versions of the utilities that come with the OS are integrated and tested. Thus, while Apple was making it's changes, FreeBSD continued to evolve: bugs were fixed, features added, etc.
Apple hopes to capitalize on this work, as they should -- so when they talk of syncing with FreeBSD 4.4, they mean that they will merge the relevant changes made between FreeBSD 3.2 and FreeBSD 4.4 into Darwin to the best of their ability. This is non-trivial, and by the time they are complete, FreeBSD will have advanced and they will likely need to sync again. This generally happens with code forks.
In the end, Darwin, due to its structural differences, will probably diverge from FreeBSD to the point where any major sync will become unworkable (as has happened with other commercial BSD forks, for example by Sun) and they will have to work Darwin seperately, incorporating only the most needed changes.
Apple differs from companies like Sun in one major way, though: Darwin is Open Source, and so you (and anyone else) can view and submit changes to the code. The general idea is that users that want FreeBSD (or NetBSD or whatever) add-ons to the Darwin core will be able to do so themselves.
Hopefully that answers your question?
It's also worth noting that, due to the dismal funding afforded our schools, they _always_ have obsolete hardware. The local middle school still has Apple IIe's and Macintosh LCIIs in abundance; they work, why throw them away to pay for newer hardware that they can't afford?
I think that most people complain about how slow the machines are, rather that how slow the OS is, because they know that schools can very rarely afford top of the line equipment.
And consider how much Apple in the schools benefitted Apple as a company -- students, using Macs in their computer labs, wanted Macs at home. The same sort of thing could happen with Linux.
The other thing: Linux is not inherently harder to use than Windows, Mac, or any other platform. It's simply a matter of what you're used to -- back before GUIs, everyone ran CLIs and people simply accepted that as "the way". Not that Linux is CLI-only, but I'm just illustrating: it's what you're used to that makes ease of use.
So it's easy to see that early exposure to Linux in schools will familiarize students with the Tao of Linux, and even if they don't use it at home, they will not feel daunted by it later in life. Which means that when Old Bill and his stringent disregard for their rights or his highway robbery prices get them down, they won't have problems using Linux.
A good thing, IMHO.
This actually isn't entirely true. Having an oxygen rich atmosphere is not sufficient; the atmosphere must also be humid and hot. Primarily, this is required because (as the parent post pointed out) their circulatory system is comprised of oxygen carrying trachea rather than blood carrying arteries and veins; as a result, the oxygen must pass directly through the tracheal membranes into the cells behind them.
This doesn't happen easily unless the air is humid, rather for the same reason our lungs (which transfer oxygen to the blood in a similar manner) must be moist. This is why we so often see monstrous bugs in humid (tropical) areas, and less so in deserts.
The moisture is much more important than the oxygen. Consider the monster millipede Arthropleuridea , which, during the Silurian Era, grew in excess of two meters. During that era -- some 55 million years before the apperance of the dinosaurs, over 300 million years ago -- Earth's atmosphere was far less oxygen-rich than it is now; yet many grotesquely large insects existed at that time -- many more than today. The atmosphere was also hot and tropical, and the excess humidity allowed these insects to flourish.
No, actually, that's not really what he's saying. It's important to remember that when we talk about a circle, we are talking about the space commonly refered to as S^1 -- that is, it's the boundary of the 2-ball. Just the line part that you draw when you draw a circle, if you will, not the area it encloses.
S^1 is a space in and of itself -- it does not need to be embedded in another space for it to make sense. As such, talking about "where" the circle is not very useful in the context, not any more than you need to talk about where R^2 is (the plane).
Intuitively, S^1 (which is basically like a line, looped back on itself) only has one dimension because you can map R (which is one dimensional) onto it in a continuous way.
Continuity is important because, for example, the cardinality of R^1 and the cardinality of R^2 can be shown to be the same -- which means there exists a bijection between them. Thus, there is a function which maps all of R onto all of R^2 -- and so if you didn't require continuity you would wind up having to say that R and R^2 are the same dimension, which clearly isn't true.
Dimension in topological spaces is necessarily more complex than dimension in vector spaces, since there are many many more topological spaces than vector spaces. I'm only trying to give you an intuitive grasp of what is meant; don't take this as definition.
RMS does not have issues with calling Linux Linux. He simply has issues with people calling Linux kernel + GNU userland simply Linux, because it neglects the majority of the software required to build a full OS.
If you were to build Linux without any GNU software -- which would be rather hard, since I don't know of any free binutils toolchain to replace GNU's -- I very much doubt that RMS would care if you called it Foo/Linux or just Linux, or whatever else you wanted.
He wants GNU/Linux called GNU/Linux because it is GNU/Linux. Simple as that.
This is not technically true. A win32 port has been written, and is part of cvs. While cvs is easy for Linux folks, however, it's rather hard for win32 users -- as such, most windows people will have to wait until release to be able to use it.
This in no way precludes usage by the Linux community, however.
This is extremely common, and linguists have a name for it -- it's called code mixing (or sometimes code switching).
When I speak with people who speak the same languages I do, I very often will mix languages; sometimes this is for convenience because one word describes what I mean better than another, but often it is simply a question of which word pops into my head, as it were.
Actually, when speaking English to someone, I will often mentally "reject" three or four candidate words that pop into my head as I speak, because they are in the "wrong" language. When given the freedom to code mix, I just turn this part of my brain off, and let whichever word comes into my head first be the one uttered.
What is more confusing to me is grammatical code switching -- whereby I unconciously choose the syntax (or sometimes even morphology) of a particular language while using the vocabulary of another. Inflection of English words according to French words, for example -- or even weirder, the replacement of English articles with French ones. The latter is strange because French articles are gender marked, and I find myself picking the "right" gender (according to French) while using an English word (which of course has no gender, ships not withstanding.)
While this would theoretically be good, I fear that it isn't really feasible. Why?
Because most open-source programs were not designed this way. Whether a library dependancy is compiled in or not changes the resulting binary; this means that, say, nethack (compiled with x11 support) and nethack (compiled without) are fundamentally different binaries.
As such, these two would have to be different executables, of similar size. Including both in one package at download time would of course waste bandwidth.
But the situation gets exponentially worse. Consider a package which has n options (all independant of each other, for the sake of computation). Then we have 2^n different package configurations! Clearly, building each and placing them all in the same package to allow users to choose would eat bandwidth unacceptably. And we haven't even added all the different architectures (although on MacOS X there is admittedly only one.)
So let's say instead that each of these packages exists somewhere, and the package you have simply references them, and (at your discretion) asks you which options you want compiled (or else picks the package best supported by your system), and then downloads the appropriate version.
How is this really any different from our current setup, where we instead have several versions of the same package for commonly requested options?
Correct me if I'm wrong -- and I may very well be, as I haven't had the pleasure of using Fink -- but as it is based on apt/dpkg, why should you have to use menus at all?
To elaborate somewhat, I understand that Fink supports apt-get in all its glory, and as such apt-get install (perhaps prefaced by an apt-get update to get the most recent listing) should theoretically install any package supported. Moreover, apt-cache search and related commands would be invaluable at discovering the names of packages (sometimes they aren't immediately obvious).
On a side note, I use OpenBSD for my firewall and let me simply say: I love the ports tree. Really a stroke of genius on Jordan's part.
However, the simple truth is that the average user we're all fond of blabbering about simply isn't equipped to deal with compilation as a concept. Sure, it may just be a simple 'make' command to us, but the idea of compilation is necessarily foreign and scary to the novice who simply wants some extra software.
And what exactly is the point of having each end-user compile his own packages? MacOS X only runs on Macintosh hardware, so cross-architectural support (which is what Ports was designed for) is sort of moot. Binary packages install more quickly, and remove any possible problems in compilation (since you needn't compile).
Personally, I suffer from somewhat minor (read: ignorable) ADD and was told (though I have no facts or links to back this information up) that children with ADD demonstrate a sudden absence of blood in the frontal lobe when concentrating on certain (generally repetitive) tasks. This is unfortunately only diagnosable with an MRI, which is too costly to be of much use to most alleged sufferers of AD(H)D.
Just thought I'd throw that out there.