1.1 编程语言
现代计算机主要的发展进程起始于20世纪60年代末,在这段时期诞生的一个重要的体系——UNICS和C语言体系为计算机的发展提供了重要条件。这一体系中最重要的是C语言,这门语言专门为UNICS的开发而设计,它在UNICS系统的模型设计思想指导下对计算机的运行资源进行了非常简单而全面的抽象,第一次使计算机的编程变得简单和友好。
C语言是一个很大的进步,它在一个不注重语言易用性的时代被塑造成一个优秀的榜样,这也使得C语言一直在发展并沿用至今。
继C语言之后,许多像C语言一样的编程语言被设计出来,如Python、Java、JavaScript和C++。这些语言之所以使用都很广泛,很大程度上是因为它们和C语言一样,能够使某个领域的编程变得更容易。计算机语言介于计算机和人类之间,主要迎合人类的需要,能够方便地描述人类的思想,并能够驱使计算机实现这些思想。设计编程语言是一门以理学实现的艺术。
每种语言的诞生都有它面临的、别的编程语言尚未解决的问题。
C++的诞生主要用于完善C语言面向对象编程的问题以及命名空间的问题。
Java的诞生主要是为了将开发者从“计算机硬件的问题”中解放出来,从而能更专注地处理软件本身所面临的问题。它还引入了软件运行环境的概念,软件运行环境是一个能够跨平台、提供例如自动垃圾回收类的高级软件平台功能的软件,但其在一定程度上降低了运行效率。
JavaScript和Python这类解释型语言语法十分松散,这对于编译器的开发难度很大,所以这类语言一般是解释运行的。这类语言的好处很明显:它们非常适合解决一些轻量级的问题,如前端的开发或数学计算,所以它们常被科学家们或前端开发者们使用。但这类语言的运行速度很难与C语言这种Native语言相比。
总结至此,可以看出现代编程语言存在的一个矛盾:效率越高的编程语言往往因为需要编译,所以语法更脱离人类。而接近人类的语言往往很难被编译,效率就比较低。这个矛盾成为了下一种编程语言发展阶段主要应解决的问题——人们希望在现有的基础上开发出一个公共的语言体系,兼具高执行效率和高开发效率。
虽然目前还没有一种类似于C语言一样被广泛使用的语言体系,但许多公司与组织都开发了一些在一定程度上解决了这个问题的编程语言,类似于Kotlin、Swift、Go以及Rust。