drafting strategy & “specious argument vector” vs. programmer readability (was Re: What do the defined acronyms stand for?)

Bradley M. Kuhn bkuhn at ebb.org
Fri Jul 11 01:05:21 UTC 2025


[ NOTE: Some will receive a duplicate of this email.  I accidentally posted
  with X-No-Archive on and wanted this to land in the archives. ]

I kinda took a tangent here, and I'm only partially addressing what James was
asking.  Nevertheless, I started writing here and I think this is useful as
we reframe our discussion on how we'll draft the next copyleft-next (ha!), so
I'm sending it along.  The TL;DR is that I think discussion of readability
needs more context rather than getting into the nitty gritty of word choices
and the like.  IOW, I think James' questions are focused on tactics of
drafting copyleft clauses, and we have to first explore the *strategy* for
drafting copyleft before working on tactics.

Most notably, I am arguing we must take a drafting strategy that assumes
we've got a Cartisian “evil genius” arguing constantly that the plain text
doesn't mean what is says.  Because “evil geniuses” that do are already in
many positions of power throughout the tech industry and are already doing
just that for all existing copyleft licenses.  They haven't started with
copyleft-next only because it's not popular enough yet for them to bother.

What's funny, and I promise this is true, I had *just* finished drafting
this email when Richard posted two emails, one of which said:

Richard Fontana wrote:
>> Which reminds me, I should
>> start a thread on what the goals of copyleft-next are or should be at
>> this point. They aren't necessarily going to match whatever the
>> objectives were over a decade ago, as I think we're already starting
>> to see with some of the comments

In essence, my email below was kinda not exactly answering James' point,
but was answering this question above that Richard hadn't written yet.

(Sorry, I'm just kinda loving that Richard and I are sitting late
at our desks, squeezing in volunteer time for copyleft-next, and worried
about the same thing even though I'm sure we're going to disagree
on the approach.  HBR shows you how the proverbial sausage is made.)

James Frost wrote:
> So my point is that I think the licence would be clearer if it continued
> using "Network Service Source" and "Corresponding Source" rather than the
> initialisms, as those terms give a reasonable approximation of their
> meaning to the casual reader without having to refer to the definitions.

While “defined terms” are a concept that only lawyers and programmers can
love, the sad fact is we have to favor iron-solid clarity for posterity over
readability (more times than not, anyway).

I'm going to write more about this on this list over the coming months, but
here's a flavor of what I'm getting at:

One of my goals in revitalizing copyleft-next is to bring my lessons learned
from 27 years of GPLv2/LGPLv2.1 enforcement experience (and 18 years of
A?GPLv3 enforcement [0] experience) to decrease copyleft-next's “specious
argument vector” for enterprising, malicious lawyers who want to “get their
client off” with ludicrous arguments that delay release of CCS.

Just one example from my real world GPLv2 enforcement work to give you a
flavor:

I have *literally* had multiple malicious lawyers tell me that since
GPLv2§3(b) doesn't specify *how long* the distributor has to deliver source
code once the written offer is exercised that their client can take an
indefinite period of time to deliver the CCS without penalty.  This is real
world stuff: one Fortune 500 company that you've all heard of is *right now*
holding back source for dozens of products containing GPLv2/LGPLv2.1 code
relying on this argument plus a “if you don't like it, sue us” attitude.

It's obvious that GPLv2§3(b) is written for readability — assuming that the
redistributor *wants* to follow the obvious reading, and since GPLv2§3(a) is
*right there* above it, well, how could anyone possible think/argue that
GPLv2§3(b) doesn't mean “deliver CCS right quick”!  Yet, shameless lawyers
tell me that “six months to get source is totally reasonable” all the time.🙄

Now, James could be right that in this case — perhaps using 2-3 plain-text
words (instead of TLAs and the like) for defined terms will increase
readability and not increase the “specious argument vector”.

But, we must consider carefully with each readability increase whether it
increases “specious argument vector” such that a future individual consumer —
who is not versed in legalese — doesn't get source code because they're
tricked by fancy, malicious legalistic arguments.

 * * *

Meanwhile, it seems that replacing TLAs with jargon terms *from other
licenses* may in fact be a path to increase “specious argument vector”.

For example, “Corresponding Source” is basically a GPLv3-centric jargon term.
It's actually going to be confusing in its own way, because the definition of
“CCS” in copyleft-next will certainly vary from the definition in GPLv3.
Again, I can *totally* imagine some enterprising malicious lawyer saying that
his client thought the definition was the GPLv3 one, not the copyleft-next
one.  Sure, that's a ludicrous argument and any non-corrupt judge would laugh
them out of the courtroom — but it may take serious resources (and many
years) to get to the point where the judge decides.  What about the poor
tinkerer who gets that email and has no resources to sue and sits for years
waiting for CCS?

IOW, for years we felt the key drafting goal was make the text of the license
accessible so that programmers would adopt the license, and let in only an
absolute minimum amount of legalese.  “Programmers must understand” was
essential.  Yet, Apache-2.0 (in addition to having an inappropriate name) is
filled with legalese so complicated that I've seen lawyers argue for hours
about how many patent licenses dance on the head of its pin.

Then, there's the argument about how GPLv3 was was too complex, too
lawyeristic and that programmers didn't like it.  First, many programmers did
like it, but to the extent that fewer programmers liked GPLv3, it was because
they didn't like its *policy* choices.

Anyway, this is a serious problem, touches every piece of copyleft drafting
these days, and as I said, I'll write more about this problem and how
copyleft-next can help solve it as time goes on.  But I hope we can
incorporate the “minimize specious argument vector” into a key strategy in
drafting.


[0] It probably won't surprise you all to learn that I have never actually
    seen a violation of LGPLv3  in the wild.
--
     -- bkuhn, noting: IANAL & TINLA


More information about the next mailing list