Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Mar 2002 13:12:46 +0200
From:      Giorgos Keramidas <keramida@ceid.upatras.gr>
To:        advocacy@freebsd.org
Cc:        Charles Burns <burnscharlesn@hotmail.com>
Subject:   Re: Advocacy help for CS professor
Message-ID:  <20020322111245.GA26042@hades.hell.gr>
In-Reply-To: <20020322013138.A87120@xor.obsecurity.org>
References:  <20020322013138.A87120@xor.obsecurity.org>

next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Charles Burns <burnscharlesn@hotmail.com> wrote:
>
> This person has the following additude:
>
> - Microsoft has money, therefore can buy the best programmers, therefore
> has the best products.

This a flawed argument, I'm afraid.  Microsoft does have a lot of money.
It can therefore pay the programmers a large amount.  This does not make
their programmers 'the best' though.  It merely means that they are paid
larger amounts than what they would receive in other positions.  This,
combined with the fact that 'the best programmer' is a very hard thing to
define in a way that satisfies both Microsoft's criteria and your
professor's criteria (not to mention, the requirements that third parties
might have), is hopefully enough to show that this is a flawed argument.

Is the 'product quality' always something proportional to the amount of
money paid for the job?  I am not so sure.

> - Microsoft is very successful, therefore has the best products (though
> he is not using the popularity alone as an argument as he does have
> extensive knowledge of logic)

Again, is the success of a company as a commercial entity, something that
can be used as a measure of product quality?  We, humans, are not always
cynical objective tradesmen, and do not always use the best tool for a job.
There are at times various reasons for using inferior tools for getting a
given job done.  Some of these could be a) the rest of the team that I'm
part of uses tool B, so I don't care if A is better, since I have to use
the same tools like the rest to interoperate, or b) I know that B is
probably faster, easier, lighter, better than A, but I like using A because
it allows me to have a picture of my girlfriend as a background image.

Other reasons for using inferior products are probably into play in many
areas of our lives.  For instance, we should never underestimate the power
of advertisement and good marketting.  It can probably be proven that car
model A is faster and safer to use than model B, but there are people who
would buy B anyway, because B is what they usually see when they open a
magazine.

> - OSS programmers could not possibly be as good as Microsoft programmers,
> because Microsoft sponsors such things as nat'l programming competitions
> and hires the winners/hires the best of class from top universities, etc.

This is probably a vicious self-preservingn cycle.  Programmers that will
take part in Microsoft competitions are those that already use Microsoft's
products to solve problems.  Therefore, it's programmers that already use
Microsoft's products that will eventually win those competitions.  Without
trying to lessen the Windows programmer of the field, I think that these
are not the only knowledgeable programmers out there.  The fact that some
Windows programmers are good at their work, doesn't necessarily mean that
there exist no other programmers who are also good in their work.

> OSS has Greenman, DeRaadt, Torvalds, Hubbard, Lehey, and others which are
> certainly among the top 100 programmers on earth. How to prove, though?

See above.  All these are people who know their stuff, and they know it
well.  The fact that they are not using Microsoft's products, does not in
any way lessen the value of their knowledge.  They are experts, but in a
different part of the computer related technology.

> - He is using examples of MS products being superior to other Windows
> products, examples in which he is right. Netscape 4.7* vs. IE4--No
> comparison. MS Office vs everything else--for it's intended audience, it
> really is the best. Media player, etc. He quoted Outlook Express, but
> being in the field he uses Eudora because of OE's jaw-dropping security
> record. I already made the Evolution comparison, but I really need more
> examples in which an OSS Unux product is superior.

Note that someone who contributes to open source projects might, and will
usually have more reasons to 'create' stuff than money.  However, since
open source developers are also humans, they do need to work too.  The fact
that they like working on open source projects is not always based on their
belief that all programs should be non-commercial and given away for free.
It is not hatred for the commercial world that drives the forces of open
source.  It is the need to be 'open'.  The people who work on open source
projects like the fact that they can 'see the code', understand how it
works, and extend it as the need arises to do their work.  Apart from the
reduced costs for obtaning the product (in binary or source form), safety,
security, extensibility, modularity, the different design of OSS products,
interoperability, and maintainability are some of the advantages that draw
developers closer to open source.  So, this is not all about money.

Safety & security
    It is hard to implement 'hidden features' in a program whose source is
    readily available for anyone to read.  We have read many times on the
    Web and elsewhere about 'hidden Easter eggs' in commercial programs.
    From a security standpoint, this is plainly *unacceptable*.  Who can
    guarantee to you as the end-user of a commercial product that the
    programs you are using do not have 'hidden features' that the vendor
    can use to retrieve information that is private, personal and very
    important to you?  Who can guarantee that there are no hidden features
    that can be exploited, by third parties (excluding you and the vendor
    of the code), to obtain, modify or otherwise influence information that
    belongs to you and only to you?

