Subject: Re: Why Open Source Sucks for the Consumer
Date: Wed, 30 Aug 2000 17:02:21 -0400

Tim O'Reilly wrote:
> wrote:
> >
> >Bob Young wrote:
> > >
> > >I never said Linux would not succeed on the Desktop.  Just not on the
> > >Desktop -PC-.  If it is to have a chance of de-throning Windows it
> > >only be because we've enabled a better platform to emerge.
> >
> > I think for Linux to have a greater impact alongside Windows requires
> > than a better platform. The community needs a better service model for
> > people and businesses interested in the use of Linux today, which was
> > real issue raised by Jean Camp. Linux/open-source has impacted the
future of
> > computing industry and the world has taken notice. People want to
> > and experience this for themselves. This is great for the
> > community. Collectively, we need to help them, like Jean, and the world
> > make the move to this open platform.
> >
> Suppose, for an instant, you broaden the discussion beyond Linux, as I
> constantly try to do when talking about open source.  All of a sudden
> the answer to how open source stacks up against Windows for usability
> takes on a whole new cast.  The impact has already been so huge that we
> take it all for granted.

But it isn't "against Windows", rather it is "against the strategy that
Microsoft wants to work for."

> What is the dominant application development platform today?  The WEB!
> What are some key elements of that platform:
> Web servers - we know that Apache has dominant market share, and helps
> keep the standards open and non-proprietary.

A point that I find interesting.  I have only seen old reports, but
while Microsoft makes a big deal out of having the leading https
server, if you group together the Apache derivatives (which mainly
differ in what SSL add-in they have), Apache wins again. :-)

Can anyone who has access to recent survey figures confirm that this
is still true?

> HTML - one of the great all time unheralded open source success
> stories.  Everyone (at least in the early days) learned by doing "view
> source."

Ah yes.  Demonstrating for once and for all that OSS is capable of
delivering lower quality software than proprietary companies. (/duck)

> Browsers - Well, proprietary software dominates there, though a strong
> argument could be made that the open source/linux community blew a huge
> opportunity that was handed to them when Netscape went open source, to
> lackluster support from people who were intent on rebuilding the old
> application platform (a desktop OS) instead of the new one.

I don't see it that way.  I see Netscape as being a demonstration of
the fact that for distributed software development to work, issues of
maintainability play a more immediate role than they do for proprietary
software.  You can tell an employee to come up to speed and work with
software they would rather not touch.  You cannot do that to a
volunteer.  Well you can, but they won't do it.

OTOH I agree that when the decision was made to rewrite, they should
have aimed for the minimal acceptable browser rather than a recreation
of Netscape Communicator.

> Programming languages - while Java is starting to take the lead, Perl
> and JavaScript are still incredibly important.  (Question:  why does no
> one take JavaScript seriously?  It's becoming more and more important to
> web-centric applications.  We see its importance growing as book sales
> go through the roof, but despite the fact that it came out of
> Netscape/Mozilla, the open source community seems reluctant to claim it
> as its own.)  Even on the Java front, the work of the Apache group with
> Sun is very promising.

I have had this conversation a few times recently, with people from a
number of backgrounds.  Is Java really taking the lead?

The most interesting variation was an impromtu debate in the Denver
airport waiting for a delayed flight.  The debate ended when two
bystanders came in and said that they were in the process of throwing
away Java initiatives and reimplementing in Perl.  (OTOH they had not
heard of "use strict;".  This bothers me...)

As for your question, a better one is why I find that good programmers
inevitably develop a distaste for JavaScript.  True story from Randal
Schwartz.  He was once on a panel with one of the founders of
JavaScript.  Most of the panel was spent with the founder (sorry, I
don't know who it was for sure) apologizing for the language.


JavaScript IMHO is fundamentally broken.  Here are a few of the
basic problems.

1. They typed neither variables nor the operators.  What "x+y" means
   is ambiguous.  If both variables are to be thought of as 2, it
   should be unambiguous whether the answer should be 4 or '22'.  It
   is not.

2. Significant incompatibilities.  Consider, for an instance, the
   event models that Netscape and IE use.  Neither violates the
   standard, but they are exactly opposite in the order of which
   elements will trap the events.  The result makes it virtually
   impossible to write interesting portable code.

3. Bugs.  Netscape's inheritance is seriously broken.  Oops.  You can
   bring various implementations to their knees by doing

     hello += "Hello world\n";

   a million times.  (You hit different bugs in different browsers, but
   try it a few times and you should manage a crash.)  Now try the
   equivalent in Perl.  Smart string handling is a solved problem and
   examples are out there to look at.  Why do people get it wrong?

4. Missing important features.  Suppose you want to run JavaScript in
   multiple frames.  Suppose that you have a potential race condition
   so you want to lock.  Please tell me how to write a safe mutex
   that does not kill the CPU.  Either you kill the CPU or you have to
   restructure all of your code to work off of an event driven model
   so you can hack something up with timeouts.  Oops.


The short answer is that people use JavaScript because there are very
few options for portable code.  You cannot easily get people to use
whatever you like at the moment because it makes your life convenient.
Doesn't make JavaScript a very good or pleasant language.  It is just
one without any good alternatives for many purposes.

> Applications - This is still hotly contested.  A lot of web sites are
> built almost completely with open source software (e.g., which
> uses Linux, Apache, MySql and Perl as its software stack); others, like
> Yahoo and Amazon, make very heavy, though not exclusive, use of it.  But
> once again, I see the Linux community largely taking its eye off the
> ball.  But for the Apache group, and various people in the perl and
> python communities, and new projects like Zope, we'd be unconscious
> before we hit the mat.  Microsoft is all over the next platform, while
> Linux is still trying to catch up with the last one.

Why does nobody say it?

OK, I will.  The web is a bad platform.  Honest.

It is widely available, you have no choice but to use it.  But as a
platform to develop for it is really sad.

There.  I said it.  Flames to /dev/null.

> And the irony is that Linux and other free OSes had the lead, didn't
> know it, and now has to play catch up on the web as well.

Had the lead on the client side?  Nope.  Had equality at one point.

Had the lead on the server side?  Yup.  Still do - one of the best
growth areas in fact.

> We need to own a different set of heroes, and canonize a different set
> of projects.  What happens with Apache and Mozilla and other web-centric
> open source projects is WAY more important to the usability question
> than what happens on the desktop.  (I should broaden that to say
> internet centric, because email, and soon chat-related applications are
> going to be hugely important.)  Heck, most people work in their web
> browser and email client as much or more as they live in any traditional
> office applications.)

