Software licenses and releasing Python programs for review

P

poisondart

Hi,

I'm not sure if this is the right group to post this. If not, then I
would appreciate if somebody could point me to the correct group.

This is my first time releasing software to the public and I'm wanting
to release a Python program I wrote for review (and critique) and
testing on other platforms, but also I would like to explore the
different software licenses that are available (there seems to be
many). Since the specification for the programs is knowledge-centric
(related to linguistics), I need a group of people that are
knowledgeable in this area. Is there a place where I can advertise to
look for people who are knowledgeable in Python and linguistics?

Ultimately I desire two things from the license (but not limited to):
- being able to distribute it freely, anybody can modify it
- nobody is allowed to make profit from my code (other than myself)

What is the methodology that people employ to releasing software?

Thank you.
 
T

Terry Reedy

poisondart said:
testing on other platforms, but also I would like to explore the
different software licenses that are available (there seems to be

There is an Open Software Foundation (or something close) with a site
listing and linking to numerous OSF-approved licenses.

TJR
 
I

Ivan Voras

poisondart said:
Ultimately I desire two things from the license (but not limited to):
- being able to distribute it freely, anybody can modify it
- nobody is allowed to make profit from my code (other than myself)

GPL does something like this, except it doesn't forbid anyone to sell
the software. Also, you do realize that if you make it freely
distributable and modifiable, you could get into the situations where
potential customers say "so why should we buy it from him when we can
get it free from X"?
 
R

Robert Kern

poisondart said:
Hi,

I'm not sure if this is the right group to post this. If not, then I
would appreciate if somebody could point me to the correct group.

This is my first time releasing software to the public and I'm wanting
to release a Python program I wrote for review (and critique) and
testing on other platforms, but also I would like to explore the
different software licenses that are available (there seems to be
many). Since the specification for the programs is knowledge-centric
(related to linguistics), I need a group of people that are
knowledgeable in this area. Is there a place where I can advertise to
look for people who are knowledgeable in Python and linguistics?

The NLTK mailing list might be a good place.

http://nltk.sourceforge.net
Ultimately I desire two things from the license (but not limited to):
- being able to distribute it freely, anybody can modify it
- nobody is allowed to make profit from my code (other than myself)

Well, this is vague. Do you want no one else to *distribute* your code
or derivatives thereof for profit? or do you want no one else to be able
to *use* the code for profit-making activities?

Either way, it's kind of rude and unproductive to ask people to spend
their unpaid time to review, critique, and test your code when only you
can make a profit from it. I highly recommend looking at the GPL. Many
of the people whom you may want to not distribute your code for profit
will probably be reluctant to use GPLed code. As a bonus, if they do,
they will have to contribute their changes back to the community under
the GPL, too, so you can incorporate them into your own code base.

--
Robert Kern
(e-mail address removed)

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
 
P

poisondart

Thanks for the replies. They have been very helpful. I'll have to read
through the licenses you've listed in more detail, but the creative
commons license of which James William Pye mentions seems to be what
I'll be using.

The reason why I need people to review my code and also the ideas
behind the code is mostly for academic interest...but not necessarily
reserved to an academic audience...which is why I don't want people to
make profit from it. It uses ideas from a language--which would be
ridiculous (to me) for anybody to make profit from selling the
mechanics of a natural language.

The NLTK mailing list seems to be what I was looking for...I'll start
checking that out. Thanks for the link.
 
S

Steven D'Aprano

The reason why I need people to review my code and also the ideas
behind the code is mostly for academic interest...but not necessarily
reserved to an academic audience...which is why I don't want people to
make profit from it. It uses ideas from a language--which would be
ridiculous (to me) for anybody to make profit from selling the
mechanics of a natural language.

Let me toss some scenarios out there for you to think about.

You write your code, and distribute it for free. Very generous of you. I
publish for profit a computer magazine which includes a CD containing
software. I would like to include your code. Can I?

My colleague Betty compiles collections of software, tests them, weeds
out the buggy and useless programs, documents the ones that remain, and
sells the collection for profit. She would like to include your code on
her CD. Can she?

My competitor Barney tries to start a business selling your code for
profit. How long do you think he will stay in business trying to sell
what you are making available for free on your website?

My neighbour Bobby creates a game which he sells for profit. This game
includes a natural language engine allowing the game characters to
(almost) understand real language. He would like to use your code to do
this. Can he?

My business partner Billy wants to sell servers for profit. On this
server, he wants to include a collection of software for added value. He
would like to include your software. Can he?



Regards,
 
P

poisondart

With the exception of the example with neighbour Bobby (which directly
utilizes my code for profit, in which case is a definite no), I don't
see why your other examples should make me reconsider releasing my
software for free--in all the cases you've described, the answer should
be no.

You publish a magazine and include a CD with my code--you are using my
code to attract readers (this, I did not agree to).

The example with colleague Betty does not say whether she has debugged
my code and sold it for profit. If she does, then she will have done
something very selfish in my view--also undesirable. If she hasn't
debugged my code...what is she doing selling my property?

The competitor Barney--This is exactly what I _don't_ want. What's he
doing selling my code?

Business partner Billy is using a scheme similar to the magazine
publisher example.

I plan to release my programs for academic and pedagogical purposes.
The knowledge contained in these programs is the same knowledge that
people use to speak a language--did you buy a copy of the English
language when you decided to learn it?

This is why I feel that it would not make sense for me to sell my
programs for profit.

Thanks,
 
J

John J. Lee

poisondart said:
Ultimately I desire two things from the license (but not limited to):
- being able to distribute it freely, anybody can modify it
- nobody is allowed to make profit from my code (other than myself)
[...]

If you believe it's feasible to get contributors to (literally) sign
over their copyright to you, consider dual GPL+commercial licensing.
Trolltech do this very successfully with their Qt GUI framework (they
also have educational licenses too, I believe, though the release of
Qt 4/Win under the GPL will presumably make those licenses redundant).

In general, people tend to find it very hard to get unpaid code
contributions if there are annoying restrictions such as prohibition
against commercial distribution of the code, which is one reason why
people pick BSD or GPL licenses. Whatever you do, pick a standard,
well known license, simply because nobody has the time or inclination
to read somebody else's pet license.

(Of course, if the contributions you're most interested in aren't
copyrightable (comment on algorithms or scientific ideas, or
high-level feedback about the implementation of your code, for
example), all this may not be a big issue.)

Though they sometimes mix, the academic world is driven by different
motivations than the open source world, of course. As someone from
the linguistics field, you're probably far better placed than we are
to know about the social environment in which your code will find
itself. Unless there's another Linguistic Pythonista here ;-)


John
 
J

John J. Lee

poisondart said:
I plan to release my programs for academic and pedagogical purposes.
The knowledge contained in these programs is the same knowledge that
people use to speak a language--did you buy a copy of the English
language when you decided to learn it?

This is why I feel that it would not make sense for me to sell my
programs for profit.

I'm a little curious about your position.

Though code encodes knowledge (hence the word, of course :), the
system of concepts embodied in your code is not the same thing as the
code itself. Right?

So, firstly, I don't follow your argument there: how does it follow
from the fact that scientific and mathematical knowledge should not be
treated by the law as - in some sense - property (a moot point of
course, though I lean towards your view) that it doesn't 'make sense'
(scare quotes because I'm not sure of your precise meaning) to sell
your software for profit?

Secondly, do you think it's a bad thing for anybody to sell software
that makes use of the *concepts* in your code (provided that the use
of those concepts is not restricted by financial or other legal
means)? If so, why?


John
 
R

Rocco Moretti

poisondart said:
With the exception of the example with neighbour Bobby (which directly
utilizes my code for profit, in which case is a definite no), I don't
see why your other examples should make me reconsider releasing my
software for free.

I don't think he's trying to make you reconsider releasing the code for
free, he just wants you to think about what you want to happen in
certain scenarios - There are no right or wrong answers, but your
answers will help you decide what license you want to release your code as.
You publish a magazine and include a CD with my code--you are using my
code to attract readers (this, I did not agree to).

Well, depending on what license you use, the agreement may be implicit
in the license. (e.g. the GPL allows Steven to do this, a Microsoft type
EULA doesn't)
The example with colleague Betty does not say whether she has debugged
my code and sold it for profit. If she does, then she will have done
something very selfish in my view--also undesirable.

What's selfish? The fact that she debugged it? The fact that she sold
it? The fact that she debugged it and didn't give you the corrections?
Your answer will help you decide what you want in a license.
If she hasn't debugged my code...what is she doing selling my property?

It depends on how you look at things. She might not be selling your
software - she's selling a list of bug-free and stable programs, which
happens to have a copy of your program on the same CD. If you allow free
redistribution, this is implicit. She's distributing your program for
free (allowed by your license), but is selling her value added service
of certifying that the program is bug free.
I plan to release my programs for academic and pedagogical purposes.
The knowledge contained in these programs is the same knowledge that
people use to speak a language--did you buy a copy of the English
language when you decided to learn it?

This is why I feel that it would not make sense for me to sell my
programs for profit.

You have several things going on here:

Although it might not make sense for *you* to sell your program for
profit, someone else might think it worthwhile. Do you want to disallow
this, why or why not?

Secondly, you should distinguish between being *required* to purchase
the program and being *able* to purchase the program. Just because
Barney is selling a copy of the program doesn't mean other people can't
download it for free off of your website. They *could* pay for it, but
they can also get it for free. Using your English language example, no
one sold me a copy of the English language, but there are a number of
companies which have sold the "knowledge that people use to speak a
language" to me in the form of dictionaries, thesauruses, and grammar
guides over the years. I'm no less free in using the English language,
but Merriam Webster still can make money by selling it back to me.
> The competitor Barney--This is exactly what I _don't_ want. What's he
> doing selling my code?

Last point to consider. Say you make a restrictive license. No
commercial use. No redistribution. etc. Barney comes along and ignores
the license - distributes the program, sells it for loads of cash.

What are you willing to do? Send a nasty letter? Barney isn't a nice
guy. He doesn't care that you've sent him an angry letter. He'll still
sell your program - he's making loads of money. Are you willing to sue
him? A license doesn't mean much unless you're willing to back it up in
court. Are you prepared to spend years and $$$$ to make Barney stop?

If you aren't making money off of it yourself, having a restrictive
license isn't going to help most hobbyists/academics, for the sole
reason that they don't want to go the the effort required to enforce it.

If all you want is to make sure that your program is always available
for free to academics/the general public, just use a lax license (like
MIT) and provide it for free. So what if someone else charges for it?
They can always go to you to get it for free.

If you're offended at the thought that someone else might be able to
make money off of your program, then a certified "Open Source" license
isn't really going to help - one of the requirements is no bias against
fields of endeavor - they specifically mention the "no commercial use"
clause as forbidden. http://www.opensource.org/docs/definition.php

That doesn't stop you from choosing a non-"open source" license if you
want - just be aware that that license choice may substantially affect
what the community is willing to give back to you.
 
P

poisondart

I'm a little curious about your position.
Though code encodes knowledge (hence the word, of course :), the
system of concepts embodied in your code is not the same thing as the
code itself. Right?

So, firstly, I don't follow your argument there: how does it follow
from the fact that scientific and mathematical knowledge should not be
treated by the law as - in some sense - property (a moot point of
course, though I lean towards your view) that it doesn't 'make sense'
(scare quotes because I'm not sure of your precise meaning) to sell
your software for profit?

Hi,
I view my situation from the point of view of a teacher. That is, to
allude to a proverb, I'm trying to teach a person how to fish. I did
not invent the knowledge of fishing and selling this knowledge is not
what I want to do. I believe that I am putting this knowledge into a
form which I deem learnable for the student.
Secondly, do you think it's a bad thing for anybody to sell software
that makes use of the *concepts* in your code (provided that the use
of those concepts is not restricted by financial or other legal
means)? If so, why?


John

To be honest. I'm not sure. The knowledge that I learnt was all given
to me freely, I just consolidated it into these programs. I feel that
it would be unfair that along this chain of knowledge passing, one
person decided to exploit the free system and harbour his knowledge for
profit.
(Please read the next thread...)
 
R

Robert Kern

poisondart wrote:

[John J. Lee:]
To be honest. I'm not sure. The knowledge that I learnt was all given
to me freely, I just consolidated it into these programs. I feel that
it would be unfair that along this chain of knowledge passing, one
person decided to exploit the free system and harbour his knowledge for
profit.

You can't copyright concepts and ideas. If someone wants to make
commercial use of the knowledge, he can do so, and no license of yours
can stop him.

What you can copyright is your expression of that knowledge in code. So
let's be a little clearer about exactly the actions that you can forbid:
the redistribution of *your code*. Not the use of the knowledge
contained therein. Your choice of license can't affect the issues you
seem to be basing your decision on.

As one academic to another, I am asking you to consider using an
authentic Open Source license rather than one that forbids commercial
redistribution (I don't think you've answered my question, yet, about
whether you want to forbid commercial *use* as well, but I'm against
that, too). You have every right to require that people redistributing
your code to not profit thereby, but with an Open Source license, you
have the opportunity to join a broader, more vibrant community. My
experience with no-commercial-whatever academic projects is that they
almost never develop a real community of code. The initial developer is
the only developer, and the project languishes. Having a real Open
Source license, especially one of the copyleft licenses like the GPL,
encourages users to use the code, improve it, and gift the improvements
back to the community.

You end up with a community of people freely contributing their
expertise to the world. That's a lot more than what you alone could
provide. But you can get the process started.

--
Robert Kern
(e-mail address removed)

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
 
T

Terry Hancock

With the exception of the example with neighbour Bobby (which directly
utilizes my code for profit, in which case is a definite no), I don't
see why your other examples should make me reconsider releasing my
software for free--in all the cases you've described, the answer should
be no.

You have an awfully possessive attitude for someone who's asking
for free help. What are you planning to pay us for the consulting?

"Go get a lawyer and pay them for their time, just like any other
proprietary code-horder." :p

Only half tongue-in-cheek. ;-)

Seriously though, you are violating the community principles that make
Python and this newsgroup function. That's a selfish and thoughtless
thing to do if you will but think about it for a moment. I have no
interest in your software and it pollutes my environment if it is going
to spew legal landmines into my life! I'd rather you just charged a
license fee so that people would more quickly realize that it is a
hazard. That will encourage a truly free replacement to be made, which
would actually be of some benefit to the community and (ironically
and incidentally) to you as well.

The fact is, people who distribute your code for you are doing you
a favor which it is not unreasonable for them to receive a remuneration
for. The pitiful small cost that the market drives things like CD collections
of free software to makes the practical impact of allowing such sales
virtually nil. Certainly it has no effect on you. No one I know misrepresents
that as "ownership" of the software --- it's just a copying/convenience or
review service, and that's what the prices represent. Heck, I can review
MS Windows in a magazine, and you'd call it profiteering freely without
paying them a license fee. God help us all if the courts were ever to accept
such interpretations.

And the "principle of the thing" is nonsense: you are asking for something
for nothing. If you want the advantages of free software (peer review,
easy distribution, etc) you need to embrace the whole package, which
includes the most basic user freedoms. *That* would be the principled
thing to do.

Mind you, "academic use" is also commercial, by your ridiculously broad
interpretation of commercial use: Surely other scholars, if they make
use of your software will be using it to justify their salaries, won't they?

Of course, you're *entitled* to use any twisted, snare-throwing license
you like, but don't expect to be respected for it.
 
P

poisondart

If this thread has shown anything it is I'm a bit green with respect to
software licenses, but the other thing is that I consider myself as an
isolated case and I wanted to know if there were others who wanted the
same thing as me.

I'm curious to know what the money that open source or GPL'd projects
get and what this money means to these people's overall income. I am
sure that any amount would motivate somebody to continue their work on
a project, but myself in particular, I consider my project to be a tool
for teaching and I view teaching as helping others...which I would
gladly offer without price. I wanted to see if there were others who
shared my view of helping others freely with their knowledge.

Yes, what I ask may seem ridiculous, but I don't view it that way.
Instead, I find that it is the implication of using a restrictive
license such as I described to be ridiculous: if there is no monetary
gain option in the license, then this implies that nobody (or very few)
will be willing to do any work or "asking for something for nothing".
It isn't for nothing if you value knowledge and learning.

I admit that my view is a bit idealistic which leads me to believe that
maybe I should reconsider the whole decision altogether.
 
P

Paul Rubin

poisondart said:
If this thread has shown anything it is I'm a bit green with respect to
software licenses, but the other thing is that I consider myself as an
isolated case and I wanted to know if there were others who wanted the
same thing as me.

You're going through the same issues that most of us involved in free
software have gone through at some time. Welcome.
I'm curious to know what the money that open source or GPL'd projects
get and what this money means to these people's overall income.

Well, it varies, but I'd say most of the time, it's done as a
community contribution, not for money. It's similar to doctors doing
free medical clinics, lawyers doing pro bono legal work, etc.
However, it's possible to make a living writing GPL'd code, and some
people do that. (I've done it in the past).
Yes, what I ask may seem ridiculous, but I don't view it that way.
Instead, I find that it is the implication of using a restrictive
license such as I described to be ridiculous: if there is no monetary
gain option in the license, then this implies that nobody (or very few)
will be willing to do any work or "asking for something for nothing".
It isn't for nothing if you value knowledge and learning.

Well, long experience has shown that in practice, such clauses tend to
turn away users and developers.
I admit that my view is a bit idealistic which leads me to believe that
maybe I should reconsider the whole decision altogether.

The really idealistic view is that once the program is published, the
author has no special relation to it that others don't have. This is
what the GPL tries to approximate, by giving users similar rights to
the author's (e.g. guaranteed access to the source code).

Note also that in your other posts, you're using "selling" in an
imprecise and confusing way. This might help:

http://www.gnu.org/philosophy/selling.html

Some more articles on the general free software topic:

http://www.gnu.org/philosophy/
 
R

Robert Kern

Paul said:
Well, long experience has shown that in practice, such clauses tend to
turn away users and developers.

And for thoroughness, allow me to add "even if they have no intention or
desire to profit monetarily." I can't explain exactly why this is the
case, but it seems to be true in the overwhelming majority of cases.
Academic projects with non-commercial clauses languish in obscurity
while academic Open Source projects thrive. The contributors to the Open
Source projects value knowledge and learning just as much as the lonely
developers of the non-commercial-only projects, but for whatever reason,
they don't contribute to those non-commercial-only projects.

--
Robert Kern
(e-mail address removed)

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
 
A

Andreas Kostyrka

And for thoroughness, allow me to add "even if they have no intention or
desire to profit monetarily." I can't explain exactly why this is the
case, but it seems to be true in the overwhelming majority of cases.
Academic projects with non-commercial clauses languish in obscurity
while academic Open Source projects thrive. The contributors to the Open
Well, it's easily explained. (Well at least my motivation in this case)
I do not touch things that I cannot use "generally" and being a
"commercial" IT consultant this basically means:
*) opensource is better than commercial payware.
(because "for free" (as in beer) is usable in more contexts)
*) GPL is acceptable for much stuff, because I can install GPL'ed
stuff for a customer.
*) GPL is not acceptable for "library" stuff, because as a software
developer I'm sometimes forced to do "closed" stuff.
(Yep, even nowadays there are place where it's basically a legal
requirement.)

Implications:

*) qt is a bordercase: GPL for free, or commercial for pay. Not perfect but
good enough.
*) A number of O-R mappers for Python are of no relevance to me,
because they are GPL. O-R mappers are development libraries.

