[WOS] Fwd: <nettime> The Cathedral and the Bizarre

Hendrik Naumann wos@mikrolisten.de
Sun, 16 Jul 2000 18:46:20 +0200



----------  Forwarded Message  ----------
Subject: <nettime> The Cathedral and the Bizarre
Date: Sun, 9 Jul 2000 15:05:39 -0100
From: "nettime's_roving_reporter" <nettime@bbs.thing.net>
To: nettime-l@bbs.thing.net


<http://www.macopinion.com/columns/macskeptic/00/07/07/index.html>

                       The Cathedral and the Bizarre
   07 July 2000
   by Jeff Lewis
   Contributing Columnist

   The OpenSource movement is one of those things I both love and
 hate. I love the concept - it harkens back to the 70s and how I got
 into computing. It was a time when almost no one actually owned a
 computer; we shared access to systems which ran Unix and MTS and
 other esoteric OSes, or we borrowed time on PDP-8s, and PDP-11s when
 the University would let us have it. We didn't compete about brand
 of computer - who could afford our own computer? - we engaged in
 friendly competition trying to improve each other's code.

   That all changed in the late 70's when a young programmer actually
 had the audacity to sell his BASIC interpreter to the other
 programmers rather than just giving it and the source code for it
 away. He went away and sold it to Altair and Apple and well... the
 rest, as they say, is history. With the IBM-PC making microcomputing
 respectable in 1981 (running an OS owned by, although not written
 by, that same young programmer), the die was cast and computing was
 changed in a fundamental way. Creating software, even for
 recreational purposes, was tied to making money - and nothing kills
 the notion of community faster than putting a price on it.

   Some people, like Richard Stallman, have always tried to keep a
 bit of this spirit alive - admittedly, it must be like fighting
 uphill in an avalanche. But it wasn't until Linux that the
 OpenSource movement really kicked in. Sure, there were lots of other
 OpenSource projects before Linux - BSD, GNU, and while Linux relies
 on GNU for a lot of its tools, the truth is that none of these
 projects ever managed to capture the heart of people like Linux.

   Which leads me to the 'hate' part. There's a growing fanaticism
 within the OpenSource community which is starting to smell almost as
 bad as the fanaticism it tries to combat.


   Bruno! Never kill a customer!

   Eric Raymond's comments at MacHack were wonderfully telling in
 several ways. He criticised Mac programmers for being too focussed
 on user interface and criticised MacOS for intertwining the UI with
 system functionality, making it harder for new programmers to get on
 board writing MacOS apps.

   Interestingly, the number one problems with Linux, from a consumer
   perspective, are that it doesn't have a standardised UI; its tools
 are simply too difficult to use and configure, and it requires far
 too much upfront learning to get up to speed. The last is the most
 telling: the Linux model moves the cost of learning from the
 developer to the user.

   As for upfront developer time, well, that's true - it is harder to
   learn MacOS than it is to learn, say, the ANSI C libraries... but
 in truth, Raymond overstates the issue. In fact, MacOS can be
 divided in several large chunks. I regularly write 'console' apps in
 MacOS to do little tasks which don't warrant a lot of UI. I also
 have several shells for drag and drop functionality which handles
 all that sort of stuff. In fact, I tend to stick to the ANSI C
 libraries. There are some deficits in MacOS, relative to the
 'standard' libraries - MacOS has overwhelmingly complex networking
 support compared to sockets and streams, but it also offers more
 complex functionality.

   Ironically, it's the focus on UI, perhaps taken to obsession,
 which gives MacOS its edge over... well, it has to be said this way
 - over all other OSes. Windows comes close, but misses simply
 because Windows developers really do not have that obsession to make
 the UI perfect. Linux and the various X-Window interfaces rarely
 even come close. The obsession with sticking to a standard behaviour
 means that MacOS users experience a consistency of behaviour that no
 other OS can offer (although again, Windows is getting closer -
 Linux is not even close).

   Why the obsession? Simple. The customer is the reason for the
   software. The customer must never be punished for choosing your
   software. That means that the UI experience must be compelling. It
 has to be refined. It should, as much as possible, anticipate
 without being annoying (which is where Windows applications -
 especially Microsoft's - fall down... They're just a little too
 eager to anticipate and help). The customer isn't likely to be using
 just your software, which means you have to play nice with the other
 software. You can't strongarm the customer by only supporting a
 proprietary format. You can't have a wildly different UI and
 behaviour because you'll throw the user off.

   At least Raymond does admit that the OpenSource community can
 learn something about UI from Mac programmers... I hope they can
 also learn something about real world customers.


   Herding Cats

   Sure, it's getting better, but let's put this in perspective:
 Linux has been around for five or six years. The IBM-PC was created
 in 1981. The Lisa was released in 1983. The Mac in 1984. By 1985,
 Microsoft, Digital Research, Commodore-Amiga and Atari (by way of
 DRI) all had GUI based computers, or GUI based interfaces for their
 computers, and had established guidelines for UI. Admittedly,
 Microsoft's was particularly bad (trust me, Windows 1.0 was
 stunningly horrible), but then Microsoft - even though their own
 developers hated it - managed to evolve and improve it. In five
 years, we went from no computer having a UI to all computers used by
 the general public having a GUI based OS - and three of four being
 pretty decent ones at at that.

   Linux, on the other hand, pops up around 1995 after the GUI market
 had twelve years of development - and promptly reinvents the wheel
 and badly at that. (In defense of Linus Torvalds, he wasn't trying
 to build a consumer OS, he was trying to create a freely available
 Unix-like kernel in the spirit of Andrew Tannenbaum's Minix, which
 had been the hot mini-OS on Atari and Amiga computers...)

   The core 'advantage' Raymond puts forward, many programmers
 improving the code, many eyes looking for bugs, is also its chief
 weakness. Programmers - at least the kind who are likely to get
 involved in OpenSource project - are a notoriously independent lot.
 They love to do their own thing and always think they have a better
 way to do things.

   Normally, this is an advantage because, with filtering and
 discipline, this is from whence the fountain of creativity which
 drives this industry comes. Unchecked and unfiltered, though, and
 you have unbridled chaos. As a result, you have no less than six
 different desktop systems and two different configuration systems
 and tools whose command line options change not only from system
 flavour - but from revision to revision. Perl is the best example of
 this - when they went to version five, they changed the language
 syntax in a way which broke existing code. Perl itself is a
 testimony to the OpenSource mindset - it's a gruesome mishmash of
 inconsistent syntax and function calls - definitely a product
 designed by committee - but one wherein each member clearly wasn't
 listening to anyone else.

   Raymond touts the stability of Linux as proof of the OpenSource
   concept, but that's a bit misleading. The core of Linux was
 written by one person - Linus Torvalds. Moreover, there is a small
 group who shepherds the contributions to the kernel to keep it
 stable and clean. In other words, there's a priesthood at the top of
 the bazaar. If you check into each successful OpenSource project,
 you see the same thing: a small group of referees who filter the
 input and weed out the bad ideas. The bazaar has cops. The chaos is
 contained.

   When you get a company the size of Apple or Microsoft, you have
   thousands of developers who do peer review of code. You have the
   referees who determine what goes in to a product and what
 doesn't... but they have one thing that the OpenSource method
 doesn't: they have markets to answer to.


   Who ordered that?

   See, when commercial developers create a product, they start by
 trying to solve a problem that customers need solved. The focus is
 always on the customer. What do they need? What do they want (which
 isn't always the same thing :)? Can they use this software? How much
 handholding will they need to make this work? Can we make this
 experience so great that the competition can't sway them back?

   This last is another flaw with OpenSource - the lack of
 competition. Let me start by saying that it's very weird to be
 saying this - I'm not a big fan of the competitive model, but there
 are times when it works. The advantage of competition is that it
 keeps you on your toes. It forces you to pay attention to what the
 consumers want. Yet in OpenSource, there isn't really any direct
 competition. Everything goes into the pool, good and bad. If you
 have a good idea, everyone else gets that good idea and it gets
 merged into all products - even the bad ones. This means that the
 real differentiation for OpenSource isn't marketshare or even
 marketability, but simply whether or not it can garner a following.

   That tends to happen whenever someone first solves a problem.
 People jump on the bandwagon and promote the software, and the crowd
 grows and grows - often way out of proportion to the quality of the
 solution. Perl, again, is an excellent example of this. It's really
 a terrible language - badly.. ok... not designed, clumsy and
 arbitrary. But it works - is better than shell scripting, and more
 powerful than awk... and it was the first serious attempt at such a
 language. So it went platinum with a bullet.

   The problem there is that the 'capitalist trench' problem is just
 as real in OpenSource as it is in commerical product: once a group
 buys into a specific solution, the cost of changing grows with time.
 That's true even if the software is 'free' because the maintenance
 costs and time to convert to another solution are not.


   You want fries with that operating system?

   The other core point Raymond tried to make is that software is a
   service industry. To be honest, this is a disturbing concept in
   several ways.

   First, let me ask you a question: if you make your living by
 selling service on software, what's the motivation to make the
 software as easy to operate and maintain as possible? The answer?
 Well - not much. And so we have Linux. Very powerful. Very flexible.
 Very hard for average computer users to configure and maintain.

   Now, that's not to say that commercial developers always have a
   motivation to make their software easier... I would argue that any
   software which needs a certification program is bad software. Any
   software which needs an entire section at Chapters (errr, Computer
   Literacy... Barnes and Nobel) devoted to rack after rack of MSCE
   books, cheat cards and training CDs (and it's not just Microsoft -
   Novell started this idea, but everyone is getting into it - Cisco
 just joined the gang) is badly written from a user's perspective.

   Actually, let me go back to Cisco for a moment. Cisco used to have
 a great freeware configuration tool. You could download it from
 their website. That tool has quietly vanished and has been replaced
 with CiscoWorks and of course, Cisco certified training. A very
 ominous trend.

   There are also many kinds of software which have lifespans just
 too short to make it sensible to bind the customer in a service
 agreement. Games are a good example. Most games are onetime sells.
 You can do a little addon with cheatbooks, or tie-in products, but
 for every Quake, there's a thousand other games which get a moment
 of success, then fade away.

   While Raymond cites Doom as an example of a product which revived
   itself by going OpenSource, he conveniently forgets that Doom was
 a very successful commercial product for a long time - both as
 shareware and commercialware. It was after it had saturated its
 market and had been surpassed by newer games and technologies that
 the authors decided it could be put into OpenSou rce, both to give
 new game developers a hand learning some of the tricks and to let
 people who just wanted to play around have a toy. It did generate an
 aftermarket, but it's questionable as to how much revenue that
 aftermarket generates.

   He does cite the large number of addon and tie-in products Doom
   generated, and yes, that's an argument for opening up a product to
   some degree - I'm all for open formats and interchangable files,
 but that's a long leap from fully open source on a commercial
 product.


   Quality means many things

   OpenSource fans tend to believe that they are quality fanatics,
 but what definition of quality are we using? To them, the most
 important kind of quality is stability - software shouldn't crash.
 The problem is that OpenSource software does crash. Does it crash
 less often than say, a Mac app? Well, probably, but most OpenSource
 projects tend to be much simpler and smaller than Mac apps and in
 general, tend to be very minimalistic. So they have the 'quality' of
 simplicity - for the programmer, but the lack of quality for the end
 user.

   The argument is that since everyone who uses the software has the
   source, if you find a bug you can fix it then submit the bug fix
 to someone and it becomes part of the product - if you can figure
 out who to contact. But there again, we see a confusion as to whom
 the customer is: most people who use computers do not know how to
 program in BASIC, let alone C or C++, and more importantly - they do
 not want to. They buy a computer to solve a problem - to get work
 done - not to debug someone's code.

   Ironically, when commercial developers release applications which
 are clearly not 100%, we accuse them of forcing the customer to be
 beta testers, but in a sense, OpenSource assumes you're not only
 going to be a tester; you're going to be a programmer and fix the
 bug!

   Raymond points out that Windows 2000, which reportedly shipped
 with 63,000 bugs, shows that OpenSource works because under Brook's
 "Law", the number of bugs is roughly proportional to the square of
 the number of programmers. Since Linux has 40,000 developers working
 on it - there should be 2 billion bugs in Linux. The flaw is that he
 perceives Linux as a collection of small projects, but sees Win2K as
 a single monolithic application - much as he seems to see MacOS. In
 reality, Win2K and MacOS aren't monolithic. They are composed of
 many smaller parts which are handled by smaller teams. Much like
 Linux.

   As for comparing bug counts - at least Microsoft has a bug count.
 If Raymond had bothered to check the number, he'd have found that a
 rather large proportion of the 63,000 bugs are cosmetic - and none
 were considered 'showstoppers'. We don't even have a way to
 determine the real bug count for Linux since there's no central
 repository for this sort of information.


   There is another system...

   Apple has taken the fruit of the OpenSource movement - BSD Unix,
 and added their own proprietary components which address the
 shortcomings of BSD, from the perspective of the typical Mac user.
 They're bringing UI consistency to the 'Wild West' and making a UI a
 required part of the Unix experience. Old time Unix fans will find
 this unpleasent and even undesirable, but this is the future.

   Eric Raymond made one other comment: that the elitism of Mac
   programmers is a danger to its long term survival... and I ask him
 - where has be been? This same 'elitism' is what pulled us into a
 GUI based world of computing. It's what made computing accessable to
 the average person. This sounds like a weird echo of the 'Apple is
 doomed' argument we used to hear so often - but in case he's missed
 it - Apple is still here and doing better than ever.

   Yes, OpenSource is important. Yes, it has much to contribute and
   provides a way for non-commercial development to happen.
 Personally, as I've said before, I think it's the most important new
 development in computing... but it's not the future until it learns
 who the customer is. Apple has made a couple of slips in that area
 with Aqua and the new Quicktime, but at least they admit that they
 made an error and have backed off. They embraced OpenSource and made
 it work for them.


   Not bad for a cathedral.
    
 _________________________________________________________________

     Jeff Lewis has been a programmer analyst for 24 years and
 started programming commercially about the same time Unix and the
 original microprocessor was released. He's worked on systems from
 DEC PDP-8/e's to microprocessors to mainframes although these days
 he limits himself to Macs and PCs for the most part. He wrote for a
 Canadian national computer paper for five years and his goal is to
 foster mutual understanding or at least tolerance between platform
 centric users and to remind people that computers are just tools,
 not lifestyles and definitely should not be religions.

#  distributed via <nettime>: no commercial use without permission
#  <nettime> is a moderated mailing list for net criticism,
#  collaborative text filtering and cultural politics of the nets
#  more info: majordomo@bbs.thing.net and "info nettime-l" in the msg
 body #  archive: http://www.nettime.org contact:
 nettime@bbs.thing.net

-------------------------------------------------------


Wizards of OS Mailinglist.  To unsubscribe mailto:majordomo@mikrolisten.de