再过4年C语言就50岁了,这么老的编程语言怎样还没有过时?

作者 : 开心源码 本文共1637个字,预计阅读时间需要5分钟 发布时间: 2022-05-12 共203人阅读

再过四年,C语言将迎来它的 50 岁生日,同样进行周年庆的还有 PL/M和Prolog。不过,C语言至今依然非常受欢迎,它在几乎所有编程语言中的受欢迎程度,始终排在前十名。

image.png

大多数操作系统的内核(包括 Windows,MAC,Linux,IOS 和 Android 等)都主要由使用C语言实现。此外,python 的 CPython 解释器,perl,ruby,差不多一半的 R 语言,以及 mysql 的 MysAm 代码,甚至 java 的第一个编译器都是使用C语言编写的。

9693047-4e3847865e1a0b6c.png

几个月前,新的 C语言标准——C18 取得批准,只需 198 法郎(瑞士货币单位)即可以购买 ISO/IEC 9899:2018标准,共520页。当然,也可以在 openstd 上免费查看该标准的最终草案。

不过,可能只有开发C语言编译器的人,或者者对编译器非常感兴趣的人才会去理解吧,哈哈。

image.png

C18 取得批准

新的C语言标准 C18 并没有增加什么新功能,更多的只是修复,所以它在很大程度上可以说是 C17 的延续。对C语言最后一个主要更改是在 C11 中,包括新添加对变长数组、多线程、更好的 Unicode、匿名结构体和联合体等的支持。

C语言和C++打了个平手

C++ 在 C语言的领域中获得少量进展,特别是自从 C++11 中添加了移动语义,假如能够正确使用该语法,在解决指向大对象的指针时,C++能以更小的开销,带来更好的性能,并且C++也能够在传统的嵌入式C语言领域使用。

image.png

C语言和C++打了个平手

但是,C++程序代码编译后通常还是会比C语言的大一点,由于C++添加了异常解决,以及内联模板等C语言没有的机制。例如在 Visual C++ 2017 的 release 模式编译下面这段C++代码:

最终得到的 exe 可执行文件的大小达到 10752 字节。再来编译相同功能的 C语言代码:

得到的 exe 可执行文件大小为 9216 字节,只有 C++ 程序的 85%。这里的差别还不是特别大,但是可以一定的是,使用C++编程时,一旦加入了其余类,它与C语言程序大小的差异会越来越大。

image.png

代码大小非常重要,由于物联网(IOT)设施的数量越来越多,微控制器的使用也越来越多,要知道这些微控制器的 RAM 和 ROM 通常都是千字节级别的。所以在嵌入式领域,C语言在2005年至2018年期间取得的市场份额实际上是有所提升的。

C语言是编程界的通用语言

就像现实生活中,英语是世界是的通用语言一样,C语言是编程语言界的通用语言。许多其余编程语言编译器输出的其实是 C 语言代码,由C语言编译器进一步生成可执行程序。这不难了解,由于C语言是最低级别的可移植语言。(唯一更低级别的汇编语言与 CPU 紧密相关,不方便移植。)

Github 项目页面上列出了大约 60 个开源编译器,一小部分是 C++ 的,但是C语言占绝对的主导地位。

image.png

使用C语言提升效率

python 是如今最流行的编程语言之一,但是由于它是解释型编程语言,同时也受它的动态变量的影响,所以 python 程序的运行效率一直是一个痛点。使用过 python 进行大数据解决的朋友应该知道 numpy、scipy 等库可以提升效率,而 numpy 库就是由 C语言实现的。python 的标准实现是 CPython,它的主要库也是由 C语言(少许C++)实现的。

C语言是“九阳神功”

C语言可能不是每个编程初学者想学的第一编程语言,但是作为第二、第三编程语言,C语言一直很流行。我把它看做编程界的“九阳神功”,学会C语言后,再学其余编程语言都如有神助。

image.png

小结

至少在底层硬件设施驱动层,C语言还未逢对手。另外在操作系统内核开发中,C语言也几乎是唯一选择,特别是在 Linux 上,C语言还将存在很长一段时间。

如今,虽然 Go 语言和 Rust 的呼声很高,但是当超过一半活跃的 Web、 服务器运行的是 Apache 和 nginx,它们都是C语言编写的,如今已经存在近 50 年了。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 再过4年C语言就50岁了,这么老的编程语言怎样还没有过时?

发表回复