The idea is that I'm mostly not interested in learning tools that are
not of general use.

So basically, stuff not meeting this criteria, is only interesting if
it's unique:

*) commercial stuff is only interesting if there is no competing
open-source project.
*) GPL'ed "building blocks" are only interesting when there is no
competing LGPL version. Example: OCR on Linux/Unix. There are no
perfect solutions there so a GPL'ed solution might be
ok. (Especially because one can use OCR without linking with a lib
*grin*)

Andreas
 
K

Karl A. Krueger

Andreas Kostyrka said:
*) GPL is not acceptable for "library" stuff, because as a software
developer I'm sometimes forced to do "closed" stuff.
(Yep, even nowadays there are place where it's basically a legal
requirement.)

I'm curious about this last one.

The GPL does not require that derivative works be published, or that
they be donated back to the original author. All it requires is that
you pass on the rights that you received to the recipient of your
derivative work -- in this case, your customer alone.

Of course, if your customer is a proprietary software firm looking to
own and sell the software restrictively, then they don't want those
terms. But if they're just looking to use it privately and internally,
I'm curious how the GPL would get in the way of that.
 
A

Andreas Kostyrka

Am Donnerstag, den 02.06.2005, 17:52 +0000 schrieb Karl A. Krueger:
I'm curious about this last one.

