From: chip@tct.com (Chip Salzenberg)
Subject: Re: Public Domain C Compiler?
Date: Fri, 29 Jan 1993 01:40:45 GMT
Organization: TC Telemanagement, Clearwater, FL

According to burley@apple-gunkies.gnu.ai.mit.edu (Craig Burley):
>Fact remains, a purchaser must do quite a bit more research to ensure
>that a "PD C compiler" has source available than a "GPL-protected C
>compiler" once that purchaser learns what PD and GPL really mean.

I'd contest that point.  All the purchaser need do is make one very
simple stipulation: "We purchase only programs that include the source
code necessary to produce the delivered executables (if any)."  Now
where's the "quite a bit more research"?

>I pointed out that the GPL carries with it various useful elements
>that PD doesn't.

No way.  You pointed out the differences between GPL and PD, and then
made a bald claim that they constituted improvements.  Such a claim is
not proof.

>So it is easier for me to say "get GPL-protected stuff" then "get PD
>stuff as long as it comes with source, make sure it's the actual
>source used to build _your_ version, etc" and explain what both mean.
>Naturally, I do that ...

So if they have to be educated anyway, what's the problem with PD?
That education will always be needed, forever.  So there's no reason
not to release any given program as PD instead of GPL.

>Explaining the intricacies of how to protect themselves against
>bait-and-switch tactics possible for PD (but, to my knowledge, never
>used) just about requires teaching them software engineering.

No software distribution scheme will eliminate fraud, period.
Remember that we're talking about a customer who asks for source.
Misrepresenting delivered software, including PD software, is fraud.
Anyone willing to act illegally in this way (fraudulent PD delivery)
will also be willing to act illegally in another way (GPL breakage).
GPL does not have an advantage over PD in this way, specifically
because PD binaries don't land on anyone's computer unrequested.

>Simply put: given GCC, a GPL-protected C compiler, and "PDC", a (so
>far mythical) PD C compiler, a user knows more about GCC than PDC...

So the GPL is a known quantity, once you know it.  This is unique?  If
your praise of GPL-covered programs is that their licensing terms are
consistent, that praise is awfully faint.

>I wasn't saying the GPL is a condom.  What I was saying is that because
>the GPL will ensure that g77 will always be distributed source-available
>(which PD would not), it is far less likely it will be made the
>carrier of a virus.

No way.  It's not the GPL that protects you, it's source distribution
that protects you.

Once you've decided to distribute a binary, you're open to virus
infection, GPL or no.  Virus creation is illegal!  Once a virus writer
has decided to commit an illegal act, do you really think he would
give a moment's consideration to the GPL?  Not a chance.

>How does violating the terms of the GPL avoid a big fine?

If he were to distribute the source to his derivative work (e.g.
the "g77+virus" work), he would finger himself as the virus maker.
And he's off to court.  He wouldn't ever do that.

>Now, g77 is a GPL-protected Fortran compiler.  A virus writer cannot
>legally distribute a binary of g77 without the source ...

As if a virus writer strives to live within the law.  Hah.

>or the copyright owner of g77 can sue even if laws are insufficient
>to attack the virus writer on the basis of having disseminated a virus.

But those laws _are_ quite sufficient -- if the virus writer is
identified (which he almost certainly will not be, since he won't
do anything as stupid as publishing virus-infected sources).

>Further, identifying the virus writer is much easier since each
>distributor of the g77 binary is legally required to distribute
>source as well, so the sources can be used to track how and where the
>virus appeared.

But all the hypothetical virus writer need to is upload the binary
to (say) a BBS.  What will the copyright holder do -- sue the BBS
owner?  No way.  So the virus writer gets off scot free.

>Further, the customers with the infected g77 can fairly easily
>rebuild g77 from sources patched to not include the virus once info
>on the virus gets out.

That's also true of source-available PD.

>It is much easier to tighten the distribution channels for the GPL
>stuff just by telling all ftp sites & such to always compile from
>scratch or not distribute binaries [...]

The FSF can't do that.  The GPL does not prohibit binary distribution,
and FSF can't go back in time and change it just because a virus
writer throws a monkey wrench in the current plan.  Or are you now
forced to resort to a hypothetical GPL 3, which won't cover existing
programs anyway?

>>You do your argument a disservice by bringing up such irrelevancies
>>as viruses.
>
>Viruses are hardly irrelevant to the business world.

But they are not relevant to PD vs. GPL (at least in my opinion),
and that's what I meant.

>End-users also want to be sure they can get support for their
>software.

>They might get quite annoyed if they find a bad bug in, say, f2c+PDC
>and discover that the binary they're using for their particular machine
>has no source (or they can't find it) ...

Anyone who loses source code is in trouble, GPL or no.  After all,
even GPL programs have local fixes, and those fixes aren't always
propagated, in particular if the resulting binaries are for local use
only.

>At the moment, I'm unaware of a more effective means for
>disseminating knowledge widely in a form that also serves as a useful
>tool, and that also invites dissemination of fixes and enhancements
>to that knowledge that, themselves, make the tool even more useful.

That's great for the tool, but not necessarily for people who'd
want to take pieces of the tool and use them in ways not approved
by RMS.

>In practical terms, that's the difference between PD and GPL.  Sure,
>if the PD source has been distributed even once, _theoretically_
>anyone can get at it, but that assurance is not practical in today's
>society -- many people _will_ end up with the binary [...]

Well, there's the core disagreement.  I don't see the world that way.

>Please hurry up and write a high-quality PD C compiler and distribute
>it widely with sources.

I'm working on it.  Really.

>Of course, once the PDC comes out with better optimization than GCC,
>there's every reason to expect that people will learn from PDC how
>to add those optimizations to GCC [...]

What GCC and (in particular) G++ need are a more rational internal
structure and a complete rejection of block-copy-as-reuse-method,
with the result of a lower maintenance load.  Optimization is gravy.
-- 
Chip Salzenberg at Teltronics/TCT  <chip@tct.com>, <73717.366@compuserve.com>
  "you make me want to break the laws of time and space / you make me
   want to eat pork / you make me want to staple bagels to my face /
   and remove them with a pitchfork" -- Weird Al Yankovic, "You Make Me"
Newsgroups: gnu.misc.discuss