Я использую много команд, предоставляющих доступ к своего рода API через подкоманды. Например,
git push
bzr push
apt-get install
Через некоторое время мне надоедает писать git push, git commit, git что-то... потому что я знаю единственное, что мне нужно использование для «фиксации», «нажатия» и т. д. в данный момент является git.
Поигравшись с языками, предоставляющими REPL (Ruby, Python и т. д.), мне не хватало удобства набора текста.
$ git pus... ## arrgh!
$ from git import *
$ push ## yes!
Я вижу явную симметрию между такими командами, как git, и пространствами имен или модулями в вышеупомянутых языках программирования.
Итак, вопрос: что нужно для поддержки пространств имен в SHELL? или наоборот, что нужно, чтобы эти языки заменили SHELL?