Earlier quoted context omitted.
>Pretty much all your arguments about the Cathedral model being superior fail in the face of the most common cathedrals known to man: Microsoft Windows and Office. It's been twelve long years that OpenOffice moved from the cathedral model to the bazaar model. And it still suffers from the same criticisms you level against Office and more.
Do you think turning a cathedral into a bazaar is a minor architectural change?
A Generation Lost in the Bazaar
281–290 of 353 posts
Re: A Generation Lost in the Bazaar
#282Earlier quoted context omitted.
Or maybe, just maybe I don't write for the lowest common denominator, but for people who can think for themselves.
He's also a little bit fond of personal attacks.
OP's site bikeshed.org (http://bikeshed.org/) has some nice proposed features for software that posts to large audiences.
+------------------------------------------------------------+
| Your email is about to be sent to several hundred thousand |
| people, who will have to spend at least 10 seconds reading |
| it before they can decide if it is interesting. At least |
| two man-weeks will be spent reading your email. Many of |
| the recipients will have to pay to download your email. |
| |
| Are you absolutely sure that your email is of sufficient |
| importance to bother all these people ? |
| |
| [YES] [REVISE] [CANCEL] |
+------------------------------------------------------------+
+------------------------------------------------------------+
| Warning: You have not read all emails in this thread yet. |
| Somebody else may already have said what you are about to |
| say in your reply. Please read the entire thread before |
| replying to any email in it. |
| |
| [CANCEL] |
+------------------------------------------------------------+
Perhaps any forum software needs these, as well as buttons saying [really post this?] [save this angry version locally, and give you time to write a calmer version] etc.Re: A Generation Lost in the Bazaar
#283A very thought-provoking article. (Been programming for pay since 1966 here.) A lot of the commentary seems to be confusing the waterfall model with the idea of the cathedral. Another way to make this point is to note how few programmers these days read Dijkstra, or Knuth's TAOCP. (Knuth would have us believe that even he doesn't read it. See Coders At Work.) Among other things, Dijkstra taught understanding the enti…
Re: A Generation Lost in the Bazaar
#284Earlier quoted context omitted.
That's a false dichotomy -- a straw-man -- that's you're using to discredit the idea of planning ahead. Compare FreeBSD kernel design versus Linux. kqueue vs. dnotify/inotify/??? Mach-descended VM vs. a string of linux-vms BSD scheduler, ULE scheduler vs. how many different schedulers? Linux churns through ill-conceived solutions to problems until they find one acceptable enough. FreeBSD grinds on one until it defini…
FreeBSD grinds on one until it definitively works. And what happens if it never works?
libkse was an attempt to implement M:N thread scheduling. This is something that can, in theory, provide significant benefits over 1:1 thread scheduling, but in practice, is extremely complicated to implement and has fallen out of favor across the board: Solaris abandoned the approach in Solaris 9, and FreeBSD abandoned it in (IIRC) FreeBSD 7.
Concurrent to libkse, libthr was developed by David Xu, and was also included in the FreeBSD base system. It implemented 1:1 threading, is far simpler than libkse, and has replaced libkse as the default threading library.
I would argue that in this case, FreeBSD's cathedral model failed; M:N threading ideally would have never been attempted, and it was wasteful to attempt to implement two distinct threading libraries. However, considerable thought and expertise went into the work, and the work (and decisions around it) were not made flippantly or taken lightly.
It was simple a case where despite best intentions and best effort, the wrong choice was made. At the same time, in what some might call "bazaar-like", David Xu maintained libthr as an alternative. It remained there, ready for adoption as the default threading library, until such time as it became apparent that M:N via libkse was a dead-end.
This was a mistake, but no entity is perfect, and the success rate of FreeBSD's considered decision-making remains statistically high. In this case where something never worked, it was replaced with something equally well-considered and far more successful.
Moreover, compared to Linux's gross missteps with their threading implementations (including such gems as setuid() being thread-local as an implementation side-effect), libkse was a minor fender-bender.
Re: A Generation Lost in the Bazaar
#285Earlier quoted context omitted.
Fair, but I would describe them more as well-engineered skyscrapers. Or even simply good city planning. They're large structures designed around the idea of flexibility and growth from the outside. Ironically, both of these described platforms have orders of magnitude more functionality in their 'bazaar' app-stores than the foundation itself. The foundation enables the market to work, but in itself it is simply a ver…
Paris was substantially redesigned as a planned city by Haussmann[1]. London is a better example where the street plan is pretty much unchanged. [1] http://en.wikipedia.org/wiki/Haussmanns_renovation_of_Paris
Re: A Generation Lost in the Bazaar
#286Earlier quoted context omitted.
Some software is extensively designed up front, like embedded avionics programs. The resources are made available because folks like the FAA demand it. Why don't we employ rigorous software engineering principles to, say, iOS games? It would be a waste. It could be done, but in practice, people just don't care as much if a game on their phone crashes as they do if an airplane they're riding in crashes. There's a wide…
You are not even in the same zip code as the point I'm trying to make, which, I guess, sort of makes my point. 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 precise…
It's very difficult to learn when everyone is just ranting.
Re: A Generation Lost in the Bazaar
#287OK, I'll make a couple of general observations here. 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, ins…
Ok, pre-1990 person here, and the piece resonated quite strongly with me. But I note that there is a third axis which isn't well covered, which is 'volunteer' vs 'paid'. It is important to note the distinction between FreeBSD's package system and say Debian apt. In FreeBSD I can make from source some package, and in Debian I can apt-get install a package, because the Debian packages are prebuilt it just comes over in…
It's also a matter of what people are willing to pay for. Even (or perhaps especially) in commercially supported software, cleanups only happen if there is a strong business case for the cleanups. And if the cost of buying an extra build machine to run long complicated configure scripts is significantly less than the engineer time to re-engineer a new autoconf system from scratch, in many companies (and certainly most starupts) --- it won't happen.
The OP cares very much about code quality as a good and important thing in and of itself. But that view isn't shared by many business people, or by many programmers in general, for better or for worse. Some have argued that OSS code tends to actually be _better_ about code cleanliness, because it's public, and people do care about making sure that their code is clean. (I've never seen the proprietary source code for the Oracle DB, but there are many stories out there about how horrible it is from a code cleanliness perspective.)
Also, the OP seems to care a lot of lots of extra library dependencies. The big problem here is that a lot of people don't really care if their package uses perl or python as part of their build scripts/makefiles --- or even if their package uses perl _and_ python scripts. The OP cares, but for better or for worse, most people don't. And I would wager this is likely true at most companies where programmers are paid to maintain the source tree as well!
Re: A Generation Lost in the Bazaar
#288Earlier quoted context omitted.
FreeBSD grinds on one until it definitively works. And what happens if it never works?
An example: libkse was an attempt to implement M:N thread scheduling. This is something that can, in theory, provide significant benefits over 1:1 thread scheduling, but in practice, is extremely complicated to implement and has fallen out of favor across the board: Solaris abandoned the approach in Solaris 9, and FreeBSD abandoned it in (IIRC) FreeBSD 7. Concurrent to libkse, libthr was developed by David Xu, and wa…
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.
Re: A Generation Lost in the Bazaar
#289Earlier quoted context omitted.
He's also a little bit fond of personal attacks.
A bizarre feature of some of the developer mailing lists and Usenet groups is the absolutely hateful vicious toxic nature of them. OP's site bikeshed.org ( http://bikeshed.org/ ) has some nice proposed features for software that posts to large audiences. +------------------------------------------------------------+ | Your email is about to be sent to several hundred thousand | | people, who will have to spend at lea…
Why is it wrong? For example, consider the second message. Suppose you haven't read all the messages in a thread because you've been on holiday for the previous few days. But a friend pointed you to a message in the thread which specifically mentions your name, asks "could you verify this for me?", and doesn't have any followups?
Why should your newsreader force you to read all of the thread in order to answer something which isn't in the rest of the thread? Yet the only option there is "cancel".
Furthermore, "at least 10 seconds" is completely wrong. People killthread, plonk people, and develop other ways to ignore discussions. Assuming 4 hours per day means people can handle at most 1440 messages. There are 276 comments already in this thread, but I expect most people sampled a few messages on each major branch, skimmed a bit, and perhaps did a text search to see if someone mentioned a key word. Most assuredly, the entire HN readership did not read this entire thread.
Re: A Generation Lost in the Bazaar
#290Earlier quoted context omitted.
An example: libkse was an attempt to implement M:N thread scheduling. This is something that can, in theory, provide significant benefits over 1:1 thread scheduling, but in practice, is extremely complicated to implement and has fallen out of favor across the board: Solaris abandoned the approach in Solaris 9, and FreeBSD abandoned it in (IIRC) FreeBSD 7. Concurrent to libkse, libthr was developed by David Xu, and wa…
I was intimately involved in those discussions and decisions. 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 th…
That said, given your response, I think perhaps still don't understand the meaning behind your cathedral/bazaar dichotomy.