CSDN编者按:强大、灵活、复杂:C ++的起源可以追溯到40年前,如今,它仍然是当今使用最广泛的编程语言之一。为什么C
++能够长盛不衰?TechRepublic对C ++之父Bjarne Stroustrup进行访谈,了解在他眼中的C ++。

图源:维基百科

整理 | Owen Hughes
译者 | 夕颜
出品 | CSDN(ID:CSDNnews)

C ++的起源可以追溯到1979年,当时Bjarne Stroustrup着手开发这种语言时,它还被称为“ C with Classes”。这门编程语言设计的初衷,是对C编程语言进行改进,增加了一些基于面向对象编程的功能。

C ++会成功我也很惊讶

Stroustrup谈到:“ C ++的成功令人惊讶。我认为,C ++成功的原因在于其最初的设计目标——有效地使用硬件,再加上强大的抽象机制,以及根据实际使用情况的反馈进行谨慎的调整。”

现在,这门语言是最受开发人员欢迎的语言之一,为全球的系统和服务提供支持。

“我想用通信系统创造一个多计算机系统,这个通信系统可以共享内存,或者网络,” Stroustrup解释说。

“我把重点放在软件上。我需要编写底层的,接近硬件的代码,比如内存管理器,进程调度程序和设备驱动程序,来分离软件组件,以便它们可以在沟通方式定义明确的独立电脑上运行。”

然而,当时没有任何一门语言能胜任这项工作,因此Stroustrup决定自己创造。他这样描述这种理想中的语言:“ C with Classes应该具备C语言接近硬件的能力,并且有与Simula类似的抽象和代码组织能力。”

从很早的时候开始,Stroustrup就意识到自己对这门语言没有什么独裁统治的控制权。早期的C ++工作只有他和Bell Labs的几个同事在搞,直到语言标准化开始后,这个数字才激增到几十人。

如今,C ++标准委员会大约有400名成员,并发展了更广泛的用户群体,他们是这门语言的追随者,同时也尝试影响它的发展方向。

那么,大家对C++如此热情,如何保持这种编程语言的连贯性呢?“这是一个机遇,也是一个巨大的问题,”Stroustrup坦承。

“最难的是找到重点所造并保持连贯性。一旦知道了自己想要的东西,最终就会找到一种很好的技术方法来做到这一点。”

记住Vasa

1998年是C ++正式标准化的一年,也奠定了它的地位。至此,C ++已成为世界上最常用的编程语言之一,并保持至今。

但Stroustrup认为,直到十三年后C ++ 11的到来,才为这门语言的未来发展奠定了基础。他说:“ C ++ 11使C ++感觉像是一种新语言。”

“对并发的类型安全的支持是必不可少的。C++ 11提供了一系列相互支持的功能,例如用于编译时计算、lambda、自动类型推导和可变参数模板的[恒定表达式]函数。”

尽管C ++ 11引入了一些使语言更简单、更快和更具表现力的新特性和功能,但却没有改变这门语言很难学的事实。Stroustrup也承认这一点。

“ C ++确实很复杂,很好地掌握它需要付出很多努力,”Stroustrup说。“不幸的是,人们不只是想要简单,他们还想要一些不可能的东西:一种更简单的语言,具有更多的功能,但不会破坏现有的代码。”

Stroustrup对这种“困境”的回应,是C ++添加了一些功能,这些功能“使简单的事情变得更简单”,例如,不仅支持常见用例,同时又保持兼容性和稳定性。

对于像C ++这样的“巨兽”或任何其他主要编程语言来说,做到这件事都是说起来容易,做起来难。Stroustrup解释说,最大的挑战之一是,就决定采用或忽略哪些新功能达成共识,这本身就需要大量的讨论、时间和耐心。

即使那样,也并不是所有好的功能都可以被采用。他解释说:“我们必须抉择,增加那些真正对人们有帮助的功能,而且很不能过多,要是所有有用的功能都添加,语言就会因不堪其重而沉船。”

就像Vasa一样。这是一艘17世纪的瑞典大型战列舰,由于设计欠佳,在首航时这艘巨轮就沉没在斯德哥尔摩港口。

“在最高管理者——国王的坚持下,没有采纳技术人员更专业的判断,它满载美丽的雕像和的沉重的枪支。因为超重,一阵风把它掀翻了。

