Re: Deploying Common Lisp applications
- From: GP lisper <spambait@xxxxxxxxxxxxxxx>
- Date: Tue, 24 May 2005 21:36:51 -0700
On Tue, 24 May 2005 12:04:48 +0200, <qrczak@xxxxxxxxxx> wrote:
> GP lisper <spambait@xxxxxxxxxxxxxxx> writes:
>
>>>> - just stick all your code in one big binary, branch on argv[0]
>>
>> You must be a recent developer. This trick is very common, several
>> bin files use it to select various sets of command line options. Look
>> for symlinks within the same directory. 'Busybox' isn't as common
>> nowdays with CD installs, but those floppy installs loved it.
>
> This saves disk space at the expense of modularity / maintenance.
> It's a workaround, not a good solution.
The disk space savings was immediately utilized to provide a broader
command set, granting users a greater ability to solve (in the busybox
case) installation problems in 'non-standard' hardware. "Good" is
relative. I needed that ability several times, thus my evaluation of
the trick is different.
> In both cases it's needed because the native way of making programs
> has a big constant cost, which is better paid once instead of for each
> program separately. When it's not needed from the maintenance point
> of view, it's bad.
This is back to the 'Best deal is 2 out of 3' rule. Eye of the
beholder etc. "good" and "bad" remain relative judgements, different
needs, different judgements...but these cases can be written down and
determined (I have counted bytes more than once). Just handwaving and
declaring it wrong is another story.
> Well, in *some* cases the original commands are perhaps split too much,
> e.g. most of the code of gzip and zcat is the same (they are different
> interfaces for subsets of the same functionality), so they are better
> put in the same program even from the maintenance point of view. But
> these are only a few cases.
I was maintaining two sets of code recently, one dealt with a file,
the other with a unix pipe. The two programs performed indentical
manipulations on the data streams. Lisp actually made this simple to
see that I should combine them into one program with just 2 entry
point functions. My old perl way-of-thinking would have left it as
two separate files. In perl (or similar) I would have needed some
sort of dispatcher as the front end in a combination program. In a
lisp image, I get that for free....for some disk space rent.
YMMV
It's not a few cases, it can occur everyplace where there is a
datastream transformation. Look at the RAID tools, probably would
show up in crypto tools, etc.
--
With sufficient thrust, pigs fly fine.
.
- Follow-Ups:
- Re: Deploying Common Lisp applications
- From: Matthias Buelow
- Re: Deploying Common Lisp applications
- References:
- Deploying Common Lisp applications
- From: _
- Re: Deploying Common Lisp applications
- From: Peter Scott
- Re: Deploying Common Lisp applications
- From: _
- Re: Deploying Common Lisp applications
- From: Pascal Bourguignon
- Re: Deploying Common Lisp applications
- From: jonathon
- Re: Deploying Common Lisp applications
- From: Zach Beane
- Re: Deploying Common Lisp applications
- From: Robert Marlow
- Re: Deploying Common Lisp applications
- From: GP lisper
- Re: Deploying Common Lisp applications
- From: Cameron MacKinnon
- Re: Deploying Common Lisp applications
- From: Raymond Wiker
- Re: Deploying Common Lisp applications
- From: GP lisper
- Re: Deploying Common Lisp applications
- From: Marcin 'Qrczak' Kowalczyk
- Deploying Common Lisp applications
- Prev by Date: Re: Infinite precision floating-point
- Next by Date: Re: Infinite precision floating-point (was Re: Counting number of digits)
- Previous by thread: Re: Deploying Common Lisp applications
- Next by thread: Re: Deploying Common Lisp applications
- Index(es):
Relevant Pages
|
|