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

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

3天内不再提示

40年后C++为何仍然当今使用最广泛的编程语言之一?

Linux爱好者 来源:Linux爱好者 作者:Linux爱好者 2021-02-15 11:18 次阅读

强大、灵活、复杂:C++ 的起源可以追溯到 40 年前,但它仍然是当今使用最广泛的编程语言之一。为了找出原因,TechRepublic 采访了 C++ 之父 Bjarne Stroustrup。

C++ 的起源可以追溯到 1979 年,那时编程语言的创造者 Bjarne Stroustrup 第一次开始研究 C++ 这门语言,当时被称为“带类的 C”(C with Classes)。该语言的设计初衷是作为对 C 编程语言的改进,添加了一些基于面向对象编程的功能。

Stroustrup 告诉 TechRepublic 说:“C++ 的成功显然令人吃惊。我认为 C++ 的成功在于其最初的设计目标:高效地使用硬件,再加上强大的抽象机制,并在实际使用反馈的基础上谨慎地改进”。如今,它已经成为最受开发人员欢迎的语言之一,支撑着世界各地的系统和服务。

Stroustrup 解释道:“我想建立一个多计算机系统,它有一个通信系统,既可以是共享内存,也可以是网络。”

“我的重点是软件。我需要编写接近硬件的低级代码,例如内存管理器、进程调度器和设备驱动程序来分离软件组件,以便它们能够在通信方式定义明确的不同计算机上运行。”

在那时,还没有一种语言能够胜任这项任务,因此 Stroustrup 致力于构建一种语言来胜任这项任务。他这样描述这种语言:“带类的 C 应该结合了 C 接近硬件工作的能力和类似 Simula 的抽象和代码组织能力。”

从相当早的时候起,Stroustrup 就认识到,他不能在控制语言方面实行“专制”。尽管早期 C++ 的工作仅仅涉及到他和贝尔实验室(Bell Labs)的几个同事,但当 C++ 语言标准化的努力开始时,这方面的工作才迅速增加到几十人。

如今,C++ 的标准委员会中有大约 400 名成员,以及关注并试图影响该语言发展方向的广大用户社区。

那么,在面对满怀热忱的人们时,该如何使编程语言保持连贯性呢?“这是一个机遇,也是一个巨大的问题,”Stroustrup 说。

“最困难的部分是确定重要内容并保持连贯性。一旦你知道自己想要什么,最终,你就会发现一种很好的技术方法来达到目的。”

记住 Vasa

1998 年,C++ 正式实现了标准化,并成为可靠的主力军。至此,C++ 已成为世界上最常用的编程语言之一,并且一直保持到今天。

Stroustrup 说,正是 13 年后 C++11 的到来,这才为该语言未来的发展奠定了基础。他说:“C++11 使 C++ 感觉像是一种全新的语言。”

“对并发类型的安全支持是必不可少的。C++11 提供了一个密集的网络,其中包含相互支持的功能,如用于编译时计算的(常量表达式)函数、lambdas、自动类型推导以及可变模板。”

尽管 C++11 引入了一些新的特性和功能,使得该语言变得更简单,更快速,更具表现力,但这种语言仍然以难以掌握而著称,Stroustrup 也承认了这一点。

Stroustrup 说:“C++ 确实很复杂,要想学好用好它,需要付出很多努力。不幸的是,人们不只是想要简单,他们还想要某种不可能的东西:一种更简单的语言,拥有更多的特性,并且还不会破坏他们现有的代码。”

Stroustrup 对这个“三难问题”的回应,正如他所说的那样,就是增加一些特性,“让简单的事情变得简单”,举例来说,通过对常见的用例进行泛化或直接支持——同时还要保持兼容性和稳定性。

对于像 C++ 这样的“庞然大物”,或者任何主流编程语言来说,这件事说起来容易做起来难。Stroustrup 解释说,在决定采用哪种新特性还是省去哪种特性方面,达成共识是一个巨大的挑战,需要大量的努力、讨论、时间和耐心。

即便如此,也并不是所有的优秀特性都能被接受。他解释说:“你必须试着只加入那些真正能帮助人们的东西,然后再加入一些这样的东西——因为如果我们接受那些能够帮助人们的特性,语言就会不堪其重而倾覆。”

