嵌入式C语言是不是过时了?

2022-08-11
关注

C 编程语言无疑是计算机科学中最成功的编程语言之一。 C 最早出现在 1972 年左右,由贝尔实验室的Dennis Ritchie创建。在过去 20 年中,C 被TIOBE Programming Index 评为世界上最流行的两种编程语言之一(参见图 1)。它是嵌入式系统开发人员最流行的语言,用于近 80% 的嵌入式项目。经过近半个世纪的使用,嵌入式开发人员需要转向更现代的语言了吗?C语言要退休了吗?

图 1 – 过去 20 年编程语言指数排名,源自TIOBE 编程社区,其中C一直是排名前两位的语言之一。


出于几个原因,放弃C并转向更现代的编程语言的诱惑相对较高。首先,入门级工程师几乎没有 C 语言经验。如今的大学课程专注于教授 Python 或 C++ 等现代语言。让他们加快速度并获得经验可能需要大量的金钱和时间投资,而很少有公司对此感兴趣。


其次,虽然非常流行,但C语言确实已经过时了。 C 不支持现代编程概念,如类和继承。如果您比较 C++、Python 和 Rust 等现代语言的功能集,C 语言看起来像恐龙。上一次 C 标准添加新特性是 2011 年,2017 年标准版本只有技术修正和澄清,预计 2023 年即将发布的标准版本很可能也不会有任何更改。


停用 C 仍然看起来很诱人,但是离开 C 有几个问题。首先,C 是一种非常适合在硬件处运行的低级过程应用程序的语言,它紧凑且高效。其次,资深工程师对C语言根深蒂固。他们使用该语言长达数十年,对学习和过渡到更现代的语言几乎没有兴趣。最后,有很多遗留库和代码库使用 C,我们不能放弃它们。毕竟移植遗留代码的成本太高了!


看来我们有点进退两难了!为了行业着想,我们应该淘汰 C 以利用更现代的语言和技术,但是更改的时间和成本以及我们必须维护的遗留代码经常阻碍 C 的淘汰。对更现代技术的需求,同时保持我们从 C 中获得的好处,可能会使我们远离使用单一的主导语言,并迫使我们依赖多种语言来完成一项工作。


使用其他语言来支持 C 可能已经发生。例如,下面的表 1 显示了几种语言在 TIOBE 指数中的排名。过去,一两种语言主导着计算机科学。如今,前四种语言的评分都在 10% 左右。这表明单一主导语言的终结。相反,开发人员将利用多种语言来实现他们的最终目标。


编程语言排名

表 1 – 通常与嵌入式软件开发相关的编程语言列表(来源:TIOBE 指数)。注意:这些评级不代表嵌入式软件的使用,仅代表一般计算机科学行业的使用。


如果你仔细观察这个行业,这些已经发生了。我看到一些公司正在过渡到使用仍然拥有大量 C 库的 C++。我看到一些公司尝试使用 Rust,但需要依赖他们久经考验的 C 软件库作为构建的一部分,反之亦然。这意味着 C 将在未来无限期地继续成为主导语言之一。


C到了退休时机了吗?这是一个简单但复杂的问题。我认为是的,但这取决于你在做什么。您可能不想在 8 位微控制器上使用 C++ 或其他语言。如果您正在使用机器学习或开发连接设备的尖端 32 位微控制器,C 以外的语言将为您提供成功所需的额外工具。切换语言的时间和成本可能太高。我的经验法则是,如果是新设计,请从现代语言开始。如果是遗留设计,请利用遗留代码并尝试利用现代语言编写新代码。

您觉得本篇内容如何
评分

评论

您需要登录才可以回复|注册

提交评论

电子工程世界

这家伙很懒,什么描述也没留下

关注

点击进入下一篇

意法半导体举办首届STM32中国线上技术周

提取码
复制提取码
点击跳转至百度网盘