2,337 karma · joined June 15, 2010
There seems to be some underlying assumptions of omniperfection hung of the "cathedral" meme in these parts. That is simply unfounded in both theory and practice.
Second, cathedral vs. bazaar is not really about governance, but about architecture, and they are two separate power-structures, although most organizations, including FreeBSD, mingle them, to their own disadvantage.
We can argue if attempting M:N was a wise or a factually based decision, but that has nothing to do with cathedral vs. bazaar, certainly not in this particular case: What happened was that M:N came first and that was that.
Only once it clearly transpired that it could not sustain its promises in practice (partly because every thread programmer assumed 1:1) did the actual decision making aparatus of FreeBSD kick into gear.
In Linux, (which is much more cathedral than FreeBSD) or OpenBSD (at the time even more so), that decision would probably have been executed practically instantly, but in FreeBSD which is mostly consensus driven, it took some time (and angry words etc.)
But overall the libkse vs. libthr saga has almost nothing to do with cathedral vs. bazaar, because architecture was not the driving force at any time during that saga.
From my own time as FreeBSD release engineer I know that task must come with freedom to pick tools and methods, and therefore it does.
That doesn't mean I have to like the choice, but I have respect it, (or take over the build/release responsibility myself.)
Nobody belives in "a priori design" and I somehow doubt that anybody did. Brooks points out that the original publication of the "waterfall model" was meant as "how not to..." and people got that wrong.
But cathedrals are not about a priori design, they are about style, elegance, economy of means and coherency of design.
But my point in the piece is that the lost generation doesn't even know what a cathedral is in the first place, having grown up in the bazaar.
Microsoft didn't architect their software as software, they shaped it as tools of monopoly enforcement.
There are numerous accounts from people involved about how marketing decisions relating to cutting of 3rd parties or trying to bludgon somebody into submission caused them to cripple their own software and its architecture.
See the evidence in the M$/Novell case for ironclad evidence of this.
You diagnosis of its qualities are spot on.
"ad hominem" means to "attack the man", ie: I single identified man, saying some generalities about identifiable groups is not "ad hominem".
And yes, I am a grump old man, and a surprisingly cheerful one at that.
Microsoft was forced to buy them, almost at gunpoint, by 3rd. party software developers.
To me it means: If you're happy what you're doing, then who am I to tell you're wrong ?
Read Brooks book.
Second, just because there is one bad example of a cathedral, doesn't mean the cathedral model is bad.
Many years ago, a fella named Gettys (look him up!) wrote as part of sage advice for OSS philosophy:
"The only thing worse than generalizing from one example, is generalizing from no example at all."
But some topics would require entire books to present in a context free way, this is one of them, and I don't have the time and money to write that book, so you will have to make do with a column @ACM.
When I read something, and have the nagging feeling that there is context I'm missing, I go looking for that context, usually starting with "who the heck wrote this", rather than assume that the writer is a clueless bozo.
But whatever blows your hair back buddy...
Have you never wondered about their surprisingly coherent APIs and wondered why that was so different from, say, UNIX ?
See my other comment about knowing what a cathedral is to begin with.
First: It would be a big help for this discussion, if we could have the informal convention that people who were employed in an IT job before 1990 marked their post. I think it would show a quite clear divergence of attitude.
Second: It's very obivious, that a lot of you have never been anywhere near the kind of software project posited in the "cathedral" meme, instead you project into the word whatever you have heard or feel or particularly hate. That's not very helpful, given that there is an entire book defining the concept (I belive it's available online on ESR's homepage, how about you read it ?)
Third: No, I'm not of the "either you are with us, or you are against us" persuation. The bazaar is here to stay, but having everybody in need of transportation buy the necessary spareparts to build a car is insane.
Fourth: Related to point two really: A lot of you seem to have little actual ambition of making things better, I guess that is what happens if you grow up in a bazaar and never even experience a cathedral. I pity you.
And trust me, libtool is replaceable, all it takes an agreement about a compiler and loader flag for producing shared libraries and you suddenly don't need it at all.
UNIX was originally written as pair-programming.
Brooks refers to agile in The Mythical Man-Month (he didn't invent it, check his references)
Nobody says you have to write iOS games using the same methodology as avionics, what somebody is trying to say is that random walk will only get you so far...
iOS is a pretty bad example btw, because iOS is very much a Cathedral and has a designer and architect who cares and who is in control.
That's precisely why don't need to use autoconf to compile stuff for iOS.