Yes, the bazaar is like evolution: messy, inefficient, and slow. Lots of bad ideas are tried; a lot of them stick around for as long as they provide more value than they subtract; and progress takes a long time. Just as the human body has components that are useless today (e.g., the coccyx), evolving software ecosystems always carry a lot useless baggage. That's how evolution works.
But Evolution copes better than intelligent, top-down design with the evolving constraints of a market landscape that is constantly shifting.
Except that evolution did put a man on the moon...unless you are one of those who don't believe humans are the result of 3 billion years of evolution?
What you have to consider is that individual cells evolved, until they created a whole greater than themselves. No individual cell was in control of that first step Armstrong took onto the moon. Likewise, what we end up creating from so much "bazaar" development will almost certainly accomplish something amazing...
...without any of us being able to take credit for it.
> Not to mention the fact that the bazaar is never going to put a man on the moon.
I think we can see abundant proof evolution can go a long way towards that specific goal.
The reason your work machine, running BSD, works the way it does (and self-assembles that way) is because each part of its software environment is independent, designed for different goals and constraints and it just happens to work together well enough you can work with it. It would be easy to standardize Unixes, but then you wouldn't be able to compile M4 for Windows or use one of the 26 FORTRAN compilers absent from your system. Also, what happens when you realize your design led you to a dead end? Evolution usually has plans B to Z built in. It's really difficult to make something evolve into a corner.
Having plans B to Z built-in has an impact on the overall elegance and purity of the design.
>The reason your work machine, running BSD, works the way it does (and self-assembles that way) is because each part of its software environment is independent, designed for different goals and constraints and it just happens to work together well enough you can work with it
No, that's not the case at all actually. FreeBSD like the other BSDs is a complete OS, designed and built as a complete OS. It is not a collection of random tools by various people thrown together like a linux distro is.
arcueid ~ $ du -hs /usr/src
728M /usr/src
arcueid ~ $ du -hs /usr/src/contrib/
307M /usr/src/contrib/
So actually almost half of the FreeBSD OS is "random tools by various people thrown together".
Compared to that, in something like Debian the GNU tools, designed and built by the GNU with the intention to form a complete OS, probably constitute a greater proportion of the core OS.
Going by the size of the source code, including the configure scripts, makefiles, etc for other operating systems is a rather disingenuous way to measure.
The expression "a complete OS" is not what it used to mean. Are you implying FreeBSD has an X server, a dozen compilers and interpreters, a GUI and other components equally "designed and built" as a cohesive thing?
No, I am implying that those things aren't part of the OS. You can tell, because they aren't part of the OS, they are installed with the 3rd party package management tools. In linux there is no base OS, everything is 3rd party packages. There is no difference between firefox and ls. In BSDs there is, ls is not 3rd party software packaged up to be installed, it is part of the OS, written by, maintained by, documented by the same people as the kernel, the standard library, etc.
I would suspect GNU ls is more a part of a Debian install than, say, Gnome desktop. While not as clear-cut as in the BSD world, it's still the same idea.
Except that GNU ls was not designed to run on top of the Linux kernel, which is, on my book, a feature rather than, as you imply, a bug.
The only thing keeping ls on your debian system is other packages having a dependency on it. There is no distinction between operating system and 3rd party packages, all of it is 3rd party packages. I have no idea where you are getting this weird notion about ls and where it was designed to run being a bug. I simply corrected an erroneous statement about what makes up a BSD operating system.
Would you mind simply reading the thread? You are inventing an argument that does not exist. I did not make a value judgement, I corrected an erroneous statement. Nothing more.
I do not how to make this any clearer for you. You said the reason his freebsd system works is because a bunch of independent components happen to fit together. This is false, and that is what I said. That's it. If you said 1+1=3 and I said "actually, 1+1=2" would you then insist on a giant thread of trying to create an argument about whether or not two is a good number?
How is that a fact? "Open Source" space endeavors already exist.
Also I know NASA is famous for their solid code, but personally I still question the amount of effort that goes into it. Just because their approach works (if you can afford it) doesn't prove that there couldn't be a more effective way.
I suppose with infinite money you can make quite a lot of approaches work. You could have an army double check every line of code. Instead of pair programming, why not have 10 programmers look over each others shoulders?
Lastly, lots of intelligent beings happily drive over cliffs all the time, just look at the financial crisis.
> I suppose with infinite money you can make quite a lot of approaches work. You could have an army double check every line of code. Instead of pair programming, why not have 10 programmers look over each others shoulders?
Bingo: it's all about the economics of various tradeoffs. If I have a company that puts together web sites for small companies in the area, and we have NASA style coding standards, we're going to completely price ourselves out of the market. If NASA applied "little web shop" coding standards to their projects, they'd be lucky to get anything up in the air before it exploded.
The important thing is to be on the curve though, not behind it, meaning to make the best of the tradeoffs the economics of what you're doing push you towards.
> Not to mention the fact that the bazaar is never going to put a man on the moon.
Spacex's "careers" page has a whole lot of "linux" jobs listed, so the Bazaar at least seems to be contributing heavily to potential future space travel: http://www.spacex.com/careers.php
I've seen you mentioning some variant of "put a man on the moon" several times in this thread, apparently referring to the cathedral-like project to do so, along with several comments along the lines of "Microsoft software isn't a cathedral because it's designed to create a monopoly market, not software".
Unfortunately, those statements seem to be contradictory; the United States ran the Apollo program for national pride, to cow the Soviets, not out of some grand desire to visit the moon. The science done by Apollo was secondary, and if you believe exploring space was a primary goal, you are going to have a hard time with the question, "why haven't we done it lately?"
http://en.wikipedia.org/wiki/Infinite_monkey_theorem comes to mind. Both efforts (cathedral and bazaar) have produced really useful software, but sometimes I have the feeling that the whole idea of "thinking about a problem" has been replaced by "hit the keyboard until something happens".
But Evolution copes better than intelligent, top-down design with the evolving constraints of a market landscape that is constantly shifting.