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

    文章

    7598

    浏览量

    136208
  • 编程语言
    +关注

    关注

    10

    文章

    1938

    浏览量

    34601
收藏 人收藏

    评论

    相关推荐

    tlv320aic26用的时候总有滴滴声,是编程哪里错了吗

    tlv320aic26 用的时候总有滴滴声,是编程哪里错了吗
    发表于 11-01 07:44

    C语言与Java语言的对比

    C语言和Java语言都是当前编程领域中的重要成员,它们各自具有独特的优势和特点,适用于不同的应用场景。以下将从语法特性、内存管理、跨平台性、性能、应用领域等多个方面对C
    的头像 发表于 10-29 17:31 206次阅读

    按照这样学习C语言,成为卷王不是梦!

    在计算机编程领域,C语言被誉为一种强大而灵活的编程语言,掌握好C语言不仅可以让你轻松驾驭各种编程任务,还能够为你的职业生涯打下坚实的基础。但
    的头像 发表于 07-06 08:04 290次阅读
    按照这样学习<b class='flag-5'>C</b><b class='flag-5'>语言</b>,成为卷王不是梦!

    PLC编程语言C语言的区别

    在工业自动化和计算机编程领域中,PLC(可编程逻辑控制器)编程语言C语言各自扮演着重要的角色。尽管两者都是编程语言,但它们在多个方面存在显著的区别。本文将从多个维度深入探讨PLC编程
    的头像 发表于 06-14 17:11 2534次阅读

    C语言基础-为什么要使用C

    当今最流行的 Linux 操作系统和 RDBMS(Relational Database Management System:关系数据库管理系统) MySQL 都是使用 C 语言编写的。
    发表于 03-25 11:20 402次阅读

    C语言内存泄漏问题原理

    内存泄漏问题只有在使用堆内存的时候才会出现,栈内存不存在内存泄漏问题,因为栈内存会自动分配和释放。C语言代码中堆内存的申请函数是malloc。
    发表于 03-19 11:38 488次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>内存泄漏问题原理

    plc编程语言c语言的联系 c语言和PLC有什么区别

    PLC编程语言C语言的联系 PLC(可编程逻辑控制器)是一种针对自动化控制系统的特殊计算机。PLC编程语言是为了控制和管理自动化生产过程中的各种设备而设计的。与之相比,
    的头像 发表于 02-05 14:21 3881次阅读

    c语言,c++,java,python区别

    C语言C++、Java和Python是四种常见的编程语言,各有优点和特点。 C语言
    的头像 发表于 02-05 14:11 2241次阅读

    vb语言c++语言的区别

    VB语言C++语言是两种不同的编程语言,虽然它们都属于高级编程语言,但在设计和用途上有很多区别。下面将详细比较VB
    的头像 发表于 02-01 10:20 2062次阅读

    如何解决C语言中的“访问权限冲突”异常?C语言引发异常原因分析

    如何解决C语言中的“访问权限冲突”异常?C语言引发异常原因分析  在C语言中,访问权限冲突异常通
    的头像 发表于 01-12 16:03 5112次阅读

    C语言C++中那些不同的地方

    ++11标准。根据不同的标准,它们的功能也会有所不同,但是越新的版本支持的编译器越少,所以本文在讨论的时候使用的C语言标准是C89,C++标
    的头像 发表于 12-07 14:29 908次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>和<b class='flag-5'>C</b>++中那些不同的地方

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

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

    C语言代码的常用技巧

    #和##对于大部分C语言玩得还算比较溜的朋友并不是很陌生,不过能把这两个知识点游刃有余的应用到所在代码中的每个角落,似乎并没有几个人能够做到,学的时候朗朗上口,而编码的时候却抛之脑后。
    的头像 发表于 12-05 09:25 527次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>代码的常用技巧

    C语言运行环境是什么

    C语言运行环境(C language runtime environment)是指在执行C语言程序时所需的软件及硬件环境。
    的头像 发表于 11-27 16:13 3353次阅读

    如何选择创建c语言c++

    选择创建 C 语言C++ 都需要综合考虑多个因素。在决定使用哪种语言之前,我们需要对这两种语言的特点、优缺点、适用场景、学习成本等进行全
    的头像 发表于 11-27 15:58 571次阅读