Subject: Optimal license for Java projects ...
From: Gunther Schadow <gunther@aurora.regenstrief.org>
Date: Thu, 13 Mar 2003 12:32:08 -0500

Hi,

I am looking for an extisting license (or blend / create a new one)
that would be optimal for Java projects that is nice to academic
contributors AND to commercial use.

- I like the strength of the GPL

- The contagiosity of the GPL hinders commercial adoption of code

- I like the BSD license for its acknowledgement feature, academic
   contributors live from credits

- The problem of the BSD license is that it allows commercial
   parties to take the source code away and contribute little, and
   take away the freedom of their customers to use improved versions
   of the free code

- With Java (late binding), a revised definition of derivative
   work from the GPL would be useful to maximize impact and benefits
   of open source in the indusrty

The Mozilla license MIGHT be something close, but I would like to
get more hints from those who have tracked the license garden for
a while to see what else is growing.

Some more detail on the Java issue:

I'd like to have a license that works well for Java because of the
following szenario:

Hans Hacker has written a cool YML interface suite and there is
some big buzz in the Toaster industry about adopting YML.
Because of Hans Hackers extraordinarily good YML code, many small
Toaser vendors could just adopt it. In order to do so, they would
have to write YML ToasterControl adapter classes that handles
the proprietary control interface to their Toasters
implementing the YML ToasterControl interface. Hans Hacker also
wrote an AbstractToasterControl class that helps with some common
convenience methods of the ToasterControl interface and the
integration into the YML ToasterControlContainer framework. So,
the small Toaster interface vendor (call it Brown eToast) has to do
this:

package com.brown.etoast;

import org.hanshacker.yml.ToasterControl
import org.hanshacker.yml.helpers.AbstractToasterControl
import org.hanshacker.yml.ToasterControlEvent

public class EToast2001aToasterControl
   extends AbstractToasterControl
   implements ToasterControl
{
   public void toastIt(ToasterControlEvent event) {
	 ...
   }

   ...
}

The point being that under GPL the EToast2001aToasterControl.java
would be considered derivative code and Brown eToast would be forced
to make their implementation open source. However, the source code
would reveal strategic trade secrets about their revolutionary
internal Toaster design to their big competitors, so they can't
make this code open source without killing themselves.

As a concequence EToast2001a has to write their own YML interface.
Brown eToast's engineers are wizzards with building Toaster hardware
and embedded control software, but are actually quite bad in
understanding the larger system of the Toast supply chain and
other kitchen automation. It's not their business. They make
great Toasters. So, the guys hastily hack some YML interface
together from scratch, and it is of course less stable and less
extensible (and actually quite bad.) As a result, customers will
have a much harder time to integrate their Toasters with their
Butter-dispensing machines or their Bread-Logistics systems.

Assume that Hans Hacker had decided to put his YML code under the
BSD license. Another company, MicroToast could then take his code
and spice it up with numerous extensions thus rendering it
incompatible with the free version. MicroToast would, because of
their cloud, resell their code and half of the Toaster industry
would use the MicroToast code. Once again, the customers would be
burned because they can't easily connect half of their Butter-
dispensers. Also, the closed MicroToast would be praised as a
"de facto" standard, starving out Hans Hacker's original free
version. Users would suffer again under constant security holes
and crashes of their toasters (leading to burnt toast) and
could not leverage the much more stable and secure free code
base.

If only Hans Hacker had chosen a license that would:

- allow Brown eToast and MicroToast to implement the ToasterControl
   interface and extend from the AbstractToasterControl without
   forcing them to open up their proprietory control implementation.

- require MicroToast to put all its modifications to the ToasterControl
   interface (and the AbstractToasterControl helper) back as open
   source so that Hans Hacker and colleagues could backport MicroToast's
   code

- require Brown eToast and MicroToast to notify their users of their
   use of the YML code base so that the users can get the source code
   and write their own agents in the ToasterControl network

the problem with the bad condition of the Brown eToast code and the
staggering growth of MicroToast monopoly and endless burnt toast and
sad users would have been prevented.



So, what is the best open source license that Hans Hacker should
have used?

regards
-Gunther

-- 
Gunther Schadow, M.D., Ph.D.                    gschadow@regenstrief.org
Medical Information Scientist      Regenstrief Institute for Health Care
Adjunct Assistant Professor        Indiana University School of Medicine
tel:1(317)630-7960                         http://aurora.regenstrief.org


--
license-discuss archive is at http://crynwr.com/cgi-bin/ezmlm-cgi?3