[comp.windows.x] Reader's Digest/Publisher's Clearinghouse Software Giveaway

meo@stiatl.UUCP (Miles O'Neal) (03/01/89)

Why should we (not) put our code into the public domain?

This is not a discussion about whether ALL software should be
public domain, but pertains rather to utility-type software and
building blocks. In particular, it pertains to X11 widgets,
libraries and clients.

Obviously there are arguments in both directions. But before we
discuss that, I need to define the term "public domain" (PD) as
far as this article is concerned.

Public domain software - any software which is provided in source
format, and which is made available to the public for incorporation
into other products as the user sees fit, and which is available for
free (or for copying fees only). While this may not be an exact
legal definition of PD, it will work for now.

The primary considerations as I see them are:

I)   MONEY
   A) Anti-PD
        This is the classic reason for not releasing widgets, toolkits,
        and clients. Companies (or occasionally individuals) don't want
        to give up anything that might in any way be construed as an
        advantage over the competition. Many companies consider all
        source code to be trade secrets, or insist on maintaining all
        rights to it via exclusive copyright notices.
   B) Pro-PD
        Anyone using X11 is getting some benefit from public domain
        software. MIT, DEC, HP, and a host of others have placed an
        incredible amount of software in the public domain. Other
        companies have since contributed software to this growing
        PD pool called X11. Releasing software into the PD is seen
        much like venture capital - one puts one's own in hoping
        that others will do the same and that the net result will be
        a gain for everyone.
   C) Notes
        Note that either attitude may result in a self-feeding effect.
        If many people refuse to release any code, everyone else may
        retreat as well. Conversely, many people releasing software
        into the public domain may encourage others to do the same.

II)  IMAGE
   A) Anti-PD
        There are several image-related reasons for not wanting to
        release source to the public; these include pastacodephobia
        (fear of having one's code perceived as spaghetti), beanitis
        (letting the accountants decide such things), suitophobia
        (fear of being sued when someone misuses/abuses/breaks your
        code and then blames you), and machophilia (wanting to look
        like you run a tough shop).
   B) Pro-PD
        Among the image-related reasons to distribute source in the
        PD are pride (wanting to show off a good product), samaritanism
        (wanting to help out, especially since others helped you), and
        pragmatism (hoping to start/continue the process that keeps
        other people contributing). There could also be evil ulterior
        motives, but these are not germaine to this discussion.

III) OTHER
        There may certainly be other considerations, but I believe that
        most of the considerations relate to one of the above subjects.
        Some shops may be "closed" to the outside simply because they
        have always been so; either because that was "just how it was
        done", or for reasons now forgotten or that no longer apply, or
        that may apply in other areas, but not in this area. These may
        be the easiest things to deal with or they may be the hardest,
        depending solely on people's attitudes rather than facts.


I write software for profit; that is, I expect to make a living off
of it, at the very least. The companies for which I have worked have
all been for-profit companies; they expect to sell their software,
not to give it away.

Yet I believe strongly in PD software. (And not just as a consumer. 8^)
In a for-profit situation, products are for selling. But many things that
are developed are not sellable products. Most widgets, especially the
lower level widgets, are not sellable products by themselves. While these
may be construed as being part of a company's "competitive advantage",
they are not usually that big a deal. Most companies stand to gain more
by encouraging others to donate (by donating their own first), so that
they have less development time, than they do by hoarding these things.
The same arguments may be applied to many client programs, as well.

Additionally, it gets the company's name known in the industry, which
can help attract attention of people looking for jobs (of course it may
also attract attention to a company's better people, but if the company
recognizes their achievements and keeps them happy they have nothing to
fear; if not, they will lose them anyway). In a related fashion, as long
as the software made public is perceived as good and useful, the repu-
tation of the authors will grow, which is usually an asset to a company
as well.

I think one of the best examples of this type of public cooperation is
unix (tm). For years, unix people cooperated, traded software, etc, and
everyone's life was made easier. Yet at the same time, I feel that even
more should have gone on than did. Most places I have worked have wasted
a lot of time reinventing the wheel. When I find out that someone I know
is about to move into unix, I immediately offer them copies of my .login,
.cshrc, and related files, and personal productivity tools I have developed
or gotten from others, thus allowing them to become productive quicker
than they would have starting out with no help. I also make these available
in /usr/local or whatever passes for that on systems I am on.

Finally, as far as X11 is concerned, much of the work being done still
falls under the heading of research, or is just moving from research into
development and production. Most of this research, again, is of the type
that gains nothing for a company if kept proprietary, but can help a lot
of people if made public.


-Miles
gatech!stiatl!meo
meo@stiatl.gatech.edu