1

来自Alan J. Perlis的编程警句:

22. 好的系统不能有弱的命令语言。

这是什么意思?什么是这个原则的好例子?

我在哪里可以了解有关如何实现符合此标准的命令语言的更多信息?

4

1 回答 1

6

你必须知道制定它的一些背景。链接的文章仅在 1982 年发表,其中任何一个警句都可能比它早几十年。然而,即使是 1982 年,也比我的时代还早,我当时的相关印象是:

  • 计算机系统对特定任务的专业化程度更高。
  • 系统有专门的操作员(不是程序员)在特定系统上接受过培训。
  • 一个系统的知识不容易转移到另一个系统。(今天,您针对特定程序对操作员进行培训,但很少针对特定硬件+操作系统组合进行培训。换句话说,系统变得更加相似并采用了标准和约定。)

“命令语言”仅仅意味着今天的 shell 脚本。请记住,在 shell 提示符下输入“命令”。

抛开这些基础知识,这是对我说的关于 The Unix Way™ 的话题。

与 Windows 程序在自动化方面的困难相比,许多程序(甚至操作系统)需要 GUI 来更改某些设置。(Microsoft PowerShell 对此的态度有所改变,但它仍然缺少遵循其他操作系统具有的这一原则的数十年经验。)

此外,当任何用户的基本操作模式您系统的命令语言时(就像 1982 年的 Unix 一样),那么您的命令语言在另一种方面很强大:所有用户都知道如何使用它,而不必学习单独的工具。在那种情况下,系统可以做任何命令语言无法完成的事情,因为命令语言实际上就是系统

我知道没有任何一种资源可以阐明所有这些想法,并且您可以将其用作实现自己的命令语言的路线图。这个概念比写在石头上的更空灵,因为其他警句一般也是如此。我鼓励您阅读一般的 Unix、shell(例如 POSIX 的 sh 标准和其他诸如 bash)、其他 shell 脚本语言(任何带有 shebang 行的语言,例如 Perl 和 Python)等等。

于 2010-02-26T03:41:18.450 回答