old-www/LDP/LG/issue33/bentson.html

335 lines
14 KiB
HTML

<!--startcut ==========================================================-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<title>The Proper Image for Linux LG #33</title>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#A000A0"
ALINK="#FF0000">
<!--endcut ============================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<h1><font color="maroon">The Proper Image for Linux</font></h1>
<H4>By <a href="mailto:bentson@grieg.seaslug.org">Randolph Bentson</a></H4>
</center>
<P> <HR> <P>
I get mail from folks about my book, the device driver I wrote for Linux,
and about articles I've written for <i>Linux Journal</i>. A few months ago I got one which said, in part:
<p>
<blockquote><font color="navy">
My boss is a great guy to work for ...[but he] is of the opinion
that Linux is the work of ``college punks'' and will not
consider it for serious work.
</font></blockquote>
<blockquote><font color="navy">
He had a nightmare with the MINIX file system and is permanently
convinced that UNIX simply cannot be trusted and that Linux is the
work of pimply-faced sophomores with time on their hands.
I got a good laugh out of that while looking at your picture
and reading your bio.
</font></blockquote>
I can only hope his laughter was kindly.
The opinions expressed by his boss weren't the first I've heard of
that sort. Nor, I fear, will this be the end of it. Nonetheless, I decided to take
a shot at confronting these claims.
<p>
I had suspicions that Linux contributors are a bright,
experienced and well-educated bunch of folks. The discussions in the
various Linux newsgroups and mailing lists aren't lightweight,
nor is the resulting operating system. My ``feel'' of the operating
system is that it's based on a lot of mature judgments and
there is some theoretical grounding in what's being done.
<p>
I gathered up a <A HREF="./bentson.html#credits">list of contributors</A> (from /usr/src/linux/CREDITS)
and sent off 241 notes. Partial text of this note follows:
<blockquote><font color="green">
I'm conducting a brief survey of fellow
contributors to the Linux kernel.
...
</font></blockquote>
<blockquote><font color="green">
It seems that products developed by students,
no matter how well designed and implemented
and no matter how qualified the students,
are regarded as having lower quality.
...
</font></blockquote>
<blockquote><font color="green">
But that's not really the case with Linux.
Almost from the start it has been more than just a school project.
...
</font></blockquote>
<blockquote><font color="green">
I'd like to investigate the educational backgrounds and current work
situations of the contributors.
</font></blockquote>
I sent my notes with some
trepidation--I didn't want to bother folks while they were working on
important projects, and I feared a lack of response.
<p>
I needn't have worried. So far I've received 103 replies,
many of which have included a few words of encouragement.
It seems that I wasn't the only one who wanted to respond
to unjustified complaints about Linux.
(Another 29 notes were returned with address errors.
I hope to see corrections to the CREDITS file.)
<p>
<h3>Education</h3>
<p>
The level of response was the first piece of good news.
The second was that I've been stunned
by how strong the development team is
with regards to both credentials and experience.
<p>
From these replies I found:
<p>
<ul>
<li> 1 had completed just basic public education (high school)
<li> 15 had attended college or technical school
<li> 23 had an undergraduate degree (B.S., B.A., etc.)
<li> 19 had attended graduate school
<li> 15 had a graduate degree (M.S., M.A., etc.)
<li> 9 had done further graduate work
<li> 19 had a terminal degree (Ph.D., M.D., etc.)
</ul>
That's got to totally demolish the image of college hackers--at least
the sophomore part of it. I figured I was an exception when I started working
on the Cyclades driver while avoiding rewriting my dissertation.
I thought, once folks were awarded a Ph.D.,
they would be busy with research, teaching or some other interest.
I guess Linux development may be the doctor's favorite hobby.
<p>
When I offered an earlier summary of these results,
my correspondent reported that his boss wisely intoned, ``those folks
are all academia and none of them have ever tried to run a business.''
<p>
<h3>Experience</h3>
<p>
I had sort of expected a comment along those lines and
fortunately I had asked a few more questions in my survey.
One hundred of the replies also reported the number
of years spent programming or doing system design.
<p>
<ul>
<li> 4 had 1 year
<li> 10 had 2-4 years
<li> 31 had 5-9 years
<li> 40 had 10-20 years
<li> 16 had 20+ years
</ul>
More than a few of us were programming before the integrated circuit
came into general use.
(Perhaps a mixed blessing--some of us may still suffer from
post-FORTRAN syndrome.)
<p>
As I noted earlier, I have also felt that Linux has benefitted from a
broad experience in its developer base.
Linux may be a first operating system for a lucky few,
but almost everyone (all but three)
claimed to be at least a skilled user of another operating system.
Eighty-three were skilled users of several other operating systems.
<p>
Nor was their contribution to the Linux kernel the first of that sort.
Twenty have contributed to another operating system and
another twenty-two have contributed to several other operating systems.
One reported:
<p>
<blockquote><font color="navy">
Speaking for myself, I had the same idea Linus did, but he beat me
to it. (I've heard others say this as well.) I knew how to build a
UNIX-like system from the ground up, and there was a need for it
for PCs. (Vendors were charging exorbitant amounts for poor products
in those days, and there was no good 32-bit development system for
386s.) I just didn't have the time. I had been playing with MINIX
when Linus showed up on the MINIX newsgroups, and it took off from
there. I can tell you that though I was a student at the time, I'd
been a professional systems programmer for many years before. So,
I and many others knew what professional quality software was,
as well as how to produce it. I think it turned out pretty well.
</font></blockquote>
<h3>Current Use</h3>
<p>
Finally, I wanted to know if the contributors were ``doing
Linux'' in their careers. Eighty-two said their current employment
was based on their computer skills. It was interesting to note that over a
third reported their current employment supported or relied on their
Linux development efforts. Sadly, two reported they were currently
unemployed, but one of those also noted that he was ``voluntarily
unemployed to have time to put my life in better order.''
<p>
Perhaps one significant difference between Linux development and
academic or commercial development is the duration of personal interest.
In an academic setting, a student typically has one term,
or at most one year, to work on any given program.
When programmers leave a company,
support is picked up by someone who has no sense of what has gone before.
There is greater continuity in the Linux community
because of the nature of submission and distribution.
No matter what is happening at school or
where one works day to day, contributors can keep in touch with progress on
their piece of the puzzle.
One person noted, ``Personally, I did start my code in school,
but that does not stop me from maintaining it now.''
<p>
<h3>Motivations</h3>
<p>
There are some other issues which weren't addressed by my survey.
Although it might not seem relevant to quality and performance,
a person's interest has a great deal to do with the outcome--it leads to
a distinction between ``craftsmanship'' and ``work
product''. Another person noted:
<blockquote><font color="navy">
``Intent'' is what I think all of these debates are
about. In the commercial world there is only one true answer
to ``Why are you helping develop Linux?''--``To make a
living.'' In the Linux community I'm quite certain the answer would be
more closely aligned to ``For me to use.'' The Linux community
tends to be self-driven and self-motivated, and that is what leads to the successes
and the apparent failures in our development environment.
</font></blockquote>
<blockquote><font color="navy">
We are not a company; we don't have any one person,
or group of people, setting the direction Linux will take.
That direction is set by those with the energy
to actually <i>do</i> something.
</font></blockquote>
Another motive, akin to what pushed me to first join the effort,
was shared by another respondent who said,
``When I wrote [my code] for the Linux kernel I was working at [my former
employer]. Linux use there was extensive, and I wanted to give something back.''
<p>
Motivation leads to the final, and most significant issue--one
which cannot be examined by a developer survey.
<p>
<h3>Quality</h3>
<p>
In a world driven by marketing, image is the basis for purchasing decisions.
Even if a good image could be established for Linux
by listing credentials or tabulating years of experience,
I'd be reluctant to shift to that level.
I'd much rather see acceptance and popularity for Linux
based on quality and performance.
<p>
Even though I hadn't asked specific questions on this topic,
a few people offered comments.
One note seemed to identify, however obliquely,
on what may be the key to Linux's success.
<p>
<blockquote><font color="navy">
In general, my experience is that most software I have seen which
was developed by students is not of the professional quality I would like to see.
On the other hand, much of the commercial software I have seen, which was developed
by professional software development companies, is also not of the professional quality I would like to see.
The difference is most people do not get to see the internals of
commercial software.
</font></blockquote>
Developing on this theme, another wrote:
<blockquote><font color="navy">
The reason Linux is stable and usable
is not because of its student programmers [or lack thereof].
It is because of the overwhelming feedback that
ALPHA and BETA testers provide. When you read the Linux kernel,
you will find many parts are poorly structured, poorly written and poorly
documented. However, people dared to test it and report their problems;
Linus and friends respected the error reports
and went ahead to fix them. That is why it works so well.
</font></blockquote>
<blockquote><font color="navy">
In addition, psychology sometimes causes weird effects.
If a user discovers a bug in his system,
reports the bug and sees it fixed eventually,
that user is happy because he was treated with respect.
Most likely, he is even happier than he would be
in the bug-free case.
</font></blockquote>
We not only need to bring the CREDITS file into an accurate state,
but we also need to acknowledge the thousands who have contributed to Linux
by using it and sharing their discoveries--good or bad--with others.
<p>
Peter H. Salus reports the UNIX philosophy in <i>A Quarter Century of
UNIX</i> as:
<ul>
<li> Write programs to work together.
<li> Write programs that handle text streams, because that is a
universal interface.
</ul>
I'd like to close by adding another entry,
suggested by UNIX and dominant in Linux:
<p>
<ul>
<li> Write programs you enjoy.
</ul>
<h3>Postscript</h3>
<p>
I just received a note from the person who sparked the original survey.
He reports:
<blockquote><font color="navy">
I took my ``hand-me-down'' Linux box, an
unimpressive 75MHz Pentium with 64MB RAM and a tiny 600MB HD to work. My
boss was amazed that office applications such as StarOffice were
available and was quite impressed when I read a Word
document with StarOffice and then converted it to HTML. Samba was another
revelation. Overall performance impressed him. In a few crude tests, it
outperformed a ``commercial'' system running with 128MB RAM, dual
200MHz processors and all ultra-fast/ultra-wide SCSI drives.
</font></blockquote>
<blockquote><font color="navy">
After a couple of callers indicated an interest in UNIX versions,
we checked the price of current systems. My boss decided
Linux was indeed priced right, and asked me to start on a port.
</font></blockquote>
It looks like we've won one more away from the dark side.
<p>
<a name="credits"></a>
<h3>Credits</h3>
<p>
Linux kernel developers are self-reported in the file
/usr/src/linux/CREDITS.
If their names weren't entered there, I didn't find them.
Furthermore, there are many more who contribute by testing various
development releases and reporting on the problems.
Sometimes they even report possible source code corrections,
but they aren't included in the CREDITS file.
<p>
Linux consists of much more than just the kernel.
There are a host of related programs,
such as those which are broadly distributed by the
Free Software Foundation for UNIX and other
operating system users, and others which support
only Linux.
<p>
It would take significant effort to identify all those
who have contributed to make Linux a success.
The Debian project reports who is working on that distribution,
but that's not enough.
I'd like to see a CREDITS file in every package and tar file.
I'd appreciate hearing of efforts along this line.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright &copy; 1998, Randolph Bentson <BR>
Published in Issue 33 of <i>Linux Gazette</i>, October 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./naden.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./wilson.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<!--startcut ==========================================================-->
</BODY>
</HTML>
<!--endcut ============================================================-->