Subject: Re: bug#38529: Make --ad-hoc the default for guix environment proposed deprecation mechanism

From: Ricardo Wurmus <[email-masked]>
Date: Mon, 30 Dec 2019 22:10:22 +0100

zimoun <[email-masked]> writes:

>> > Why do you say that "guix shell" does not reflect what the command is about?
>> > Because the command spawns a new shell with options (expanding it,
>> > isolating it, etc.)
>>
>> The command does not necessarily spawn a new shell; it spawns a command
>> in a well-defined environment, and that command might be a shell.
>
> What about "guix spawn"?

“spawn” is a very generic verb, much like “enter” (enter what?) or
“make”.  “shell” has the awkward property of meaning different things
dependent on how you interpret it: “to shell” means to *remove* an outer
shell (like that of a nut) whereas “guix shell” as a noun would imply
*wrapping“ something in a shell.  It sends mixed signals.  We’d probably
want people to understand it as ‘spawn a command line shell’, but that’s
really not the primary purpose of ‘guix environment’.

Thinking about words some more I started to wonder: do we want verbs or
nouns?  We have some sub-commands that could be interpreted either way:

   archive
   gc
   hash

Others that are primarily understood as nouns:

   container
   environment
   graph
   package
   processes
   repl
   size
   system
   time-machine
   weather

And a majority that are primarily understood as verbs:

   build
   challenge
   copy
   deploy
   describe
   download
   edit
   import
   install
   lint
   pack
   publish
   pull
   refresh
   remove
   search
   show
   upgrade

If we were looking for verbs that express the idea of creating an
environment or to place a thing inside of an environment we could use
one of these:

   to envelop (envelop what though?  This seems to require two objects.)
   to arrange (kinda misses the point)
   to stage (in the theatric sense)
   to frame (not in the criminal sense)
   to contain (…the resulting process in a possibly leaky environment)
   to join (…all these packages to form a new whole)
   to group (…all these packages)

(As a bonus: ‘to environ’ exists, but it suffers from the same problem
as ‘to envelop’.)

Here are some nouns that might work:

   scene
   frame
   context
   union

All of them are shorter than “environment”!  :)
What do you think?

--
Ricardo