[License-discuss] Least COMPLEX copyleft licence?

Nick Moffitt nick at zork.net
Thu Apr 2 10:22:02 UTC 2015


Rick Moen:
> A broader point:  The quest for the shortest possible licence (of
> whatever category) strikes me as solving the wrong problem.  

You wouldn't write your own libc these days: you'd leave it to experts.
The consequences for getting basic security and functionality code wrong
there would be catastrophic to en entire system.  Likewise you shouldn't
try to rewrite the licence-libc for an architecture (International
copyright law) that you don't have extremely intimate familiarity with.

As with programming, your assumptions about how simple something *ought*
to be are the most attractive primrose path to Hell.

As programmers, we tend to associate length with complexity, and thus
vulnerability to error or interference.  And in code, there is certainly
a pretty good correlation between number of "lines" (whatever that means
in your language of choice) and fault rate.  Code deleted is code
debugged, after all!

But recently as a Python programmer I've been enjoying flake8's
[McCabe76] complexity analysis.  It tries to count the number of
independent paths through a functional unit of code, and tell you how
many separate ways a method or function could be evaluated.  This has a
direct mapping to number of tests required to cover all statements, and
can be visualised with some lovely graphs.

[McCabe76]: http://www.literateprogramming.com/mccabe.pdf

Here's a more concise introduction to the topic:

    http://users.csc.calpoly.edu/~jdalbey/206/Lectures/BasisPathTutorial/index.html

Ultimately you just tally up all of the conditional statements that can
have multiple outcomes (so no fair counting `if True:` or the like), and
checking your work by drawing the graph and using Euler's formula to
count regions.

What would such a graph look like for different licences?  What implicit
choices are inherited from the environment (International copyright
law)?  Which aspects of a copyleft licence turn out to introduce the
most complexity (patents? attribution? distribution of source?)  Would
this illustrate opportunities for simplification of some mainstream
licences, or the need for expanded complexity in others?

I'm just a programmer who's studied Free Software licences (like many of
us here), so I don't consider myself qualified to do the analysis.  But
if others have tried this before, or are interested in trying it, I'd
follow with interest!



More information about the License-discuss mailing list