编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了,因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。程序执行效率高,使用方便。但程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件才能执行。因需依赖编译器,故跨平台性差些。
胶水语言是用来连接软件组件的程序设计语言。 例如Python、js等等,它不象c\c++等可以编译成二进制代码,以可执行文件的形式存在。而脚本语言不需要编译,可以直接用,由解释器来负责解释。
标准版本的python是用C来编译的,又称为Cpython,除此之外,还有一些其他的python实现版本。
java实现版本,解释器完全用java写成,名为Jython。尽管和标准版的有区别,但是很小,而且启动环境也完全相同。
Jython的优点:
(1)只要有虚拟机,就可以运行Jython
(2)拥有访问java包与类库的能力
(3)为java开发环境提供了脚本引擎
(4)鼓励Python到java的开发
net实现版本。用C#语言完成,名为IronPython。和jython差不多。
胶水语言意义:
在终端上我可以随意地组合他和其它程序,作为一个中间处理模块。
而且,他可以如此地简单便捷,一些简单的脚本只需要cat一下马上就能明白是什么意思。
一个表达式一行代码,代码块有一致的标准的缩进,标准的命名方式,简练的语言,支持注释…
别的程序要访问或调用,很简单,一个命令把指定数据输入到这里就好,然后要怎么拼接怎么拼接。
周期性地处理也没问题,输出到文件,等待别的程序调用。
python相比其他胶水:
比SHELL多了很多数学及字符串处理能力,还多了很多很好用的迭代方法,还多了很多的原生的数据结构;
比PERL多了很要命的代码可读性;
比起ruby和nodejs,他基本所有机器都预装,而且已经经历了时间的考验。虽然,将来的确会有被这俩货代替的可能性;
比起C/C++,他多了一个终端、甚至像ipython这样的加强版神器终端,可以边调试代码边把没问题的代码写进文件。
重点:源码即可执行,较少甚至无需依赖包。