Re: `Standalone Executables'
From: Alan Crowe (alan_at_cawtech.freeserve.co.uk)
Date: 02/04/04
- Next message: Erik Winkels: "Re: Executables: Why all the abuse?"
- Previous message: Pascal Costanza: "Re: How to use packages?"
- In reply to: Joe Marshall: "`Standalone Executables'"
- Next in thread: Pascal Bourguignon: "Re: `Standalone Executables'"
- Reply: Pascal Bourguignon: "Re: `Standalone Executables'"
- Reply: Will Hartung: "Re: `Standalone Executables'"
- Reply: Joe Marshall: "Re: `Standalone Executables'"
- Reply: Tim Bradshaw: "Re: `Standalone Executables'"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 04 Feb 2004 13:19:30 +0000
Joe Marshall wrote:
let me instead rephrase the question:
How do I deliver a Lisp application with the minimum
amount of burden on the recipient?
We wish to deliver to the user a package that he can
easily unpack, install, and run without having to know
the details of compiling, loading, and running Lisp.
I have difficulties understanding what is being asked here.
Suppose I attempt to deploy my application, super-frob, as a
lisp source file. The instructions on my web page are
carefully worded and the substance of them is:
from the shell prompt, make a directory to keep super-frob
in
bash$ mkdir sf
Go to that directory
bash$ cd sf
Use your browser or download tool to fetch super-frob.lisp
For example
bash$ netscape http://www.super-frob.org/downloads.html
Quit from your download tool and check that super-frob has
arrived by using the ls command from the shell prompt
bash$ ls
Your computer should respond with a single line
super-frob.lisp
From the shell prompt, fire up your Lisp system
bash$ lisp
From the lisp prompt, compile the file
lisp* (compile-file "super-frob")
Your computer should response with a message such as
Converted FROB.
Compiling DEFUN FROB:
Byte Compiling Top-Level Form:
#p"/home/alan/tempdir/super-frob.x86f"
NIL
NIL
You can now run super-frob from the Lisp prompt
lisp* (load "super-frob")
The compilation step is only needed the first time you run
super-frob. Now that you have compiled super-frob you can
run it, either from Lisp, or from the shell prompt
bash$ lisp -eval '(load "super-frob")'
Does this meet the requirement of the the user not having
to know the /details/ of compiling, loading, and running Lisp?
I can argue both yes and no
NO, the user is having to run Lisp and use both
compile-file, and load
YES, the user is not required to know anything, let alone
details. He does not even have to type accurately. The
instructions on the webpage are literal instructions. He
can cut and paste them from the webpage, without filling in
any variables by putting finger to keyboard.
Is there a point to my quibbling? I hope so. In particular,
my experience is that the major burden I encounter as a
recipient of software is when the instructions don't work.
By "work" I mean that the instructions are keystroke
perfect. If they don't work it is because I have not
followed them accurately, and I can make them work by
starting again, and being careful and literal minded, doing
exactly what is asked, not a keystroke more or less.
So instructions that "work" require neither common sense nor
system administration skills. No error messages, requiring
the obvious corrective answer. No wizards asking me
questions I did not expect, and do not feel competent to
answer.
>From this perspective, it doesn't matter very much whether
the instructions are simple or complicated. Complicated that
"works" beats simple that doesn't "work". Complicated/works
beats simple/broken every time, and by a large margin.
Joe's question contrasts unpacking and installing with
compiling, loading, and running. This seems to be orthogonal
to my concerns. I just want the instructions to work. If the
installation script that is supposed to make it easy for me
by hiding the ordeal of compiling, loading, and running from
me happens to break, that is a much bigger burden than
cutting and pasting a few opaque commands from a webpage.
So I see the question
How do I deliver a Lisp application with the minimum
amount of burden on the recipient?
and that takes me off in the direction wanting the most
reliable means of deployment. What decisions will allow me
to write instructions that will work for everybody, every
time? Are there problems with distributing source code that
might catch me by surprise?
Alan Crowe
Edinburgh
Scotland
- Next message: Erik Winkels: "Re: Executables: Why all the abuse?"
- Previous message: Pascal Costanza: "Re: How to use packages?"
- In reply to: Joe Marshall: "`Standalone Executables'"
- Next in thread: Pascal Bourguignon: "Re: `Standalone Executables'"
- Reply: Pascal Bourguignon: "Re: `Standalone Executables'"
- Reply: Will Hartung: "Re: `Standalone Executables'"
- Reply: Joe Marshall: "Re: `Standalone Executables'"
- Reply: Tim Bradshaw: "Re: `Standalone Executables'"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|