为什么要有这么多的高级语言
最近在把OC底层的知识整理出博文,过程中经常要把OC源代码转为C++语言、C语言、汇编语言来进行“找规律”。
其实不管是什么高级语言,越往底层去探究,就越发现是一种“大同”世界,毕竟不管什么高级语言最终都是要编译成汇编语言、二进制机器语言才能让计算机识别。
高级语言的存在那是必须的,因为高级语言更加符合人类现行的思维模式和语言表达模式,虽然直接用机器语言编写程序在历史上也存在过那么几年,但很快就被强大的编译器+设计的高级语言所取代了。
但是,为什么要有那么多的高级语言存在呢?
我觉得可以这样类比,汽车有了发动机、变速箱、底盘这三大件就可以跑起来了,为什么要有好几种的变速箱呢。一台同样的发动机,连接不同的变速箱,有什么必要呢?首先一个原因就是不同的变速箱在开车的整个过程中的效率不一样,偏重不一样。第二个原因是,开车的人不一样。
这就涉及到一个问题,语言的作用?
我觉得语言是思考的载体,是沟通的载体。
人是一种高级动物,让我们成为高级动物的关键原因是,人类产生了语言,产生语言的最关键作用不是在于人可以相互沟通,有组织协调性,而在于语言能够增强人类思考的强度。想一想,如果你不用语言思考问题,你怎么思考问题呢,原始的方式应该是图像式思考,但是图像式思考的方式强度不够,图像式思考有跳跃性,不像我们现在使用的语言有比较强的连贯性,有了较强的连贯性才有逻辑性的基础。
编程语言也是一样,设计出那么多不同的高级原因,根本原因还是为了“更有利于人类的思考”。