Extensibility
    It is easier to extend a program, when it's source is available.  One
    can argue that commercial products usually provide ways to extend their
    basic, out of the box functionality.  This is not always true though.
    The ways that a program can be extended and improved are limited by the
    interfaces that the vendor has chosen to provide, and are also limited
    by the design decisions of the vendor.

Different design & interoperability
    Open source programs are designed and built in more modular ways.
    Every program is designed to do one thing, and do it well.  This is
    assisted by the fact that other open source programs are easy to work
    with.  Commercial products tend to become monolithic monsters that
    strive to conquer the world.  This is an interesting side-effect of the
    fact that commercial vendors can not work together to develop solutions
    and products that interoperate smoothly.  They try to hide the way
    their products work, because this is what they bet on to make money.

    On the other hand, open source programmers have nothing to hide.  The
    source of their programs is there, right in front of the critisizing
    eyes of all the interested programmers, to read, check, test, debug and
    stress to the point of breakage.  Knowing how an open source product
    works, is very helpful and allows programmers of other open source
    products to write programs that work together in a much more smooth and
    clean manner.  They don't have to "guess" how to make their programs
    work together.  Commercial vendors do not always have this luxury.

    This results in open source programs that can work together, in clean,
    well defined, standard ways, and commercial products that are closed,
    black boxes, that might or might not work together, depending on the
    design decisions made by the vendors when they wrote their programs.
    Being not as easily extensible, as outlined above, doesn't help much
    with this either.

Maintainability
    This is probably an advantage that is more appealing to users of
    commercial products that provide value added services or products of
    their own.  For instance, companies that base their products on the
    products of another company.  It does happen at times, that a company A
    uses a product of company B, to do something.  Then company B falls off
    the face of the earth, and as it disappears, it leaves company A with
    the following choises:

      1. To stop using the products of the (now gone) company B, and start
	 looking for some other company C, on whose products they can base
	 their work on.

      2. To develop a replacement of B's products in-house, because they
         can not afford to throw away all the investments they have made to
	 make their favorite product work.

    This is a true senario, which I've seen happen at least twice, in two
    different companies.  And it's not that I've been working for too long.
    A couple of years was enough to let me see what happens when a company
    shuts down, and stops selling their products.

    If, and this is a big requirement, the B company had opened their
    source, then company A could continue developing their own products,
    even if company B stopped supporting them.  Hiring contractors to
    extend an open source program, is usually cheaper than throwing away an
    entire product line, and starting a new one, based on a new vendor's
    commercial products.

You can probably come up with other reasons why open source program is
better to use at times.  The http://www.opensource.org/ site has a few
interesting essays on the topic.  You may find it amusing or useful to see
what others have to say about the commercial vs. open source quality topic.

> - He says Unix is fragmented, therefore cannot have a unified vision and
> focus, and that this automatically makes it inferior to Windows which is
> under one company with theoretically one vision and focus.(to own
> everything :-)

This is partially true.  The UNIX world in general, includes such diverse
and different members as Minix, Linux's many distributions, BSD Unix in
it's many incarnations, like BSD/OS, FreeBSD, NetBSD and OpenBSD, SunOS &
Solaris, AIX, IRIX, HP/UX, Xenix, Ultrix, SCO, and a ton of other UNIXes
that I forgot or haven't heard of.

The Windows world is not less fragmented though.  It's been through changes
of lesser or bigger importance, from Windows 3.0, 3.1 & 3.11, then Windows
95, 98 & NT, up to the current Windows NT, 2000, ME, and XP with their
Professional, Desktop, Server editions, or what have you...

What is important to note here, is that UNIX versions can and usually do
interoperate nicely.  They do have incompatibilities that will bite the
unwary administrator or user.  But this is something that can also be said
about the different Windows versions, so the 'fragmentation' argument
equally applies to the Windows part of the world.

If you are still reading, after this long post,
thanks for your attention :)

Cheers,

Giorgos Keramidas                       FreeBSD Documentation Project
keramida@{freebsd.org,ceid.upatras.gr}  http://www.FreeBSD.org/docproj/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (FreeBSD)

iD8DBQE8mxGt1g+UGjGGA7YRAqGCAJ4uVQ+bFuFaVqGOSnu4g/6mP6Z1qACdFzRl
SlXhVCwQ0/L1qWujyAPWuMs=
=4UtC
-----END PGP SIGNATURE-----

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-advocacy" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020322111245.GA26042>