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

    文章

    3615

    浏览量

    93710
  • C++
    C++
    +关注

    关注

    22

    文章

    2108

    浏览量

    73636

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

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

收藏 人收藏

    评论

    相关推荐

    Triton编译器支持的编程语言

    编写和优化深度学习代码。Python是广泛使用的高级编程语言,具有简洁易读、易于上手、库丰富等特点,非常适合用于深度学习应用的开发。 二、领域特定
    的头像 发表于 12-24 17:33 275次阅读

    如何选择适合自己的编程语言

    当今这个技术日新月异的时代,编程语言的选择对于软件开发者来说至关重要。不同的编程语言有着不同的优势和适用场景,因此,选择合适的
    的头像 发表于 11-15 09:37 312次阅读

    NPU支持的编程语言有哪些

    与NPU起使用: C/C++CC++是性能要求较高的应用的首选语言,尤其是在需要直接与
    的头像 发表于 11-15 09:21 634次阅读

    单片机编程语言有哪些选择

    些常用的单片机编程语言,以及它们的特点和应用场景: 1. C语言 特点 :C语言
    的头像 发表于 11-01 14:13 527次阅读

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

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

    C语言与其他编程语言的比较

    C语言作为种历史悠久的编程语言,自其诞生以来,直在软件开发领域扮演着重要角色。它以其高效、灵
    的头像 发表于 10-29 17:30 270次阅读

    Orin芯片的编程语言支持

    语言支持 Orin芯片支持多种编程语言,以满足不同开发者的需求。其中,C/C++和Python是两种广泛
    的头像 发表于 10-27 16:45 290次阅读

    C++语言基础知识

    电子发烧友网站提供《C++语言基础知识.pdf》资料免费下载
    发表于 07-19 10:58 7次下载

    PLC编程语言C语言的区别

    在工业自动化和计算机编程领域中,PLC(可编程逻辑控制器)编程语言C语言各自扮演着重要的角色。
    的头像 发表于 06-14 17:11 2810次阅读

    fpga是用c语言还是verilog

    FPGA(现场可编程逻辑门阵列)开发主要使用的编程语言是硬件描述语言(HDL),其中Verilog是最常用的编程
    的头像 发表于 03-27 14:38 1990次阅读

    为什么很少用C++开发单片机

    C语言是面向过程的语言C++是面向对象的编程语言。结合本文来说,面向过程相比面向对象的
    发表于 03-25 14:26 961次阅读
    为什么很少用<b class='flag-5'>C++</b>开发单片机

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

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

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

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

    vb语言c++语言的区别

    Microsoft开发的种面向对象的事件驱动编程语言。它的设计目标是简化编程过程,让初学者也能快速上手。与之相比,C++
    的头像 发表于 02-01 10:20 2291次阅读

    C++简史:C++是如何开始的

    的 MISRA C++:2023 博客系列的第二部分。 在这篇博客中,我们将深入探讨 C++ 的历史、编程语言多年来的发展历程以及它的下
    的头像 发表于 01-11 09:00 588次阅读
    <b class='flag-5'>C++</b>简史:<b class='flag-5'>C++</b>是如何开始的