Linux 'Awfully Cathedral-Like' - Java's a Bazaar
jg21 writes "LinuxWorld draws attention to a curious use of ESR's The Cathedral and the Bazaar by the Sun Microsystems exec who currently talks about Linux more than he does even about Java. Apparently Sun's President and COO Jonathan Schwartz said at a press briefing last week that Java with its JCP is more like ESR's Bazaar than Linux, which he dismissed as being "awfully cathedral-like" since Linus is the final arbiter (or Great Dictator), and not a committee." But be sure you don't mis-use the word Java in this Bazaar or the Mall Police will totally get you.
Linux is holy and Java is bizarre.
Sun is completely lacking in clue here, as always.
Sun, of course, feels heavily threatened by Linux and is merely spreading FUD in order to cement Sun's (TINY) market share and bolster Sun's (TINY) share price.
I have been an active member of the Linux community since its inception and we have been exorbitantly friendly to new users and developers. Sun, by contrast, makes you sign restrictive participatory agreements and agree to non-Free licences for community-owned code.
Sun is dead. Long live Linux.
I'm not Seth Finkelstein. I still speak the truth.
Windows is awfully cathedral like, because what Bill or Balmer says goes, and that's the only version of windows I'm ever likely to see.
Linux on the other hand, I can muck around in the code myself however I like. I can include other people's patches that Linus *does not* approve, or I can even change it myself (though between you and me, don't expect it to do a damn thing other than crash).
How is that cathedral like?
And how is java superior in any significant way?
Presumably this refers to the kernel itself and not the horde (hoard?) of packages and applications that sit around it.
"Linux" as most people understand the term is the 2-5 CDs full of software that makes a PC do interesting things.
And it's about as bazaar as it can be.
Sig for sale or rent. One previous user. Inquire within.
It seems to me that using generalisations on what development leadership strategy is best is wrong. I mean, look at the totally different method Linux has compared to Apache compared to any other successfull project. The deciding factor for success for each of these very different strategies is in how well it fits the people involved and how well it gets the best results through. One size does definitely not fit all.
Cmdr Taco's homepage was just Slashdotted! There is justice in the world!
... and I can definitely affirm that Java is bizarre. B-dum-chee! Thank you! Tip your waiters!
Seriously, Schwartz's bias is clear. The Java Community Process which involves committees of experts and interested parties does indeed yield enhancements to the Java API that are nicely featured and well thought out. But getting on those committees in the first place requires surmounting quite a hurdle. And in the end, Sun itself remains every bit as much a "final arbiter" to the core in which any enhancement runs, the virtual machine.
Anybody can fork the kernel. Most distributions do. Multiple threads of development happening independently versus everything having to go through a single party is what characterises the bazaar as separate from the cathedral, and this means that Linux is the epitome of the bazaar development process.
Pretty soon, Jonathan Schwartz is going to be taking over the "Plays the Rabid Linux Media Like a Violin" title from Darl McBride.
What I'm listening to now on Pandora...
I don't think that the original idea of the "bazaar" development model was "everyone does whatever the hell they want". You need someone at the top of the tree to decide what stays and what goes. The fact that this is a person and not a number of people is just a coincidence of the way that Linux has emerged, and doesn't represent a large divergence from the bazaar model.
In short: Shut up Schwarz.
apterous.org
The cathedral means developing inside a small circle and releasing only in great intervals. The bazaar means releasing all the time and letting lots of people submit patches. By that definition, the JCP is certainly more cathedral-like than Linux.
(Note that the cathedral/bazaar difference doesn't refer to free vs. non-free; the FSF's early free software was developed in a more of a cathedral model.)
I find when corporate CEOs openly attack the opposition it's from a position of fear and weakness more than anything. When you're attacked by your competitor, you're doing something right. Maybe I'm wrong, but I don't hear Jobs attacking Linux and it's in direct competition with OSX in the server market. What did he do instead? He embraces it. I'd love for Sun to enter the desktop market more like I think they want to, but they have to give up on the "let's replace MS" dream.
Luck favors the prepared, darling.
Hasn't it mostly been agreed that the successful OS projects are those where there is a lead developer who steers the project?
Frankly, I always hated the whole cathedral vs bazaar metaphor. I don't think it portrays well the virtues and faults of open source and proprietary software. I use proprietary software (MacOS + some closed apps) for the same reason I prefer to "dine out" rather than cook my own meals. I just want to choose something delicious from the restaurant's menu - and I don't care that my choices are limited. Yes, if you cook in your own kitchen, you can customize you meal the way you like it - as it is with open source software. But this will consume you a lot of time and effort, so most people would rather avoid it - unless they really enjoy cooking, have really to much spare time or are really short on cash. It's similar with Free Software - you use it if you really like to 'tinker' with everything or are really short on cash. But if you don't like the former and are not limited by latter, you will rather go to a store with proprietary solutions - where your choices are obviously limited, but you're saving time and effort. So I think restaurant vs kitchen is a better metaphor for proprietary vs free/open.
As the sainted Lindsay Marshall pointed out to ESR
at a conference some years ago, cathedrals (which
we know a bit about in Europe) weren't built like
ESR thinks. They were built over the course of
generations, by a sequence of random people, and
if you had the money to put up (say) a side-chapel
for your recently deceased son, you could do so.
In that sense, they are precisely like Linux: a
set of guiding lights, an overall architecture,
and a framework into which anyone with time and
money can put their additions. If you go to one
of the larger, more complex cathedrals in Europe
you'll see they changed massively in plan and
intent over the some hundreds of years they took
to build.
ian
I haven't written much either, but then I don't describe myself as "one of the senior technical cadre that makes the Internet work"
Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
Give me a cathedral over a bazaar any day. I can't think of a better situation than having a thoughtful, intelligent leader who considers all the input of the group and then makes moderate suggestions of what should be implemented. Linus is at the top because he's proven that he can make great decisions for such a large project. If he was ever to lose his naturally good judgement, he wouldn't be able to influence the multitudes of developers anyway. I count us as lucky to have him as long as he's willing to help.
Its amazing how someone can take a great concept and paraphrase it to complete bullshit.
ESR's distinction has nothing to do with closed or open, good or evil, or any moral judgement you ascribe to it.
The Cathedral is a small group working in isolation to a common and predefined goal. "In isolation" meaning not involving collaborators outside the group during development. ESR himself says "It's fairly clear that one cannot code from the ground up in bazaar style. One can test, debug and improve in bazaar style, but it would be very hard to originate a project in bazaar mode. Linus didn't try it. I didn't either." Open source projects general start in Cathedral style.
The Bazaar has everything open for collaboration from anyone during development. Some small group chooses and manages what does and doesn't go into the final "product", but there are only loose and informal goals. The product gets pushing into the shape of whatever anyone and everyone want it to be for them.
You can't modify Linux to do what you want. You can take the Linux source and make a derivation that does what you want, but its not the Linux that the rest of the world uses. Its not product development. Its not the Bazaar. The Bazaar is about contributing to a product, not forking it. The Bazaar is managed, it just doesn't look that way. The source tree isn't open for just anyone to modify, only to read, and to suggest modifications.
Java and Linux present an interesting case to which to apply TCATB.
Java uses a Cathedral style -- development on a revision is performed in isolation by a small group working to specified goals, then the result is released (with source code, but maybe not under your favourite license). But the determination of Java's goals uses the Bazaar style -- everyone gets to make their suggestion and have their say. Depending on community support (either in terms of being vocal or by contributing reference code or technically beneficial suggestions) the desired features may or may not be implemented during the next Cathedral phase.
Linux on the other hand uses Bazaar development. Anyone can hack on the code and contribute changes. But near the top there are a small group who are managing what changes do or do not make it into the official kernel, and ultimately Linus makes the final choice. So assuming that Linus and the patch managers have their own predetermined goals for Linux, the patches they admit to the official kernel tree are more typical of a Cathedral model, in that they are committed by a small group working towards a common and predetermined goal. Of course the argument can be made that Linus and co. don't have specific goals. I believe the truth is somewhere in between -- the goals of the patch managers change from time to time, but are (in the short term) generally predefined.
i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
A camel is a horse designed by a committee
You can also obtain and modify Java's code as you wish (see http://java.sun.com/j2se/1.5.0/download.jsp) but you can only *distribute* your modifications for the purpose of "research" (so not as part of a commercial product for example).
1 6#linux_is_an_open_source) has aspects of both the cathedral and the bazaar.
r /cathedral-bazaar/index.html) to be an essential read, but it's terminology is IMHO too obscure to be used effectively in discussions like this; I find well-known terms like "dictatorship" (Linux kernel), "meritocracy" (Mozilla.org, "Individual Expert"s on the Java JCP Committee) and "feudal" (GNOME.org) are clearer.
Java is "bazaar"-like because the JCP provides a mechanism for groups and individuals to create proposals to evolve or extend Java which are ratified by a committe (again of groups and individuals, essentially chosen in a meritocratic manner). This could be compared with Mozilla's team of super-reviewers.
Jonathan's point is that Linux (the kernel) is cathedral-like because decisions about changes to the kernel are made exclusively by Linus Torvalds.
Java has open processes for becoming a member of the change committee (see http://www.jcp.org/en/participation/membership) and for submitting proposals (see http://www.jcp.org/en/procedures/jcp2#1).
"Linux" in the broadest sense (see http://blogs.sun.com/roller/page/ColmSmyth/200411
I really find Eric Raymond's seminal CATB article (see http://www.catb.org/~esr/writings/cathedral-bazaa
http://blogs.sun.com/ColmSmyth/
Linux is developed the way it is because it works, after a fashion.
Java is developed the way it is because it works, after a fashion.
Now which method is better is impossinle to tell since Java and Linux do very different things.
If they were both operating systems, you might compare with a bunch of benchmarks, like number of computers installed with it, market share, job vacancies administrating it, whatever, and draw some conclusions. But they're not, so you can't.
This is a bit like saying my way of making ice cream is better than your way of making sports cars.
Perhaps Schwarz should put out the new open source Solaris' with his preferred bazaar-like development model and show Linus and the rest of us how it's done.
This is in a nutshell, FUD.
Sun is watching it's market share of Unix spiral downwards. Sun's solution to this problem isn't to innovate but to go after the competition.
It's the classic bare assed emperor...
Yes Francis, the world has gone crazy.
Schwartz is referring not so much to Linux the kernel, but Linux the OS that is installed in corporate computers - against which he actually competes. That means Red Hat, SuSE, and even other smaller distros, from MontaVista to JoesGarageLinux.com - Sun competes against Linux distros that have passed through Linus' compiler, because that's what corporations install. From that point of view, there is no bazaar, because Sun's corporate customers require the validation by Linus, backed up by each other's use/testing of it. The corporate cult of "me, too" is propped up by such crossreference. So Schwartz is disingenuous in his comparison, because the code Linus validates is collected from a widely distributed community, without Linus dictating priorities and policies. It's a cathedral erected inside a bazaar, with no doors in the doorways, and a loudspeaker preaching the gospel.
Personally, I don't like the idea that all of Linux depends on Linus. What if he gets hit by a bus (driven by a recently "retired" Microserf)? But the chaos ensuing from a disappearing Linus would resolve quickly, though possibly in a Great Schism with multiple inheriting popes across the Net, like *BSD. Time for a new paradigm to overextend, Jonathan.
--
make install -not war
It all comes down to community involvement. And both Linux and Java communities do a very good job at that.
Btw...
Have you ever wondered what would have happened if a more organizationally-minded person ran the kernel development?
Linus is very authoritative, and has yet to form an official public community/legal entity that develops and protects the kernel in the 10 year+ that he has been doing it.
What happens if he gets hit by a bus?
Heck what happens today when large factions of kernel developers disagree with him? ( Kernel debugger )
I am not saying Linus is doing a bad job; but couldn't the Linux kernel as an organization be a lot further than it is today?
Based on upvotes, Ageism is the only "-ism" Slashdotters care about and think isn't SJW
Whatever the claims about "Community Process", Sun runs Java and Scott McNealy runs Sun when it really comes down to it. I would suggest asking long term Sun folks(the folks that built that company and were there over 15 year ago) what they really think of that means of governance.
Say what you will about Java and Sun, but here's how I see things:
I'm much more productive writing Java code than C or C++ code, at least for the kinds of applications I build.
Java is well supported. Most often, how well a language is supported is just as important as how good the language itself is.
Sun has done an excellent job listening to the community and making sure Java continues to grow.
Java is perhaps the only serious competitor to Microsoft's .NET, and in my opinion, if .NET "wins", we all lose.
Suggesting that Scott McNealy has some kind of low level control over Java's growth is ridiculous.
All in all, I would say Java is an excellent technology with a bright future, and to fear it because "OMG OMG, evil dumb stupid Scott McNealy controls Java, OMG OMG, it sux0rz, it's proprietary, run for the hills!" is foolish.
Eric S. Raymond has just responded to Sun's Jonathan Schwartz and he says, among other things "any time [Sun] try to use my work to justify retaining proprietary control or argue that Linux is somehow less open, that's either culpable stupidity or dishonesty and they should expect to get kicked in the teeth for it by the entire open-source community, starting with me."
In the same way, you can put additions in Microsoft Windows, or in Sun Java. But, in order to do so, you must be a big corporation, you must pay, and it must be done according to Microsoft's or Sun's specs.
The reason people get confused about the Cathedral and the Bazaar, and why Schwartz isn't the first to consider Linux pretty cathedral like, is that the way real cathedrals were generally built pretty closely followed ESR's "bazaar" metaphor, with thousands of just-ordinary-folks with a huge variety of skills popping in to do their part. The architect/builder (or builders, for many cathedrals took generations to reach their final form) had far less control over the implementation than Linus does.
Eric really needs to take a step or two back and ask if he really said what he thought he said.
Sun could turn the standard over to an independent committee. They don't want to do that. You can argue the merits (or lack thereof) of their position but that's a different conversation and isn't comparable to Linus' control of the kernel (which is arguably an implementation of the POSIX standard.)
For the billionth time, Java IS run by a standards body - the JCP. Sun has a vote on future changes to Java, just like many other companies - such as IBM. JSR's are as valid a standard as anything POSIX.
Do you think IBM (or other companies) would have got so on board with Java if the process for changing the language was not open?
"There is more worth loving than we have strength to love." - Brian Jay Stanley