On Mon, Jan 12, 2015 at 3:34 PM, <random832@fastmail.us> wrote:

In principle, the functions "detachable terminal session", "terminal
session multiplexer", and "terminal with scrollback", and "translator
from a common VT100 superset to whatever the hell the user is using"
could be four separate programs.


​To quote Rob and Brian from the "cat -v" paper: [http://harmful.cat-v.org/cat-v/unix_prog_design.pdf]
Separate programs are not always better than wider options; which is better depends on the problem.
Whenever one needs a way to perform a new function, one faces the choice of whether to add a new option
or write a new program (assuming that none of the programmable tools will do the job conveniently). The
guiding principle for making the choice should be that each program does one thing. Options are appropriately
added to a program that already has the right functionality. If there is no such program, then a new
program is called for. In that case, the usual criteria for program design should be used: the program should
be as general as possible, its default behavior should match the most common usage, and it should cooperate
with other programs.