Lisp executables
« previous entry | next entry »
Sep. 13th, 2008 | 10:12 am
I'm glad Jasko made it easy for Cusp users to make executables, but I found his characterization of newbie interactions pretty insulting. I like to help people with Lisp stuff, and the conversation usually goes like this:
- Q: "Does Lisp have a compiler?"
- A: "Yes, you can use COMPILE or COMPILE-FILE..."
- Q: "Awesome!" time passes "Wait, what I really want is something else..."
- A: "Ok, you can do that with save-lisp-and-die, or cl-launch, and commercial Lisps make it pretty easy too..."
- Q: "Cool, I'll check it out" or "If there isn't something exactly like gcc for Lisp, Lisp sucks!"
- A: "Glad to help!" or "You can still get stuff done even without a single-file executable" or "Whatever, dude."
exacly like gcc
from: anonymous
date: Sep. 13th, 2008 03:30 pm (UTC)
Link
Reply | Thread
(no subject)
from:
myblog.rsynnott.com
date: Sep. 13th, 2008 06:50 pm (UTC)
Link
Reply | Thread
(no subject)
from:
xach
date: Sep. 13th, 2008 07:11 pm (UTC)
Link
Reply | Parent | Thread
(no subject)
from: anonymous
date: Sep. 13th, 2008 06:57 pm (UTC)
Link
-- Marijn, who still hasn't got an OpenID
Reply | Thread
(no subject)
from:
xach
date: Sep. 13th, 2008 07:17 pm (UTC)
Link
Reply | Parent | Thread
I think the point is...
from: anonymous
date: Sep. 14th, 2008 10:23 am (UTC)
Link
then why don't you mention save-lisp-and-die up front? :)
Reply | Thread
Re: I think the point is...
from: anonymous
date: Sep. 16th, 2008 10:51 am (UTC)
Link
Reply | Parent | Thread
Re: I think the point is...
from:
xach
date: Sep. 16th, 2008 12:59 pm (UTC)
Link
Reply | Parent | Thread
(no subject)
from: anonymous
date: Sep. 14th, 2008 08:48 pm (UTC)
Link
So a question like "Does Lisp have a compiler?" probably means "Is there a 'free' Lisp on Windows that will generate an executable file that can run without a dependency on the whole Lisp environment being installed."
Reply | Thread
(no subject)
from: anonymous
date: Sep. 15th, 2008 07:44 am (UTC)
Link
The initial reaction frequently is a (very understandable) case of disappointment: if your hello world takes 12MB to deliver, how large would anything more useful be? While this doesn't scale like that for real programs, you won't get that across if you don't point out that creating stand-alone Lisp executables isn't the most common way to run (even less to develop) Lisp programs in most implementations. So it's not a matter of providing easy answers or being a jerk; it's a trade-off between providing easy answers with misleading implications which often (but certainly not always) lead to confusion/disappointment later on or providing a more accurate answer which doesn't reinforce misguided assumptions (but still answers the question). Granted, there may be many people who use the latter option as an excuse to be a jerk at the same time, but that's an entirely different point ;-)
I think a helpful starter is to point out that Lisp development cycles are indeed different than C/C++ development cycles, just as they differ in Perl, Ruby, Python, Java, Javascript, etc. Yes, it's good to know that you can deliver a standalone executable when you need it, but it's misleading to advertise that as the recommended/best way. I'm not saying that Cusp does that, and I'm sure it'll be very useful for people who use Cusp; I just think that this point is something one should keep in mind. I've seen the same "why can't I just create an executable" question arise frequently in other contexts (e.g. Perl or Java), and it's rarely as much of a problem as new users initially make it out to be.
Reply | Parent | Thread
executables n stuff
from: anonymous
date: Dec. 15th, 2008 01:55 am (UTC)
Link
Okay, I get lisp has a big runtime support library. So how big is the C runtime library? Why is creating a stand alone executable such a low priority of the system implementors? Why isn't it easy with a little glue code to turn the output of compile-file into an stand alone executable? Then distribute the big runtime library plus your tiny executable? C programs would have to do the same thing except they can (usually) assume that OS distributions already have the c runtime installed.
So if distributing a big runtime library is painful and users just want a tiny executable why can't lisps cull unused portions of their runtimes? Isn't that simply a slightly different application of garbage collection? As long as your code isn't calling eval somewhere it seems like you should be able to determine at link time what isn't used.
Reply | Thread
Re: executables n stuff
from:
xach
date: Dec. 16th, 2008 03:51 pm (UTC)
Link
Not everyone agrees on the needs and the priorities for fixing them. One way to get someone else to agree with the need and priority is to apply money. There are cheaper ways, but usually they involve charm and persuasion...
Reply | Parent | Thread