脚本和程序有什么区别?大多数时候,我听说脚本正在运行,这不是程序吗?我有点困惑,有人可以详细说明吗?
Answers:
我有不同的看法。
“脚本”是以外部或独立方式作用于某些系统的代码,可以在不禁用系统本身的情况下将其删除或禁用。
“程序”是构成系统的代码。程序的代码可以以模块化的方式编写,并具有良好的关注点分离,但是代码基本上是系统自身的内部组件,并且是系统自身的依赖项。
脚本经常被解释,但并非总是如此。程序经常被编译,但并非总是如此。
通常,脚本是一种轻量级,快速构建的,可能是一次性使用的工具。它通常是解释的,而不是编译的。 Python和bash是用于生成脚本的语言的示例。
程序是使用C或C ++之类的编译语言构造的,因此通常比脚本运行速度更快。较大的工具通常是作为“程序”而不是脚本编写的-较小的工具更容易作为脚本开发,但是脚本变得越来越笨拙。应用程序和系统语言(用于构建程序/应用程序的语言)具有使这种增长更易于管理的工具。
通常,您可以在文本编辑器中查看脚本以查看其功能。您无法使用可执行程序来执行此操作-可执行程序的指令已被编译为字节码或机器语言,这使得人们在没有专用工具的情况下很难理解。
请注意上面的“常”和“通常”的数量-术语模糊不清,有时会交叉。
看到:
脚本也是程序,但是没有一个不透明的层隐藏(源代码),而程序是一个有衣服的程序,除非它是可反编译的,否则您将看不到它的源代码。
脚本需要其他程序来执行它们,而程序则不需要。
根据我的观点,脚本和程序之间的主要区别是:
脚本可以与其他技术一起使用。示例:PHP脚本,Javascript等可以在HTML中使用。
程序是独立的代码块,永远无法嵌入其他技术中。
如果我在任何地方都做错了,请纠正我。
.php
。在程序内部,您可以打印html代码。您可以对python,java,C#,C等执行相同的操作。所有这些(如果是Web程序)都将产生html代码。
脚本与程序现实之间确实存在两个维度:
该语言是否足够强大(特别是在使用字符串操作时),可以与诸如posix shell以及bash之类的宏处理器竞争?如果运行某项功能并不比bash好,那么使用它就没有多大意义了。
语言方便快捷吗?Java,Scala,JRuby,Closure和Groovy都是强大的语言,但是Java需要大量样板文件,而它们都需要很长时间才能启动的JVM。
OTOH,Perl,Python和Ruby都可以快速启动,并且具有强大的字符串处理(以及几乎所有其他处理功能)操作,因此它们往往会占用有时被贬低但不容易受到“脚本”侵害的地方世界。事实证明,它们在运行整个传统程序方面也表现出色。
像Javascript这样的语言一直处于困境,这些语言不用于脚本编写,但有可能被使用。更新:自从编写以来,node.js已在多个平台上发布。在其他新闻中,该问题已经结束。“那好吧。”