前面我们说了,计算机是基于点工作的,它能直接理解的就是高低电频所对应的0101这种二进制指令。而之杰用二进制编程的这种方式就是机器语言。
这种编程方式执行效率是最高的,因为计算机可以无障碍理解。但是它的复杂度极高,开发效率极低,你可能要写一大堆0101这种二进制数,才能实现一个非常小的功能。
然后我们再来说汇编语言,汇编语言仅仅仅仅是用一个英文标签,代表一组二进制指令。汇编语言打印一句Hello World,需要是十多行代码(下图)。
相对于机器语言,汇编语言使用英文标签编写程序相对简单,执行效率稍低。但还是太复杂,开发效率很低。
高级语言就是站在人的角度上,用人类的字符去编写程序,但是高级语言离硬件更远,更贴近人类的语言。人类可以理解,而计算机则需要通过编译,最终转换二进制计算机才能理解。
所以高级语言的执行效率相对于前面两种语言会低一些,但是开发效率却得到了极大的提升。
在高级语言中,按编译的方式不同又分为两种。一种叫编译型语言,比如C语言、另一解释型语言种叫,比如我们Python。
编译型语言就是程序写完之后,用一个类似翻译软件把完整的源代码‘翻译’成为计算机能够识别的机器语言。因此这个编译之后的机器语言可以脱离其语言进行独立执行,执行效率极高,但开发效率相对较低。应用程序一旦需要修改,必须先修改源代码,然后重新编译生成新的目标文件才能执行。
并且编译型代码是针对有一个平台编译的,当前平台的编译结果无法在其他平台使用。因此跨平台性也差。
而解释型语言需要有一个解释器,类似于一个翻译官。解释器解释器会读取程序代码,解释一行立马执行一行。因此执行效率会被解释器拖慢,但是开发效率极高,一旦发现错误直接修改就好,改完直接就可以运行。
解释型语言针对不同的平台会有不同的解释,所以解释型语言的代码在不同的平台也可以直接运行。
最后我们来总结一下
执行效率:机器语言>汇编语言>高级语言(编译型>解释型);
开发效率:机器语言<汇编语言<高级语言(编译型<解释型)。
跨平台性:解释型语言跨平台性极强!
由于现在主流开发的程序都是基于网络通信,我们写的程序执行效率再高最终都会被网络延迟拖慢,所以我们主要考虑就是开发效率和跨平台性。这也就是Python现在这么火的原因之一。