Stroustrup 指的是 Vasa,这是 17 世纪瑞典的一艘大型战舰,由于设计不佳,在处女航时就在斯德哥尔摩港沉没了。

他说:“在国王——最高管理者的坚持下,这艘战舰满载漂亮的雕塑和大炮,这与技术人员的专业判断相悖,造成这艘战舰头重脚轻,结果被一阵风给掀翻了。”

“我反复谈论并撰写关于 Vasa 的文章,来提醒和警告那些渴望通过添加特性来改进 C++ 的人:记住 Vasa!因此到目前为止,C++ 还没有‘倾覆’。”

这么多年来,是什么秘密使 C++ 保持活力?“从小处着手,阐明基本原则,明确长期目标,并根据现实世界中实际使用的反馈进行开发。”

事实上,C++ 在诞生 35 年后,依然保持着强大的生命力。今天的 C++ 远比早期的 C++ 更强大,更具表现力。但即使在今天,最初的设计依然可见。

Stroustrup 说:“40 年前编写的一些简单的程序,到今天还可以运行。”

“对必须工作几十年的语言来说,稳定性是一种重要的特征。实际上,许多早期的想法只有在 C++20 中才能实现。我从一开始就知道,我不可能构建理想的语言,因此我必须以渐进式发展为目标:改进。说真的,我并不相信完美语言的想法:要怎样就算是完美呢?对谁来说(是完美的)?”

他补充说:“为了应对不断变化的世界的挑战,融入新思想,改进是必须的。”

实践中的 C++

截至 2020 年 9 月,C++ 是全球第四大流行的编程语言,仅次于 C、JavaPython,而且根据最新TIOBE 索引来看,它也是增长最快的语言。

作为一种通用的编程语言,C++ 以其强大的功能和灵活性而受到开发人员的青睐,这使得它成为操作系统、网络浏览器、搜索引擎(包括 Google 的)、游戏、企业应用等的理想选择。

Stroustrup 总结道:“如果你有一个问题需要高效地利用硬件,同时还需要处理高度复杂性,那么 C++ 显然是一个不错的选择。如果你没有这两种需求的话,那么低级高效的语言或者高级但不高效的语言都是可以的。”

然而,即使 C++ 广泛流行,Stroustrup 也指出,要想准确地确定 C++ 确切的用途和用处,是非常困难的。

“对这两个问题的答案,估计是‘无处不在’,”他说。

“在任何大型系统中,你通常会在低级和性能关键部分发现 C++ 的影子。系统的这类部分往往不会被最终用户看到,甚至不被系统其他部分的开发人员看到,所以我有时把 C++ 称为一切的无形基础。”

同时他也强调了在评估特定编程语言的流行程度时,开发人员调查相对不可靠:“计算程序员的人数既困难又简单。网络调查通常只是测量‘噪音’,也就是说,统计的是人们都在谈论的,而非他们实际使用过的。”

C++ 的未来

如今,Stroustrup 是 Morgan Stanley 的技术研究员。他与国际标准化组织(ISO)合作制定 C++ 标准和 C++ 核心指南的工作,这被认为是他在这家金融巨头公司的角色的一部分,他仍然非常积极地参与 C++ 的开发。

最值得注意的是,Stroustrup 是方向小组的成员,该小组提出并讨论关于编程语言未来的建议。他还关注改进小组,并参与有关新语言特性的讨论。

然而,当涉及到 C++ 的日常运行方面时,Stroustrup 更乐意担任次要角色。“我关注行政工作,但尽量少做。我并不是一个伟大的管理者,”他承认。

在新冠肺炎疫情之前,Stroustrup 会经常四处授课,并通过他的书籍、文章和采访向全世界解释 C++,但和世界其他地方一样,这一工作在 2020 年暂告一段落。

Stroustrup 说:“在我的工作中,我非常依赖于与人们交谈,了解他们的问题,并且倾听我的想法是如何帮助他们的。”

“在这个新冠肺炎疫情期间,我得不到急需的反馈。而虚拟会谈和现实不一样,在讨论设计和想法时,Zoom 会议的效果并不如真正的面对面会议。”