“我反复谈论、写到很多有关Vasa的内容,来提醒和警告那些热衷于通过添加功能来改进C ++的人,请记住Vasa!所以目前为止,C ++还没有崩溃。”

在Stroustrup看来,这些年C ++的生存之道是什么?“从小处做起,阐明基本原则,明确长期目标,并根据实际使用情况的反馈来改进。”

确实,C ++诞生已经超过35年了。今天的C ++比早期的C ++更加强大和富有表现力。但是,直到今天,原始设计的痕迹仍然保留到现在。

Stroustrup说:“如今,仍有一些40年前的简单的程序至今还在运行。”

“对于使用了数十年的系统来说,稳定性是一种重要的语言功能。事实上,许多早期的想法只有在C ++ 20中才可用。从一开始我就知道没办法创造一门理想的语言,所以我必须以渐进发展为目标。老实说,我不相信存在一种完美的语言的想法。怎样就是完美了?对于谁来说?

他补充道:“改进是应对世界变化带来的挑战和吸纳新思想的必要条件。”

实践中的C ++

截至2020年9月,在全球范围内,C ++是仅次于C、Java和Python的第四大流行编程语言。根据最新的TIOBE索引,它也是增长最快的编程语言。C ++是一种通用的编程语言,由于其强大的功能和灵活性而受到开发人员的青睐,这使其成为操作系统、Web浏览器、搜索引擎(包括Google)、游戏、商业应用程序等的理想选择。

Stroustrup总结道:“如果你有一个问题,需要高效使用硬件,并且要应对高复杂性,那么C ++显然是个好选择。如果你并没有这两个需求,那使用低级但高效的语言,或者采用高阶但并不高效的语言就能做到。”

然而,虽然C ++这么受欢迎,但Stroustrup指出,很难准确指出C ++确切的用途和用处。

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

“在任何大型系统中,通常会在较低级别和对性能至关重要的部分中看到C ++的身影。而这些系统部分,一般终端用户,甚至系统的其他部分的开发人员都看不到。因此,有时我把C ++当作是一切的看不见的基础。”

他还强调了开发人员调查在评估编程语言的普及度方面其实并不那么可靠:“我们很难计算程序员的数量。Web调查通常只是计算一些“噪音”;也就是说,统计的是大家都在谈论的,而不是实际用过的。”

C ++的未来

现在,Stroustrup是摩根士丹利的一名技术研究员。在这家金融巨头中,与C ++标准的国际标准化组织(ISO)和《 C ++核心准则》的合作是他工作的一部分,但他仍重度参与C ++的开发。

最值得注意的是,Stroustrup还组织了一部分编程语言方向指导小组,这个小组会提出并讨论有关编程语言未来发展的建议。他还是改进小组的一员,参与有关新语言功能的讨论。

但是,在C ++的日常运行方面,Stroustrup更愿意扮演幕后角色。他承认:“我会参与管理工作,但尽量少做。我不是一个很好的管理者。”

在新冠爆发之前,Stroustrup会花很多时间四处传授知识,并通过他的书、文章和访谈向全世界介绍C ++。但由于新冠,这样的生活暂告一段落。

“为了更好地工作,我非常需要通过交流来了解大家遇到的问题,并尝试用我的方法帮助他们,” Stroustrup说。

“因为新冠疫情,我得不到我急需的反馈。线上交流毕竟和现实不同,在讨论设计和想法的时候,Zoom会议不如面对面的效果好 。”

COVID-19爆发也阻碍了C ++语言的下两个迭代版本——C ++ 20和C ++ 23的发展,但Stroustrup确认,“几乎所有”的 C ++ 20都将在2020年发布。

“除此之外,还有关于Unicode、数字、游戏开发和低延迟、工具、AI等方面的工作需要做。”他补充道。

“时机成熟后,我们将推出一项功能(语言和库),并且每三年发布一次修订的标准。C++ 14、C ++ 17和C ++ 20会按时交付。值得注意的是,C ++的标准制定工作与主要系统的进展基本是同步的。

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

本文为CSDN翻译文章,转载请注明出处。

原文链接:
https://www.techrepublic.com/article/c-programming-language-how-it-became-the-invisible-foundation-for-everything-and-whats-next/

