Live data from Hacker News

A Generation Lost in the Bazaar

queue.acm.org

131–140 of 353 posts

Re: A Generation Lost in the Bazaar

#131
post #48
post #17

Earlier quoted context omitted.

... but evolution will also quite happily run you over a cliff which you have been avoided if intelligence were applied. Not to mention the fact that the bazaar is never going to put a man on the moon. And yes, I wrote that piece.

> 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…

>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.

Re: A Generation Lost in the Bazaar

#132
post #79
post #58

OK, 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…

Why don't you talk about a few current "Cathedrals" and how they're different from "Bazaars", that might help the discussion too. The only example that jumps out at me is the original Unix, and I think you'll agree that comparing software from 30 years ago that does vastly less than ... pretty much anything out there these days is not an entirely fair, nor useful comparison.

Varnish (http://phk.freebsd.dk/misc/_book2.pdf)

Re: A Generation Lost in the Bazaar

#134
post #114
post #110

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. Their inscrutable beauty is buried under tons of libraries nobody will ever touch for fear of breaking 20 years of development efforts, exactly like what happens in the Unix world. Their move to the 64-bit world was painfully slower than what their fellow m…

Windows and Office are actually not examples of cathedrals, because the architectural focus of Microsoft was not on software but on a near-monopoly market. 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.

This sounds a bit "No True Scotsman" to me. Most commercial projects that I've seen eventually grapple with the same sorts of issues that you mention. When they've faced diverse deployment environments, the results have often been worse than autoconfigure, from what I've seen. I guess that's because they aren't cathedrals, since the businesses behind them were focusing on market-demands instead of whatever it is that Cathedrals focus on?

Your remarks are essentially Ad Hominem regardless of whether you single out 1 man or 100 individual men.

Re: A Generation Lost in the Bazaar

#135
post #74
post #21

As someone who grew up as a programmer with assembly language, C, and C++, learning the good practices needed to make a 1 million lines of code C++ application work and be maintainable: I've been equally disgusted by the evolution of programming in the last few years. HTML - which is, to a first approximation, always invalid. JS - which needs jQuery to make it mostly-but-not-completely cross-compatible among browsers…

Nitpick: jQuery exists to make the HTML DOM manageable, not JavaScipt the language. (There are libraries targeted at javascript the language, but you could make an argument that that's the point of all libraries for all languages...) I find jQuery more analogous to tools like configure and autoconf. (in that they aren't actually needed for "modern", standards compliant browsers.) As an example: there are already many…

I don't mean Nginx or Varnish are more hackish themselves than Apache. I could have said Apache instead of Nginx, but I think

Back in the day, a "serious" application usually involved a large amount of quite homogeneous source code in a single language (or 2 or 3 different languages for different tasks: C/C++ for the main code/engine/logic, assembly for performance-sensitive code, and maybe some custom high-level script for high-level application logic). This was built usually on a single machine with a single build script, and resulted in some binary which could be deployed.

Even early web apps were more akin to this model - Java apps, or even Perl apps.

Nowadays, an "app" lives distributed among dozens of servers and client types. People describe what they have: "12 memcaches, 5 varnishes, 8 nginxes, 5 app servers with Ruby, 4 static content servers, and a MySQL master server with a fallback master and 5 slaves for reads. Separately, an Android app, an iPhone app and an HTML5 front-end."

These systems started as a single app in a single box, and have "grown" for scalability, reliability and security, being patched up with different pieces of technology put together with often unreliable methods but fallback mechanisms that make it more resilient that if reliable methods were used but no fallback. It's not so important nowadays that the application code be clean, elegant, or failproof, but that measures are put in place so that the service will keep chugging along most of the time.

And setting up the whole system from scratch involves a manual with probably hundreds of steps putting together haphazard technologies, installing different types of Linuxes and packages for each piece. And may even involve difficult-to-replicate steps, such as using an AMI to launch EC2 instances, where the engineer that created the original AMI doesn't even work here any more and recreating it from scratch would involve 20 packages, Googling for 5 of them as they're not available in normal repositories, 5 manual patches, two secret incantations and a tribal dance around the chair while singing and praying to arcane gods of long-forgotten package managers.

{{Side-note: although it's not the main point, I'd definitely say Objective C is more hackish than C++. C++ has its own amount of weird stuff due to being built on top of C and its evolution with templates, etc... but the evolution of Objective C is done much more in the form of "patches". Even the original syntax takes advantage of awkward gaps in the syntax of C (@interface, @implementation, #import, [object msg:param]?). But it's even worse how new features are piled on top of old ones: properties, ARC 2.0, etc... it's distinctly noticeable when you just wouldn't feel comfortable teaching programmers new to Objective C how to use ARC, without learning the underlying memory management model first. In C++, people can learn "new" and "delete", and never hear about malloc()/free(), and there's no problem at all.

Anyway, my point about hackishness was not referred to ObjC, but to how whole systems are engineered nowadays.}}

Re: A Generation Lost in the Bazaar

#136
post #48

Earlier quoted context omitted.

> 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…

>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 collecti…

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?

Re: A Generation Lost in the Bazaar

#137
post #114
post #110

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. Their inscrutable beauty is buried under tons of libraries nobody will ever touch for fear of breaking 20 years of development efforts, exactly like what happens in the Unix world. Their move to the 64-bit world was painfully slower than what their fellow m…

Windows and Office are actually not examples of cathedrals, because the architectural focus of Microsoft was not on software but on a near-monopoly market. 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.

You seem to be saying that an ad hominem is no longer an ad hominem when you substitute "a lot of you" for "you". The Latin may be singular, but I don't think you can expect English speakers to treat it as strictly singular.

Re: A Generation Lost in the Bazaar

#138
post #83
post #79

Earlier quoted context omitted.

Why don't you talk about a few current "Cathedrals" and how they're different from "Bazaars", that might help the discussion too. The only example that jumps out at me is the original Unix, and I think you'll agree that comparing software from 30 years ago that does vastly less than ... pretty much anything out there these days is not an entirely fair, nor useful comparison.

The fact that you and others cannot even spot any more recent cathedrals is sort of my entire point here...

Okay, I'll name one: the F-35 flight control software. Take of that what you will.

Now, I've not been working in the software industry since before 1990, so I'm obviously not qualified to comment, but I'll say this: I can understand why a cathedral model might be warranted. Even using something like CMMI might be a good idea in some cases.

But for a lot of things, especially exploratory/experimental things, the bazaar model is really nice and can reap significant benefits. And the nice thing about the bazaar model is that if you want to follow a cathedral model, no one is stopping you! Go off and be your own little dictator with a "grand unifying vision". Come to think of it, that seems to be what many of the most successful open source projects are: one (or a few) people have a vision of an itch they want to scratch, and they pursue it with a bloody-minded persistence. The bazaar only comes in when someone forks or in the fact that anyone can compete or (try to) contribute.

And BTW, I do know who you are, and have a lot of respect for you, but in some ways this article (and your comments here) could be read as reactionary against the success of Linux and other more open OSS; the BSDs have always been more insular (or discriminating depending on your POV) and developed like cathedral models than Linux; oddly enough this has resulted in three distinct BSDs while there is still only one Linux kernel. I will agree that reading Brooks (and other computer history) is almost always a good idea; just MMM was enough to open my eyes to how little the industry has progressed (VirtualBox/VMWare? That's nice; IBM was designing full system emulators for hardware that didn't yet exist in the sixties).

Re: A Generation Lost in the Bazaar

#139
post #73
post #64

Earlier quoted context omitted.

it's a prominent example of the "cathedral" model.

First, it's actually not, because their architecture is focused on architecting a market, not a computing solution. 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."

> Second, just because there is one bad example of a cathedral, doesn't mean the cathedral model is bad.

right, but this could be applied to your example of the "configure" script as an indictment of the "bazaar" model too. Surely there's software that's come from the "bazaar" model that you feel is of high quality ? There's none whatsoever ?

Re: A Generation Lost in the Bazaar

#140
post #112

Earlier quoted context omitted.

InstallShield was a created by a startup, to give windows-apps a non-insane way of installing themselves. Microsoft was forced to buy them, almost at gunpoint, by 3rd. party software developers.

Cool. Now if only FOSS would adopt a non-insane way of installing software...

100% agreement from here. Andoids idea of a uid per app is a good place to start.
Post reply on HN