50岁的C语言,仍在驱动着世界

哈喽艾瑞巴蒂

这里是你的可爱博酱子呀

还有两天就迎来五一小长假啦

小伙伴们是不是都很兴奋呢

话说一定有大聪明知道

今年是C语言诞生的50周年!

尽管C语言面世多年

也有人用暮年来形容它

但它仍然在为世界赋能

起着不可或缺的作用

那么C语言到底有什么魔力

可以做到屹立不倒呢?

博酱今天就带你一探究竟~

今天存在的许多C项目都是在几十年前开始的。

UNIX操作系统的开发始于年,其代码于年用C重写。创建C语言实际上是为了将UNIX内核代码从汇编语言转移到更高级别的语言,后者可以用更少的代码完成相同的任务。

Oracle数据库开发始于年,年其代码由汇编改写为C,成为世界上最流行的数据库之一。

年发布了Windows1.0。尽管Windows源代码不公开,但据说它的内核大部分是用C编写的,有些部分是汇编的。

Linux内核开发始于年,也是用C语言编写的。第二年,它在GNU许可下发布,并被用作GNU操作系统的一部分。GNU操作系统本身是使用C和Lisp编程语言开发的,因此它的许多组件都是用C编写的。

有人可能会说,这些项目都是几十年前的,那时候选择少,其实不然。如今很多的项目也是基于C语言启动的。

C语言如何驱动世界?

尽管各种语言层出不穷,但C继续在为全世界的应用系统赋能。以下是一些被数百万人使用的基于C语言编程的系统。

微软Windows

拥有大约90%的市场份额的Windows的内核主要是用C语言开发的,有些部分是用汇编语言开发的。

Linux

Linux也主要是用C语言编写的,其中一些部分是汇编语言。世界上台最强大的超级计算机中约有97%运行Linux内核。

Mac

Mac电脑操作系统也是由C语言驱动,因为OSX的内核大部分是用C语言编写的。Mac中的每个程序和驱动程序,就像Windows和Linux电脑一样,都是在由C语言驱动的内核上运行。

移动设备

iOS、Android和WindowsPhone内核也是用C编写的。它们只是对现有MacOS、Linux和Windows内核的移动改编。因此,大家每天使用的智能手机都在C内核上运行。

数据库

世界上最流行的数据库,包括Oracle、MySQL、MSSQLServer和PostgreSQL,都是用C语言构建的。(其中前三个实际上是C和C++)

除了以上这些,C语言还在3D电影、嵌入式系统等领域起着重要作用。

C语言为何久经不衰

THEMEANINGOFLIFE

今天,有许多编程语言让开发人员在不同类型的项目中效率更高。有更高级别的语言提供更大的内置库,可简化JSON、XML、UI、网页、客户端请求、数据库连接、媒体操作等的工作。但尽管如此,仍有很多理由让我们相信C语言将在很长一段时间内会继续保持活跃。

以下是C在某些应用程序中无与伦比的优势。

可移植性和高效

C是一种可移植性很好的语言。它尽可能地接近机器,而它几乎普遍适用于现有的所有处理器架构。几乎所有现有架构都至少有一个C编译器。而如今,由于现代编译器生成了高度优化的二进制文件,用手写汇编来改进它们的输出并不是一件容易的事。

这就是它的可移植性和效率,“其他编程语言的编译器、库和解释器通常用C实现”。Python、Ruby和PHP等解释型语言的主要实现都是基于C。它甚至被编译器用于其他语言与机器通信。

内存操作

内存管理和指针运算是使C语言非常适合系统编程(操作系统和嵌入式系统)的一个重要特性。

确定资源使用

开发人员进行系统编程不能依赖的一个常见语言特性就是垃圾收集,甚至对一些嵌入式系统来说,只能进行动态分配。嵌入式应用程序在时间和内存资源方面非常有限。对于一些实时的嵌入系统,它们无法承受垃圾收集器的非确定性调用。如果因为内存不足而不能使用动态分配,那么拥有其他内存管理机制就显得尤为重要,比如将数据放在自定义地址中,就像C语言的指针所允许的那样。那些严重依赖动态分配和垃圾回收的语言不适用于资源紧张的系统。

CodeSize

C的运行时间非常短。并且其代码的内存占用比大多数其他语言要小。例如与C++相比,一个由C语言生成的二进制文件,其体积大约是由类似的C++代码生成的二进制文件的一半。造成这种情况的主要原因之一是异常支持。

学习C的理由

THEMEANINGOFLIFE

大家可能只知道Python学起来简单,实际上C作为一门老牌编程语言,学起来也并不难。

通用语言

C语言是开发人员的通用语言,网上或者图书里面的不少算法都是基于C语言实现,这也为实现提供了最大的可移植性,开发者也会从中受益。

理解机器(用C语言思考)

当我们与同事讨论某些代码部分的行为或其他语言的某些特性时,我们最终会“用C语言交谈”:这部分是将“指针”传递给对象还是复制整个对象?这里会发生任何“转换”吗?

在分析高级语言的一部分代码的行为时,我们很少讨论或思考一部分代码正在执行的汇编指令。相反,在讨论机器正在做什么时,我们能用C语言非常清楚地描述出来。

从事许多有趣的C项目

许多有趣的项目,从大型数据库服务器或操作系统内核,到小型嵌入式应用程序,都是用C语言完成的。像C这样古老而小巧,但功能强大且经过时间验证的编程语言,一定是值得你学习的。

当下许多编程语言

在其预设的用途上

都要优于C语言

但当考虑性能优先的时候

C依然是王者!

如果你也想学习一门编程语言

借此来找到一份高薪的工作

就来北大青鸟中博!

多种编程语言任你选择~

预览时标签不可点收录于合集#个上一篇下一篇

转载请注明:http://www.aierlanlan.com/rzgz/254.html