C++之父访谈录:我也没想到 C ++ 会这么成功!相关推荐

  1. 【转】STL之父访谈录

    转自:http://www.jr163.org/cup2/9/9597.htm STL之父访谈录 STL之父访谈录 1995年3月,Dr.Dobb's Journal特约记者, 著名技术书籍作家Al ...

  2. 万万没想到!ModelArts与AppCube组CP了

    摘要:嘘,华为云内部都不知道的秘密玩法,我悄悄告诉您! 双"魔"合璧庆双节 ↑开局一张图,故事全靠编 华为云的一站式开发平台ModelArts和应用魔方AppCube居然能玩到一起 ...

  3. 没想到系列之YOLOv4:Optimal Speed and Accuracy of Object Detection

    两个月以前YOLO之父 Joseph Redmon发文称不能忍受自己的研究被用于军事等带来的负面影响,放弃继续推进YOLO的研究,群里师兄弟们都在为之惋惜,这辈子看不到YOLOv4的出现了,但是没想到 ...

  4. 真没想到,Python还能实现5毛特效

    来源 | ZackSock(ID:ZackSock) 图源 | 视觉中国 Python牛已经不是一天两天的事了,但是我开始也没想到,Python能这么牛.前段时间接触了一个批量抠图的模型库,而后在一些 ...

  5. PyTorch迎来5岁生日,创始人带领大一实习生开发:没想到会这么成功

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨量子位 编辑丨极市平台 导读 PyTorch公开发布5周年! ...

  6. 没想到我提前56年感受了赛博朋克

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 硬核的 ...

  7. 显卡暴涨,这我万万没想到啊

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 梦晨 晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI ...

  8. 万万没想到,坤坤洗白的第一步是周琦…

    前晚(2日)中国男篮与波兰队的关键一战惜败后,几乎所有中国球迷都在哭"琦","琦"到一夜未眠. 周琦关键时刻边线发球失误,硬生生把中国男篮提前出线的jio给拖了 ...

  9. 科学家们竟用乐高观察细胞,网友:万万没想到啊

    杨净 子豪 发自 凹非寺 量子位 报道 | 公众号 QbitAI 玩乐高还能玩出个显微镜?! 原本以为是一个普普通通的玩具. 没想到,还真能当成显微镜来用,是能看到细胞的那种. 真·高端新玩法! 比如 ...

最新文章

  1. 【jquery】一款不错的音频播放器——Amazing Audio Player
  2. literature review and methodology
  3. MySQL主从复制从机验证报错:ERROR 3021(HY000):this operation cannot be performed with a
  4. PHP后门新玩法:一款猥琐的PHP后门分析
  5. 在web.config里注册HttpModule
  6. Markdown--绘制流程图(flowchart)
  7. 一统江湖的大前端(3) DOClever——你的Postman有点Low
  8. EDUCoder编程练习题解(字符数组)
  9. 计算领域高质量科技期刊分级目录
  10. hping3安装及使用
  11. Hadoop各组件详解
  12. 有些事情让感情无处安放
  13. 数据透视:Excel数据透视和Python数据透视
  14. 怎么给证件照换背景?教你一招快速更换证件照背景色
  15. 【科普园地】郭雷院士:系统的反馈原理及魅力
  16. 【蓝桥杯单片机组第四届模拟题】— “模拟智能灌溉系统”
  17. Linux驱动开发 / fbtft源码速读
  18. 用exe4j将jar转为exe可执行程序
  19. ASIO 和 Websocket++ 独立编译
  20. 【论文笔记】Mutual Information-Based Temporal Difference Learning for Human Pose Estimation in Video

热门文章

  1. 从生产线到生产岛:理解敏捷开发中的设计与测试活动
  2. django 环境配置.
  3. docker 实战---使用oracle xe作为开发数据库(六)
  4. Scala Hello 示例
  5. sql2005 分页 ROW_NUMBER()
  6. php命令执行脚本文件,PHP文件包含与命令执行方式总结
  7. vue 解决跨域 调试_vue+Java后端进行调试时解决跨域问题的方式
  8. 【OpenCV】图像线性混合
  9. 剑指offer之删除链表中重复的结点
  10. 剑指Offer值二叉树的深度