发布于 

脚本(Script)与程序(Program)

原文:Failing to draw lines between ‘script’ and ‘program’

Unix脚本与程序:关于术语的辩论

本文讨论了在Unix环境中关于“script”(脚本)和“program”(程序)的术语辩论。投票者提出了一些模糊的观点,并提供了一些实践中的思考。

投票结果和模糊观点

  • 投票中,有人选择了“complex/simple”(复杂/简单),但他认为这个问题在实践中更为复杂。
  • 他认为,对于编译语言,无论大小或复杂程度,都应称之为“program”(程序),即使是单文件的解释语言也是如此。
  • 他认为,“script”与Unix的“#!行和解释器”问题无关,这只是一个技术问题,有时候可能并不重要。

对“script”和“program”的不同理解

  • 有时他将shell脚本(无论是Bourne shell还是其他Shell)称为“script”,而将其他语言的内容称为“program”。
  • 他对复杂的sed块是“script”还是“program”并没有明确的答案。
  • 对于报告Linux cgroup内存使用情况的Bourne shell脚本,他认为它是“script”,但用Python进行重写后则是“program”。

对扩展其他程序的代码的看法

  • Emacs Lisp的内容可能是“script”、“program”或其他术语,Emacs用户可能有自己的术语。
  • Vim的“script”语言用于编写插件,对于用它编写的内容,他不确定人们是否称之为“script”。

总结

在Unix社区中,关于“script”和“program”的术语使用存在辩论。对于一些人来说,用shell编写的内容可能被称为“script”,而其他语言的内容则被称为“program”。而扩展其他程序的代码可能被认为是不同于“script”的内容。这个术语辩论可能因个人经验和偏好而异,因此没有明确的标准定义。

(计算机术语的多样性确实让人觉得有趣。)