[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnu-arch-users] Monolithic vs layered programs

From: Robert Collins
Subject: [Gnu-arch-users] Monolithic vs layered programs
Date: Mon, 10 Nov 2003 08:10:02 +1100

On Tue, 2003-11-11 at 07:12, Colin Walters wrote:
> There's just a difference between saying, "here, run this command to do
> FOO", and "here, download this script, put it somewhere, make sure it's
> executable, and then run it whenever you want to do FOO".  It's not a
> huge difference, but I think that whenever you find scripts like that
> are necessary, it's a bug.

Thats a interesting opinion. The most usable programs in my experience
are those that lend themselves to adhoc scripting, to make them bend my
way. Vim and [X]Emacs both depend upon such scripting to make the
environment what the user wants. gcc is [nearly] invariably used via a
wrapper - make. sed, sort, ar. I'm sure if you make a list of binaries
on your system, you'll find that the list of programs which are
primarily called from scripts and not directly by the end user exceeds
the list that are primarily called directly by the end user.

This is not by chance. Given equal code cleanliness, the more 'do X so I
don't script it' features that get into a program, the higher the
maintenance cost to flexability ratio. The more 'do X so I can script
more easily' features, the lower the same ratio.

How often do you use perl interactively vs as a script engine? Or

monolithic, all in one, no scripting programs have very little
flexibility *beyond that directly coded in*.

I look at tla as an engine - one that has some internal hooks
(~/arch-params/hook) and many external hooks (different options). I
don't actually care about the keyboard friendliness of tla at all -
because of this.

Generally, if a feature for tla can be implemented (initially) outside
of tla itself, it aids tla by ensuring the external and internal hooks
are suited to scriptability. If then, one wants to put it in the core
for efficiency/guaranteed availability etc - fine. And some features
(for instance the hard linking stuff) cannot be done outside. UI tweaks
though - including extra defaults - are easily done outside, and have
knock on benefits as already described.


GPG key available at: <>.

Attachment: signature.asc
Description: This is a digitally signed message part

reply via email to

[Prev in Thread] Current Thread [Next in Thread]