脚本或编程语言?

scripting or programming language?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
When is a language considered a scripting language?

编程语言和脚本语言有什么区别?我已经在C/C++上工作了一段时间,现在我开始看Python,我被告知这是一个很好的脚本语言。

但是在我学习的过程中,我发现到目前为止所有可以用C完成的事情都可以用Python完成!那么脚本语言和编程语言之间真正的区别是什么呢?


我实际上认为这个问题有点误导人。当然,脚本语言也是一种编程语言。但也有不同之处:

在编译语言和解释语言之间。

传统上,像C这样的语言被编译成可以被CPU直接理解的机器代码。另一方面,"脚本语言"通常不会在执行前编译成机器代码,而是使用解释器进行解释。解释语言的优点通常是它具有更快的开发周期,因为不需要编译,而且从一个平台到另一个平台更容易移动。例如,可以在Windows、Linux、Mac上执行python脚本,而无需更改。另一方面,编译语言的优点是它通常执行得更快。

我经常使用"通常"和"传统"两个词,因为现在有了一些技术,很难划清界限。例如,可以将python代码直接编译为本机代码,也可以为C代码提供解释程序。另外,"及时"编译器和虚拟机使得这里很难绘制黑白图。

更多:http://en.wikipedia.org/wiki/explocated_-language

鸭式和强式语言

通常脚本语言是duck类型的,这意味着变量可以被分配给任何类型,并且没有或只有可选的类型检查。在C语言和C++语言的另一种语言中,每一个变量都被键入,它可以并且只保存该类型的值。duck类型语言的优点通常是它需要较少的物理类型和代码(例如,类型名可以保留在函数声明中等等),并且更容易编写可重用的函数。强类型语言的优点通常是它"帮助"程序员在运行应用程序之前发现错误。例如,编译器会抱怨类型错误,而不需要运行发生错误的具体行。尤其是在有很多贡献者的大型项目中,这会成为一个惊人的优势。

更多:http://en.wikipedia.org/wiki/duck_打字