On Mon, 21 Dec 2015, li...@wrant.com wrote:
>> > Usability means then it should be not only humans but also programs
>> > who are able to interact with the installer.  So, since stream editors
>> > know nothing about this seasons' (or Luddite's) line drawing symbols,
>> > and users barely see the information between these on another terminal
>> > capability controlled device, just and only:
>
> On Mon, 21 Dec 2015 00:16:02 +0100 Kamil Cholewiński <harry6...@gmail.com>
>>
>> A DSL.
>
> Get out of your ideas inception hat.  If you did not witness it, the
> books say UNIX command line domain specific language is called shell,
> the one used in OpenBSD is ksh(1).  The rest is history.  There is
> absolutely no way to add another on top of this one to make it a silly
> dungeon quest instead of a 3 min installer susceptible to automation.

Pardon sir, I believe there is quite a lot of well-established prior art
that disproves your point. Or perhaps someone is interested in patches
to turn hostname.if(5), doas.conf(5), or pf.conf(5) into executable
shell scripts.

> susceptible to automation.

Step 1. create a tool that requires user interaction
Step 2. create a tool that automates the interaction

When you type "ls" without an argument, does it start asking you
questions? We'd soon need "autols" to automate feeding answers to "ls".

Perhaps I'm a bit unclear about my POV, because I've both proposed a
silly dungeon quest language, and argued against interactive scripts.

Interactive scripts have their place, the installer is one. Building an
interactive script to gather answers is a common pattern, that may be
worthy of capturing and reusing.

However with almost every interactive tool, soon someone shows up that
just needs the "interactive" part to get out of their way. Now they must
write more code to "defeat" the interactive code.

Now which one is simpler?

> a=`echo 1 | read answer && echo $answer`

or:

> a=1

Silly dungeon quest could do the broad equivalent of the latter form.
You could tell it to read answers from a file instead of bugging the
user, or having them write automation code.

This is only possible in the general case if a DSL is used. You can't
automate automating sh - you're now dealing with the halting problem.

K.

Reply via email to