KludgeCode

is Ben Rudgers

Musings on FOSS: Part A

I was having an unproductive discussion on HN about FOSS, so I thought I would write about it a bit this morning.

In the long run GPL is a step backward from the public domain. It complects ideas with legal overhead. It forms a closure. It creates state. GPL is intellectual property all the way down. It uses the same logic. Relies on the same legal system.


  >(define (license terms)
     (terms))
  >(license 'GPL)
  GPL
  >(license 'Apache)
  Apache
  >(license 'GoogleEULA)
  GoogleEULA 

The structure is the same, all that’s different is the input values. This is not to say that values are not important, and to the extent discussions about FOSS are about expressing one’s values, they are interesting and important. The issue is that the expression of one’s values often gets conflated with commercial competition as commercial competition – it moves from a space of moral choice to a space that is amoral.

What it doesn’t do is free authors from future legal action. The courts have yet to fully determine what constitutes making the source available. Most modern practice does not conform with the original intent – people are getting by with “Well it’s on the web.” How is it available if the IP address of the repository is blocked by commercial or governmental interests? The idea that a link is “including” seems really weak.

The other long term issue is with standards of care as programmers become, as is inevitable, increasingly liable for their work when it causes public harm. Patent Medicine had its epoch. Then came regulation. Orville and Wilbur could sell whatever aircraft they dreamed up, today the FAA has a say in what makes a plane airworthy.

The problem with open source from a professional liability standpoint is that it is work product, not instruments of service. Saying “all software has bugs” is not going to be enough to blow away a specific bug which has caused measurable harm. The hold harmless clauses of GPL do not extend to a client unless written into the agreement between the programmer and client.

Philosophical Musings:

The lisp code reveals a way of saying something interesting aboutt the type of concepts we attach to licenses. The ability to deal with symbols allows the semantics of “license” to be embedded in the code snippet in a way that “foo” cannot do.