是时候退休C语言了吗?

电子说

1.3w人已加入

描述

After almost a half-century of use, is it time for embedded developers to move on to a more modern language?

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

编程语言

编程语言


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

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

Next, while very popular, the C programming language is dated. C doesn’t support modern programming concepts like classes and inheritance. If you compare the feature sets of modern languages like C++, Python, and Rust, the C language is starting to look like a dinosaur! The last time the C standard had new features added was 2011! The 2017 standard release only had technical corrections and clarifications, and the upcoming standard release expected in 2023 most likely won’t rock the boat either.

淘汰 C 看起来仍然很诱人,但是离开 C 有几个问题。首先,C 对于接近硬件运行的低级过程应用程序来说是一种很棒的语言。它紧凑而高效。其次,高级工程师的语言根深蒂固。他们处于使用该语言数十年的地步,对学习和过渡到更现代的语言几乎没有兴趣。最后,如此多的遗留库和代码库使用 C,我们不能放弃它们。移植遗留代码的成本太高了!

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

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

 

排行 评分
1 Python 12.20%
2 C 11.91%
3 爪哇 10.47%
4 C++ 9.63%
27 0.52%

 

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

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

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

你怎么看?是时候退休 C 了吗?

审核编辑 黄昊宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分