新冠肺炎疫情阻碍了 C++ 编程语言的下两个迭代版本:C++20 和 C++23 的开发。但 Stroustrup 确认,“几乎所有”的 C++20 将在 2020 年发布。

“除此之外,还有 Unicode、数字、游戏开发和低延迟、工具、人工智能等方面的工作都要去做。”他说。

“当一个特性(语言和库)准备就绪时,我们就会进行发布,并且我们每三年会发布一个修订的标准。已按时发布的有 C++14、C++17 和 C++20。值得一提的是,标准的制定与主要实现者是高度同步的。”

“让 C++ 保持连贯性,并作为一个稳定的开发平台,这一点至关重要。”

原文标题:40 岁的 C++ 没有中年危机

文章出处:【微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

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

    关注

    88

    文章

    3438

    浏览量

    92321
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72880

原文标题:40 岁的 C++ 没有中年危机

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何成为名嵌入式C语言高手?

    如何成为名嵌入式C语言高手? 嵌入式系统是当今科技领域的核心,而C语言则是嵌入式系统开发中最
    发表于 04-07 16:03

    如何成为名嵌入式C语言高手?

    如何成为名嵌入式C语言高手? 嵌入式系统是当今科技领域的核心,而C语言则是嵌入式系统开发中最
    发表于 03-25 14:12

    四种编程语言之间的区别和联系

    编程语言是一种人与计算机之间进行交流的方式,不同的编程语言有着不同的特点和用途。本文将对四种常见的编程
    的头像 发表于 02-05 14:16 391次阅读

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

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

    vb语言c++语言的区别

    VB语言C++语言是两种不同的编程语言,虽然它们都属于高级编程
    的头像 发表于 02-01 10:20 554次阅读

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

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

    c++怎么开始编程

    C++是一种高级的、通用的编程语言,用于开发各种类型的应用程序。它是从C语言演变而来,也是一种静态类型语言,可以在不同的平台上进行开发。
    的头像 发表于 11-27 15:56 482次阅读

    单片机编程语言可以用c++吗?

    单片机编程语言可以用c++吗?
    发表于 11-09 06:40

    C语言的基础知识

    C语言是一种高级编程语言广泛应用于操作系统、嵌入式系统、游戏开发等领域。它由贝尔实验室的Dennis Ritchie在1972年开发而成,是Unix系统中最常用的
    发表于 09-28 17:27 699次阅读

    Linux下C语言编程入门教程

    编程风格等。u3000u3000Linux 作为个优秀的操作系统,项非常重要的功能就是支持系统调用尤其是支持C语言的系统调用功能十分的方
    发表于 09-22 06:56

    人工智能需要什么编程语言

    Python是最流行的人工智能编程语言之一。它是一种高级语言,它的语法简单易学,容易上手。Python拥有众多的第三方库和工具,如TensorFlow和PyTorch等,这些库和工具使Python成为人工智能领域的首选
    的头像 发表于 08-13 13:56 1176次阅读

    如何为Arm编译Cc++代码

    C++源代码翻译成机器代码的编译器。 •将汇编语言源代码翻译成机器代码的汇编程序。 •个链接器,用于将多个机器代码模块组合成个可执行文
    发表于 08-02 17:28

    C语言C++的区别看法

        虽然 C 语言并不是我所学的第一门语言,也不是我的最后一门语言,但是我仍然非常喜欢 C,当需要写程序时,我的第一选择还是 C。同时,我也会关注现代
    的头像 发表于 07-06 14:29 698次阅读

    嵌入式用什么语言编程?

    具有高级语言的易编程性,具代表性的应用就是UNIX操作系统,从20世纪80代中期C语言涉足实时系统之后,就受到了普遍的欢迎,是目前使用
    发表于 05-18 10:08

    上位机编程用什么语言 上位机编程软件哪个好

    上位机编程可以使用多种编程语言来实现,具体取决于应用场景、控制任务以及硬件设备的特性等因素。以下是一些通常用于上位机编程编程
    的头像 发表于 05-08 15:35 1.2w次阅读