A friend of mine asked me to provide some perspective on the definitions of various types of software. I am doing so in the form of Q&A. This document is made available under the Creative Commons-Attribution license.

Gordon Haff

Feb. 16, 2007

To start things off, where are you coming from on this?

I was a software developer from about the mid-Eighties through the mid-Nineties (although I do still do some development here and there). I sold "shareware" (Notably Directory Freedon) as well as releasing a number of "freeware" programs. I've also been an avid user of software from a multitude of sources since about 1982 when I bought my first PC.

You used a couple of terms above. How do you define "freeware"?

In the BBS world, freeware was pretty much any software that someone released without expectation of payment. Given today's world, however, that invites some further elaboration. For the most part--and I'm talking about the BBS world with which I was most involved--freeware was something that perople distributed in binary form. Thus, whatever the implicit or explicit distribution policies, it was't software that anyone else could modify/improve. But it was free, with no expectation of any sort of renumeration.

So it was mostly just binaries?

Yes, that was the most common. However, sometimes sources were made available as well. Perhaps most notably, magazines such as PC Magazine published utilities with full source code. The allowable use for all this was never spelled out explicitly so far as I know. However in practice, Tim O'Reilly's recent definition probably captures the intent: "You can use and redistribute example code from our books for any non-commercial purpose (and most commercial purposes) as long as you acknowledge their source and authorship. The source of the code should be noted in any documentation as well as in the program code itself (as a comment)." I think of it as a BSD-ish license--with perhaps an advertising clause (i.e. credit) tacked on as a matter of cultural courtesy.

Was freeware "public domain" software?

For the most part, no. You didn't see a whole lot of public domain code. People did tend to lump public domain in under the general freeware umbrella unless they were being atypically precise but, as I say, it wasn't a particularly important part of the landscape. I can't think of any significant programs that were released into the public domain.

How did freeware viewed relative to "Open Source"?

The comparison rarely really come up in my experience, simply because there wasn't a lot of explicit GPL or BSD code in the PC world until the very late Nineties. In my experience, the whole free-as-in-freedom culture just wasn't a part of the PC world until relatively late in the merger of the Internet and the BBS communities.

Why wasn't "Freeware" Open Sourced as it typically would be today?

I've thought about this question a fair bit and I don't think there's any single answer, but allow me to offer some non-exclusive hypotheses:

1. It was a matter of culture. BBS developers simply thought in terms of proprietary code, even when it was free. There was simply no formal Open Source model--in part because by the time of the GPL in 1989, there was already a well established BBS and PC development community who were accustomed to doing things in particular ways. In addition, even to the degree that there was an "Open Source" development paradigm--both formal and informal--in the Unix world, there was relatively little cross-pollination with the freeware/shareware PC development crowd. Code and such was shared on an ad-hoc basis, but there was essentially no "community development."

2. There was limited demand for it. Software in the PC world tended to be very specific to a particular hardware platform. Programming through the Eighties and into the Nineties tended to be at a fairly low level. Thus, there was a lot of specific code that applied to a particular type of PC--e.g. Apple II or IBM PC--that didn't lend itself well to sharing. Thus, merely having Open Source code wouldn't have particurly simplified moving an application to a different type of PC.

3. Narrowband communications. What I mean by this is that communications were far less rich than today, often isolated within a specific BBS within a specific geographic locale. There were various relay networks and such. However, within the private BBS world, there wasn't even really email as such. As I've said in the past, Open Source is in many respects a child of the Internet. The Internet may not have been a sufficient condition for Open Source to flourish; but it was a necessary one.

4. Lack of an Open Source ecosystem and toolchain. Programmers were largely dependent on a variety of proprietary and, at least somewhat, incompatible compilers and the like. Furthermore, most libraries of any quality were proprietary (and often quite expensive) as well. In other words, as a practical matter, source code was often difficult to build into working binaries outside of the original author's development environment.

How was "Shareware" Different from "Freeware"?

Poeple charged for shareware, whereas freeware was, well, free. (It's an interesting historical sidenote though that the term "freeware" was originally coined to refer to software, PC-Talk, that was actually marketed as shareware. Bob Wallace, who wrote PC-Write, is generally credited with the "shareware" term.)

Did people charge for shareware or did they just ask for donations?

The short answer is that they charged. An organization like the "Association for Shareware Professionals" (ASP) referred to it as "try before you buy" or "user-supported" commercial software. This was at a time when buying retail software was a shot in the dark. You read the magazine reviews and you took your chances. No (or very limited) demo and evaluation versions.

The longer answer is that individual authors wrote lots of different things in their license agreements ranging from language such as "if you use this program past the evaluation period you are required to purchase it" to language that fell on the donation or contribution side of the line. There was no organization governing these things and even the ASP, as far as I can recall, didn't force authors to require payment. Of course, absent meaningful enforcement mechanisms, the distinction between "contribution" and "required payment" could be academic. It did, however, tend to make a difference to corporate purchasing departments which is why most serious authors did set a price and treated it as mandatory rather than just setting out an open guitar case. A smallish percentage of people ever paid, but popular programs still brought in substantial revenue and there were even a few serious businesses built on shareware--though those were the exception. I probably brought in $7,000 a year or so (revenue) during the period when I was actively selling Directory Freedom.

(It's really hard to give a general answer here. You had a lot of software that was free for "non-commercial use" for example.)

Was Shareware fully functional?

"Back in the day," yes, for the most part. There might be reminders or other registration inducements (including bonus software and the like), but most shareware was fully functional. This was actually a rather hot issue at one time within the ASP, which was the major professional organization for shareware developers. In the early- to mid-Nineties or so, long debates raged on the ASP's Compuserve boards about exactly how bothersome and how limiting registration inducements could be. Though not everyone agreed, the ASP maintained a pretty hard line against functional crippling and time-limiting. I haven't been a member for about ten years, though, so I can't say what (if any) restrictions they have in place today.

What's your impression of how shareware has changed?

I see that the ASP still exists, but you really don't hear the term shareware used much any longer. There's Freeware and Open Source--and then there's for-fee proprietary software. And there is less and less distinction between retail software and what used to be called shareware. The Internet and everything related to it makes the distinction between software "companies" and individual developers that much less. And the evolution of the software universe has forced even the Microsoft's of the world to increasingly offer trial versions of their software. (Prices have tended to come down too.) At the same time, there's a certain "use it for free if it isn't nailed down" culture on the Internet; it's not the comparatively well-behaved small town that the BBS world was. So just about everyone selling software (whether they're big or little) protects trial software with time bombs and feature limitations. (I also suspect that many who would have written "casual" shareware in the old days now just do Open Source.)

In short, what were once pretty bright-line distinctions between shareware and retail are much, much blurrier--to the point where I'm not at all sure that shareware is even a relevant category today.

To finish off, could you give some short definitions from your perspective?

Sure. One can find exceptions to all these definitions but I think they represent a pretty good summary of the way these terms have historically been used.

Freeware: Copyrighted software that can be used with no cost or obligation, legal, moral, or otherwise. Source code is usually not included and there is typically no right granted to distribute modified versions of the software.

Shareware: Copyrighted software that can be fully evaluated with no cost or obligation, legal, moral, or otherwise. Continued use after the evaluation period requires payment. Source code is rarely included and there is no right granted to distribute modified versions of the software.

Public domain: Copyright has been explicitly waived. Any use of the code is permitted.

Free (Open Source) software: I pass. See the Free Software Foundation's website for a complete discussion :-)