I think that Bob's email hit on a critical point.

Linux will try, and have fun trying, but won't win on the desktop.  And
it really doesn't matter because Linux will win in the big picture.

That holds for open source in general as well.

Let me label four basic opportunity areas to make my point.

1. Desktop clients.
2. Servers aimed to be used by desktop clients.
3. Portable devices.
4. Servers aimed to be used by portable devices.

I don't think that open source will win the first battle in the
immediate future.  Microsoft has that one wrapped up for now.

Open source has already won the second.  Most of those servers are
running Apache.  A lot of them run Linux.  Many use applications built
in open source languages like Python and Perl.  More and more of those
applications will be built using components like Zope.

The word on the street is that Linux just won the embedded market.
But Palm is still the one to beat for the third.  However the actual
client programs are looking to standardize on something open. So the
third is won, winnable, or open depending on how you define that.

The fourth is one that Open Source is in a very good position to win
for all the same reasons that it won the second.  (Plus having won
the second gives it a nice lead!)

I believe that markets 2-4 are the ones with the best growth prospects
right now...

> I'm not saying that the Linux desktop and office apps are unimportant,
> just that they are behind the curve on where new functionality is being
> delivered.  Mapquest, for example, is a more important application today
> than Powerpoint.  Yahoo or (your favorite search engine here) may be
> more important than Excel for most users.

Layers upon layers.  Those applications are built on open source
components.  The applications themselves are not open source.

That does not surprise me.

For me one of the most insightful things I have seen on this was an
engineer talking about his impression of ESR's thesis.  Apparently in
engineering the closer you get to "basic infrastructure" the more open
things get.  But as you head towards consumer products it gets far more

He didn't see any reason that software will be different.  I have not
seen any since.  However neither will I claim to be convinced that
this need remain true.  Here is why.

What is different about software is that today's consumer application
becomes tomorrow's basic infrastructure.  (Think browser.)  So this is
a battle that has been won again and again.  However I do not see that
the recognized abstract importance of an issue turns into action.
Unless companies who depend on open source develop a policy of
proactively recognizing and dealing with what they think might become
threats, this is a battle that will continue to arise.

Said companies might just do that.

But unless they do this battle will come up again.  I guarantee it.

> The other issue here is that we have to redefine what "open source"
> means in the days of hosted applications.  Do we want to download
> mapquest to our hard drives?  I don't think so.  But if it had open APIs
> and a process for submitting bug fixes that worked, we'd be a lot better
> off than we are now.  We need to shift the way we think about what
> matters with regard to usability and open source in today's world, not
> the world of 1995.

Who decides what bug fixes get used on their server?  If it is their
server, how do we get them to redistribute changes?

I don't disagree that thinking about this is important, but unless you
start putting public performance restrictions in, I don't see how you
can address this.

If you do start writing licenses involving public performance, you get
into some very thorny issues if you actually try to enforce it.  In my
eyes it puts free software on the wrong side of the Napster-music
industry debate.

> At the end of the day, the message I'd like to see us all carrying out
> to the world is that "open source sucks for the consumer" is a vile
> canard.  Open source has delivered more easy-to-use applications to
> users over the last five years than Microsoft by a country mile.  Every
> effort of Microsoft's over the past five years has been to duplicate a
> web platform that was originally developed by the open source community,
> and which represented the first real advance in usability since the
> Macintosh.  Web applications, which embed program actions in a set of
> documents, rather than the other way around, are a lot closer to the way
> ordinary people work, than any Microsoft or Mac-style application.

In the last 5 years Microsoft has been able to withstand challenges to
their desktop environment, compete with their copies, and has managed
to re-establish the application barrier to entry.  Despite the web.

They have too many cards to play on the desktop, trying to beat them
there may be fun but is a poor bet.  Challenge them anywhere that they
cannot play the monopoly trump, and they can be slaughtered.


PS Sorry for the rant(s).