The GPL does not require that derivative works be published, or that
they be donated back to the original author. All it requires is that
you pass on the rights that you received to the recipient of your
derivative work -- in this case, your customer alone.

Of course, if your customer is a proprietary software firm looking to
own and sell the software restrictively, then they don't want those
terms. But if they're just looking to use it privately and internally,
I'm curious how the GPL would get in the way of that.
Well, basically there are some obstacles:
a) legal departments
b) the feeling of the customer that he gets something "less" (because
the customer doesn't have full control)
c) problem cases like external contractors

Basically my points are:
a) there are certain "feelings" that seem to be common to most open
source people. They might vary quite a bit in details but somehow we all
swim more or less in the same river.
b) as an example I've explained what my personal position in this is.

Another take on the GPL (again my philosophy) is, that a license is good
if it doesn't restrict. GPL'ed projects are successful mostly when the
GPL adds benefits.

GPL licensed projects have benefits:
* strong anti-fork pressure. (Because you cannot just fork the
code and go closed. Any fork must have a real good reason d'etre
or it will die.)
* community orientation -> GPL gives a strong "it's our code we
are working on" feeling.
* a growing number of software that is only available under the
GPL.
But it also has a number of drawbacks, like:
* It forces the GPL (more or less) on all users [applies only to
library building blocks]
* Without copyright assignments it leads to patchy ownership
structure. E.g. changing the license for the Linux kernel would
be a really major undertaking.

The point is that the license should be tailored to the intended use of
your software.

And think about it like that: "What can I give my users so that they
become interested in my software?"

Just being able to do something like burning a DVD might be enough for
many "typical" Windows users, but the opensource crowd usually demands
more. Like in more blueprints, more rights, etc.

And fact is that the basic environment without artifical constructs like
intellectual property legaslation favors the users:

Without patents, in most cases somebody will reimplement your software,
if there is need.

Without copyrights, the users will just copy your binary ;)

Andreas

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQBCn3EXHJdudm4KnO0RAmuyAJ956BqRD7UJNc9IeZd5mC3nKMVIdgCeIoVd
LMAdxkCZe4MWQ2vMBABTO6Y=
=0QDy
-----END PGP SIGNATURE-----
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,013
Latest member
KatriceSwa

Latest Threads

Top