50年,半个世纪,很多人的大半生,C语言从诞生到现在已经过了这么久,它见证了无数多编程语言的诞生,有的语言曾经独领风骚,有的语言昙花一现,只有它,50 年过去了,还依然活跃在历史的舞台上。
C语言的诞生
C语言是经过一系列系统编程语言演变出来的,从 EPL,到 BCPL,再到 B,最后演变成了 C 语言。
C语言是伴随着 unix 诞生的,最初只是使用在 unix 上,不过后来很多其它操作系统采用了 C 语言进行编写。
unix 最初采用的是汇编语言编写的,直到第四版本,才采用 c 语言进行开发,而正是因为采用了C 语言进行开发,所以很多软件才可以通过编译就移植到不同类型的计算机上,可以说C语言成就了 unix,而 unix 的成功也让 C 语言被世人所认可。
C 为什么备受欢迎
早期的主要原因是它与迅速传播的 Unix 有关联。如果你使用 Unix,你就要使用 C 编写。后来,C 开始被其它操作系统所使用,出现了可移植的设备 C 编译器,在 1982 年,C成为了标准语言之一,那时候的 windows 也是采用 C来开发的。
随着时代的发展,互联网的诞生和发展,c 语言似乎没有其它语言那么夺目?但是如果你深究内幕,你就会发现,很多高性能高并发的软件背后都是 C 语言在支撑,我们熟知的 nginx, redis 都是使用 C 语言开发出来的。
在早期的时候,计算机速度很慢,内存也很有限,而C非常高效,因为它可以被编译成机器码,并且它足够简单,因此它一经推出,就受到了程序员们的喜爱。
直到今天,在控制内存管理方面,C语言依然是很出色的。
C更适合开发什么
随着硬件的发展,如今的内存变得异常廉价,相比于程序的可维护性,人们也不再过多关注内存的使用。在这个时候,C 语言更适合开发一些和硬件相关的程序。比如一些驱动程序,一些解码器等。
对于一些嵌入式的应用,或者是 web 服务器,c 语言也是非常适合的。
C 对其它语言的影响
C++ 是在C语言的基础上演进的,提供了面向对象的特性,主要是对代码的控制信息的访问进行了改进。
Java 是对 C++的复杂性进行了改良,而 golang 是在 C++ 和 java 的基础上进行了改良。
Rust 则是在性能上堪比 C,在内存管理上强于 C。
总结
50 年的历史,如果你查看编程语言排名的话,虽然前十的榜单经常轮换,但是 C 却一直在榜单中。我们只能感叹前人思想的伟大。如果你真的想要了解计算机工作原理,了解操作系统是如何工作的,那么 C 语言一定是你必须要学习的。