Monday, November 15, 2004
Whew! I managed to kick over another beehive the other day. My blog entry on Lisp RAD generated a slew of comments, some public and some private, as well as other blog entries with various other opinions.
After reading Nikodemus Siivola's blog entry, I have to agree with him. I overstated the point in my original posting when I said that Lisp was in worse shape than Java with respect to deployment. Nikodemus is quite correct that in some ways Lisp is in much better shape because public domain or liberal license (e.g., BSD, GPL) runtimes exist and can be packaged with an application to make a single installation package. If this is done right, the user never needs to be aware that the application is using Lisp. The main difference today is that there exists a standard installation package for Java (Sun's package, for instance). For Lisp, each developer distributing an application would have to do the packaging individually. Depending on how this is done, you might end up with conflicts (different applications dumping different versions of the runtime in /usr/bin/ or /usr/local/bin/, for instance). But, that's solvable.
In the comments section of the original posting, Chris Dean commented that Lispworks may in fact deliver some of this. Originally, I had thought that the Lispworks license was more restrictive, but that isn't the case. Purchase of the Professional or Enterprise editions allows you to redistribute programs with no restrictions. See the Lispworks web site for more information. The $999 Professional license is pretty reasonable.
In the interest of completeness, I checked on Allegro's license terms, which are better than I had originally thought they were, but different than Lispworks. It looks like Franz does allows redistribution of programs developed with Allegro and that Allegro has all the machinery in the IDE to make this easy. The Franz license states:
Franz Inc. permits you to distribute or deploy your application packaged as a standard runtime image using Generate Application (subject to the restrictions below in this section) for 12 months after you purchase the license for the Enterprise or Enterprise Platinum Edition of Allegro CL, and thereafter you may continue to distribute or deploy if you renew your Enterprise or Enterprise Platinum Edition of Allegro CL annually (please refer to section 9(d) of the Source Code and Support Addendum). If you do not renew, then you no longer have this right to distribute or deploy. [Emphasis mine]
So, with Lispworks, you buy the development system and you're done. With Allegro, you must keep renewing your Allegro license for the duration of time that you continue to distribute or deploy the application you created. This may or may not be problemmatic. Personally, I don't like my program being held hostage forever and would favor a Lispworks-style license over an Allegro-style. But that's me.
Overall, this situation is much better than I had previously thought: the Lispworks and Allegro IDEs have some tools to automatically package developed appliations easily (or so they say; I have not used either tool and don't have first-hand experience) and both licenses allow redistribution under varying terms.
Update: Okay, I really botched that. As some commenters have pointed out, I misread the Franz Allegro license. The above terms only apply for non-commercial uses of Allegro. If you want to make money using something written in Allegro, you need to contact Franz and negotiate unspecified license terms. I was surprised when I read the language above because I thought I had remembered that Allegro's license was fairly difficult. Now I know why and that I wasn't dreaming. So, to summarize, Franz wants you to keep paying them a yearly license fee for the duration of time that you distribute a free program and wants you to enter into negotiations to distribute a commercial program. Either Allegro is just the absolute cat's meow, or the guys at Lispworks win this hands down. Note that I don't begrudge Franz for charging what the market will bear, but I personally wouldn't do business under those terms.
Finally, there was a great comment by Mikel Evins discussing SK8, a Lisp-based RAD that was created a number of years ago at Apple, on which Mikel worked. Mikel has posted on his blog that he's wanting to recreate an open source version of SK8, called Skate. If you are interested in helping with Skate, contact Mikel.
Are you sure you have correctly understood the Allegro license terms? We have an Enterprise license and, in addition to maintaining it, we pay a $200 runtime license for every copy of an application we distribute.
I believe Robert is correct. The section you site is
in the "NON-COMMERCIAL" section of the Franz license.
There is a line in the license which states:
To commercially distribute or deploy copies of your application created by Generate Application for financial benefits, please contact Franz’s sales department to purchase a separate runtime distribution or deployment license.To commercially distribute or deploy copies of your application created by Generate Application for financial benefits, please contact Franz’s sales department to purchase a separate runtime distribution or deployment license.
So, commercial stuff is out (if you care about that
sort of thing).
Why should Java programs require a JRE installation first? (On say, Windows?) When one looks at the JRE license or readme, there's the ability to simply redistribute the JRE executable plus helper files in some folder, which can be used to run your Java app. This way it does not require some preinstalled systemwide Java runtime.
At least this was true in 1.3. I've frequently wondered if I'm missing some detail prohibiting this. It just takes 5-10 megs, IIRC.
Post a Comment
Links to this post: