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

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

3天内不再提示

C++创造者:成功属于意料之外

Q4MP_gh_c472c21 ? 来源:嵌入式ARM ? 作者:场长 ? 2021-01-02 09:46 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

C++ 的起源可以追溯到 40 年前,但它仍然是当今使用最广泛的编程语言之一。

到 2020 年 9 月为止,C++ 是仅次于 C 语言、JavaPython,位于全球第四的编程语言。根据最新的 TIOBE 索引,C++ 也是增长最快的语言。

近日,C++ 之父 Bjarne Stroustrup 在接受外媒访谈的时候,对 C++ 成功的关键和 它40 年来的发展历程进行了回顾。

C++ 的成功属于意料之外

1979 年,C++ 的创建者 Bjarne Stroustrup 开始着手

Bjarne Stroustrup 一开始没想到 C++ 会获得如此大的成功,他说:“C++ 的成功显然令人惊讶。我认为它的成功取决于其最初的设计目标,就是有效的使用硬件,再加上强大的抽象机制,以及它根据来自实际使用情况的反馈进行谨慎的发展。”

构建 C++ 之初,Bjarne Stroustrup 希望用通信系统构建一个多计算机系统,该通信系统可以是共享内存,也可以是网络。他把重点放在了软件上,去编写底层的、接近硬件的代码。例如存储管理器,进程调度程序和设备驱动程序,以及分离软件组件,便于它们可以在运行使用更好的方式运行。

40 年前,是没有编程语言可以胜任这项工作的,Bjarne Stroustrup 对此花了很多心思。

现在,C++ 已经成为了最受开发人员欢迎的语言之一,巩固了全球的系统和服务。

C++ 11 使 C++ 成为一种新的语言

他从很早开始就意识到了这项工作不可能由他一个人来完成,但当时也只有 Bjarne Stroustrup 和他在贝尔实验室的几个同事全身心的投入其中。随着标准化进程加快,加入其中的人也越来越多,如今 C++ 标准委员会已有了 400 多名成员和更广泛的用户群体,他们共同努力影响着编程语言的发展方向。

1998 年是 C++ 正式标准化的一年,从那时起它就成了时间是最常用的编程语言之一,并至今都保持着这种地位。

Bjarne Stroustrup 说,其后 13 年到来的 C++ 11 为 C++ 的发展奠定了基础,他说:“C++ 11 使 C++ 感觉像是一种新的语言。”对并发的类型安全的支持是必不可少的,C++ 提供了相互支持的功能密集网络,例如用于编译时计算的函数、自动类型推导和可变参数模板的函数等等。

正如 Bjarne Stroustrup 所说,C++ 11 添加了一些新功能,这些功能可以使事情变得更简单,同时保持了兼容性和稳定性。不过,尽管 C++ 11 引入了一些使该语言更简单、更快、更具表现力的新功能,但它还是非常难掌握的。

Bjarne Stroustrup 坦言:“C++ 确实很复杂,要学会很好的使用它需要付出很多努力,但很多人想要的是更简单还具有更多功能的语言,并且不会破坏现有代码。”

对一种编程语言来说,最大的挑战之一是就决定采用和忽略哪些功能达成共识,这本身就需要大量的努力,花费很多时间去讨论。但即使是这样,也不是所有好的功能都可以被采用,必须添加真正对人们有帮助的东西。

C++ 流行几十年的秘诀

对于如何在几十年中保持 C++ 生存的秘诀,Bjarne Stroustrup 提到,“应该从小做起,阐明长期理想,并根据实际使用情况的反馈来发展。”


确实,C++ 走到今天已经超过 35 年了,今天的 C++ 比早期的 C++ 更加强大且富有表现力。但是,直到今天,它的一些简单程序仍在运行。

对于使用了数十年的系统来说,稳定性是一种非常重要的语言功能。事实上,许多早期的想法只有在 C++ 20 中才可用。Bjarne Stroustrup 说:“从一开始我就知道我无法构建理想的语言,所以我必须以渐进发展为目标。我不相信有完美的语言,这对语言本身和使用语言的人都有不同的标准。”

Bjarne Stroustrup 还补充道:“进化是应对不断变化的世界的挑战和融合新思想的必要条件。”

C++ 是一切的无形基础

C++ 是一种通用的编程语言,由于其强大的功能和灵活性而受到开发人员的青睐,这使其成为操作系统、Web 浏览器、搜索引擎(包括 Google)、游戏和商务应用程序等的理想选择。Bjarne Stroustrup 总结道:“如果有一个问题需要高效使用硬件并处理相当大的复杂性,那么C++显然是不错的选择。”

Bjarne Stroustrup 还提到,COVID-19 大流行阻碍了 C++ 下的两个迭代 C++ 20 和 C++ 23 的进展。未来他们会推出新功能,并在每三年发布一次修订的标准,C++ 17 和 C++ 20 也会按时交付。

然而,尽管 C++ 已经广泛流行,但 Bjarne Stroustrup 还是认为很难准确指出它的用途。他说:“在任何大型系统中,通常会在较低级别和对性能至关重要的部分中找到 C++。最终用户甚至系统的其他部分的开发人员通常都看不到系统的这些部分,因此有时我指的是 C++ 是一切的无形基础。”

原文标题:C++之父:C++的成功属于意料之外,C++11是转折点

文章出处:【微信公众号:嵌入式ARM】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

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

    关注

    88

    文章

    3690

    浏览量

    95410
  • C++
    C++
    +关注

    关注

    22

    文章

    2119

    浏览量

    75514

原文标题:C++之父:C++的成功属于意料之外,C++11是转折点

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    C++ 与 Python:树莓派上哪种语言更优?

    广泛应用于树莓派项目中。然而,C++在性能要求极高的应用和底层硬件控制方面表现出色。两之间的选择取决于项目需求和对编程的熟悉程度。嗯,这就是简短的答案,但读完后
    的头像 发表于 07-24 15:32 ?161次阅读
    <b class='flag-5'>C++</b> 与 Python:树莓派上哪种语言更优?

    主流的 MCU 开发语言为什么是 C 而不是 C++

    在单片机的地界儿里,C语言稳坐中军帐,C++想分杯羹?难喽。咱电子工程师天天跟那针尖大的内存空间较劲,C++那些花里胡哨的玩意儿,在这儿真玩不转。先说内存这道坎儿。您当stm32f4的256kRAM
    的头像 发表于 05-21 10:33 ?498次阅读
    主流的 MCU 开发语言为什么是 <b class='flag-5'>C</b> 而不是 <b class='flag-5'>C++</b>?

    C++学到什么程度可以找工作?

    C++学到什么程度可以找工作?要使用C++找到工作,特别是作为软件开发人员或相关职位,通常需要掌握以下几个方面: 1. **语言基础**:你需要对C++的核心概念有扎实的理解,包括但不限于指针、内存
    发表于 03-13 10:19

    基于OpenHarmony标准系统的C++公共基础类库案例:ThreadPoll

    1、程序简介该程序是基于OpenHarmony标准系统的C++公共基础类库的线程池处理:ThreadPoll。本案例完成如下工作:创建1个线程池,设置该线程池内部有1024个线程空间。启动5个线程
    的头像 发表于 02-10 18:09 ?411次阅读
    基于OpenHarmony标准系统的<b class='flag-5'>C++</b>公共基础类库案例:ThreadPoll

    Spire.XLS for C++组件说明

    Spire.XLS for C++ 是一款专业的 C++ Excel 组件,可以用在各种 C++ 框架和应用程序中。Spire.XLS for C++ 提供了一个对象模型 Excel
    的头像 发表于 01-14 09:40 ?686次阅读
    Spire.XLS for <b class='flag-5'>C++</b>组件说明

    EE-112:模拟C++中的类实现

    电子发烧友网站提供《EE-112:模拟C++中的类实现.pdf》资料免费下载
    发表于 01-03 15:15 ?0次下载
    EE-112:模拟<b class='flag-5'>C++</b>中的类实现

    AKI跨语言调用库神助攻C/C++代码迁移至HarmonyOS NEXT

    /C++代码快速迁移至HarmonyOS NEXT。凭借卓越的兼容性,AKI已成为厂商与开发打造鸿蒙原生应用过程中广泛使用的跨语言调用解决方案。 AKI是一款专为鸿蒙原生开发设计的FFI(外部函数接口
    发表于 01-02 17:08

    同样是函数,在CC++中有什么区别

    同样是函数,在 CC++ 中有什么区别? 第一个返回值。 C语言的函数可以不写返回值类型,编译器会默认为返回 int。 但是 C++ 的函数,除了构造和析构这两个特殊的函数,必须
    的头像 发表于 11-29 10:25 ?959次阅读

    C7000 C/C++优化指南用户手册

    电子发烧友网站提供《C7000 C/C++优化指南用户手册.pdf》资料免费下载
    发表于 11-09 15:00 ?0次下载
    <b class='flag-5'>C</b>7000 <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>优化指南用户手册

    MSP430优化C/C++编译器v21.6.0.LTS

    电子发烧友网站提供《MSP430优化C/C++编译器v21.6.0.LTS.pdf》资料免费下载
    发表于 11-08 14:57 ?0次下载
    MSP430优化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>编译器v21.6.0.LTS

    ARM优化C/C++编译器 v20.2.0.LTS

    电子发烧友网站提供《ARM优化C/C++编译器 v20.2.0.LTS.pdf》资料免费下载
    发表于 11-07 10:46 ?0次下载
    ARM优化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>编译器 v20.2.0.LTS

    TMS320C6000优化C/C++编译器v8.3.x

    电子发烧友网站提供《TMS320C6000优化C/C++编译器v8.3.x.pdf》资料免费下载
    发表于 11-01 09:35 ?1次下载
    TMS320<b class='flag-5'>C</b>6000优化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>编译器v8.3.x

    TMS320C28x优化C/C++编译器v22.6.0.LTS

    电子发烧友网站提供《TMS320C28x优化C/C++编译器v22.6.0.LTS.pdf》资料免费下载
    发表于 10-31 10:10 ?0次下载
    TMS320<b class='flag-5'>C</b>28x优化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>编译器v22.6.0.LTS

    C语言和C++中结构体的区别

    同样是结构体,看看在C语言和C++中有什么区别?
    的头像 发表于 10-30 15:11 ?826次阅读

    C7000优化C/C++编译器

    电子发烧友网站提供《C7000优化C/C++编译器.pdf》资料免费下载
    发表于 10-30 09:45 ?0次下载
    <b class='flag-5'>C</b>7000优化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>编译器