[racket] Clarification on licensing of Racket code?...
Hi there,
there is a chance that I can push Racket as a programming environment at a
customer's site (I'm a freelance software developer). I read the LGPL which
apparently is the basis for programming with Racket (not Racket as in "the
Programming Language family Racket" but Racket as in "the implementation of
Racket provided on racket-lang.org.") but I'm not sure if I correctly
understand what the implications would be.
The vision is that a commercial product (executable running under Windows)
would be developed under Racket and (in lack of commercial/proprietary
alternatives) deployed as an .exe generated with raco distribute - meaning
that the exe would be shipped along with DLLs provided by Racket (and
embedding runtime support code within the .exe itself).
If I understand the spirit of the FSF (which is responsible for the GPL and
LGPL licensing model) as well as the LGPL text correctly, this setup would
automatically require that the product itself falls under the LGPL, implying
that I would have to disclose the source for the product as well, right?
Well, in that case, I naturally can NOT use Racket (at least not Racket
provided by racket-lang.org) because this is a commercial product
interacting with proprietary code and implementing prorietary protocols (as
well as the basis for our revenue).
So, what alternatives would I have still using Racket (which I think is
great as a tool for writing good software) in a commercial environment? I'm
not aware of commercial implementations of Racket (which I would be happy to
pay licensing fees for, of course) as alternatives.
Also, I'd be thankful for experiences from other folks who have done this
kind of thing - both with respect to legal (licensing) issues as well as
stability issues out there in the field. One of the areas where commercial
implementations of a particular programming environment are clearly superior
to open source/freeware etc. implementations is that by paying money for the
license, we (as third party developers) also obtain the right to support.
If, say, the current version of Racket doesn't run on the next version of
Windows anymore for whatever reason and a successor version of Racket is not
backward compatible with the current version of Windows, it is my risk to
get the scenario to work at a customer's site under all permutations of
OS/Racket versions - by using a free version of Racket, I wouldn't have any
possibility to delegate the issue to the developers of Racket (which is fine
with me because Racket from racket-lang.org is free). Naturally, if I had
enough time, I'd write my own Racket from bottom up, but I'm afraid I don't
have the time...
The bigger issue, of course, is under what circumstances and under whose
rules Racket programming should be pushed in the computer world. In my
opinion as a paid full time software designer in a business environment,
it'd be perfect if there were several commercial Racket implementations out
there, competing with free implementations (similar to the C/C++ world) so
that everybody (from learning students to computer pros) could all use and
spread Racket but there is space both for academic/fun/leisure and
professional develompent (it is my impression that the latter one so far
simply isn't covered yet by Racket). But that's just a side issue that
should be discussed somewhere else.
Thanks for any ideas/suggestions/answers (also appreciated as PMs if
necessary) - please let's resist the temptation to make this into a debate
about free vs. commercial software - I'm interested in solutions, not
ideologies...
P.S. I've included Neil explicitly because I know from earlier postings of
his that he is in a similar situation.