Perlis的Epigram#22的含义

ano*_*non 1 shell system-design

来自Alan J. Perlis的编程中Epigrams:

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

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

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

小智 6

你必须知道一些制定的背景.这篇链接文章仅在1982年出版,其中任何一篇都可能比几十年前更长.然而,即使1982年在我的时间之前,我当时的相关印象是:

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

"命令语言"只是意味着今天的shell脚本.请记住,在shell提示符下输入"命令".

这些基础知识,这是关于The Unix Way™的.

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

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

我知道没有任何单一资源可以解释所有这些想法,并且您可以将其用作路线图来实现您自己的命令语言.这个概念比写在石头上更加空灵,因为其他的讽刺也是一般的.我鼓励你阅读一般的Unix,shell(例如POS的标准为sh,以及其他如bash),其他shell脚本语言(任何带有shebang行的东西,比如Perl和Python),等等.

  • @Jimmy:不要喂巨魔.该用户有滥用的历史; 当他们不在线时标记他的评论(其中一个已经从这个问题中删除).http://meta.stackexchange.com/questions/34840/ipthnc-being-abusive-gaming-rep (2认同)