0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

是时候退休C语言了吗?

王尚岱 来源:王岑王岑 作者:王岑王岑 2022-07-14 08:17 次阅读

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 了吗?

poYBAGLOkuaAK_8DAAQaVtr_v-k180.png

poYBAGLOkuaAK_8DAAQaVtr_v-k180.png


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

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

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 了吗?

审核编辑 黄昊宇

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

    关注

    180

    文章

    7534

    浏览量

    128954
  • 编程语言
    +关注

    关注

    9

    文章

    1879

    浏览量

    33223
收藏 人收藏

    评论

    相关推荐

    苹果公司宣布高管退休和任命新董事,并更新董事政策

    另一位离开苹果公司的高管是波音公司退休高管詹姆斯·贝尔,其现拥有苹果股票估值约为700万美元。苹果现任CEO蒂姆·库克对戈尔和贝尔的奉献表达了谢意。
    的头像 发表于 01-12 13:51 213次阅读

    LGD连续六个季度亏损 实施“自愿退休”策略

    LG Display 计划在本月之前接受自愿退休申请并确认受益人。据了解,LG Display并未限制申请自愿退休的人数。
    的头像 发表于 12-06 09:52 288次阅读

    C语言printf函数族学习笔记

    printf 应该是学习C语言的第一个函数,我们都知道它是用于字符串格式化输出的。但是它的用法你真正了解了吗
    的头像 发表于 11-24 11:15 548次阅读
    C<b class='flag-5'>语言</b>printf函数族学习笔记

    黑莓CEO程守宗将于本周退休

    黑莓公司首席执行官程守宗(John Chen)将结束10年任期,本周从软件公司退休。Richard Lynch担任总裁兼临时首席执行官(ceo)期间,黑莓正在寻找永远的继任者。
    的头像 发表于 10-31 14:37 414次阅读

    IAR在进行C语言代码开发的时候怎么嵌入汇编代码?

    IAR在进行C语言代码开发的时候怎么嵌入汇编代码
    发表于 10-11 06:45

    C语言中的结构体指针在访问的时候怎么读取成员变量的数据?

    C语言中的结构体指针在访问的时候怎么读取成员变量的数据
    发表于 10-10 07:07

    C语言经典算法大全

    C语言经典算法,详细解析算法过程及算法思想,给读者具有启发意义,教程包含C语言大部分常用算法,仅供学习,禁止商业传播
    发表于 10-07 08:16

    C语言深度解析

    C语言深度解析,本资料来源于网络,对C语言的学习有很大的帮助,有着较为深刻的解析,可能会对读者有一定的帮助。
    发表于 09-28 07:00

    Linux下C语言编程入门教程

    u3000本文是Linux 下C 语言编程入门教程。主要介绍了Linux 的发展与特点、C语言的基础知识、Linux 程序设计基础知识及其下C
    发表于 09-22 06:56

    C语言基础知识(一)

    、不等、大于、小于等。逻辑运算符:用于执行逻辑操作,如与、或、非等。赋值运算符:用于将值赋给变量。自增自减运算符:用于在原始值的基础上增加或减少1。C语言是一种高级的通用编程语言,广泛应用于系统软件
    发表于 08-10 15:16

    C语言基础知识(一)

    、不等、大于、小于等。逻辑运算符:用于执行逻辑操作,如与、或、非等。赋值运算符:用于将值赋给变量。自增自减运算符:用于在原始值的基础上增加或减少1。C语言是一种高级的通用编程语言,广泛应用于系统软件
    发表于 08-07 16:51

    第11集 (2.3#100)跨 CPU 的 C 语言魅力,你 get 到了吗

    嵌入式C语言
    于振南的单片机世界
    发布于 :2023年05月28日 18:09:38