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

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

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

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

1979 年,C++ 的创建者 Bjarne Stroustrup 开始着手开发这种编程语言,该语言最初被设计为对 C 语言对改进版,增加了基于面向对象编程的功能。

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++ 的成功属于意料之外相关推荐

  1. C 之父:C 的成功属于意料之外,C 11是转折点

    C 的起源可以追溯到 40 年前,但它仍然是当今使用最广泛的编程语言之一. 到 2020 年 9 月为止,C 是仅次于 C 语言.Java 和 Python,位于全球第四的编程语言.根据最新的 TIO ...

  2. Chrome 开发者工具各种骚技巧

    点击上方的终端研发部,右上角选择"设为星标" 作者:老姚 链接:https://juejin.cn/post/6844903604839514125 前言 对于每个前端从业者来说, ...

  3. 极客日报第 13 期:因未发项目奖金,一名程序员决定删代码泄愤;2020年最常用密码TOP200出炉,你都用过吗?

    文章目录 互联网快讯 程序员专属 Github 每日精选 CSDN 社区优质博文精选 互联网快讯 1.三大运营商或于年底联合宣布 5G 消息商用 据报道,在 2020 中国移动全球合作伙伴大会期间,从 ...

  4. 从服务器收到意料之外的响应,WordPress出现“从服务器收到预料之外的响应。此文件可能已被成功上传。请检查媒体库或刷新本页。”错误的解决方法...

    在WordPress网站上遇到图片上传问题?对于大多数初学者来说,图片上传错误可能会让人很困惑,因为无需您做任何其他操作就可以显示它们. 无法上传图片是WordPress中最常见的图片问题之一.幸运的 ...

  5. 如何做一款成功的APP应用

    译者注: 本文作者从自身丰富的应用开发设计实践经验和大量的优秀应用实例中,总结提炼了从产品概念.设计.开发到市场推广等一系列的相关原则,指导移动开发人员怎样来打造一款成功赚钱的应用.姗姗来迟的这篇文章 ...

  6. 意料之外,也是情理之中 - 我的自由职业之旅

    掐指一算,我已经在自由职业的道路上行走一年多了,在过去的一年里,有辛酸,也有欢乐,有幸运,也有遗憾,但是没有后悔. 而我走上自由职业的道路,是意料之外,也是情理之中,只是这一天,来得比我想象中的快. ...

  7. 苏世民的54条人生成功经验

    黑石集团董事长苏世民给创新者提了54条人生建议,都是其历经多年沉淀下来的真知灼见: 1. 做大事和做小事的难易程度是一样的.所以要选择一个值得追求的宏伟目标,让回报与你的努力相匹配.   2. 给你敬 ...

  8. (九)苏世民:我的经验和教训:苏世民成功投资的十五条法则

    作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai (一)苏世民:我的经验和教训:25条工作和生活原则 (二)苏世民:我的经验和教训:追梦(1&2) ...

  9. 孙浩北大计算机,周耀山工作简报第53期——清华北大高材生黎明、孙浩在白河高级中学学法座谈会成功举行...

    清华北大高材生黎明.孙浩在白河高级中学学法座谈会成功举行 在秦焕新.黄振和刘晓锋三位组长的认真组织下,我校首次邀请清华.北大学生与我校学生进行的学习方法座谈会在博观楼四楼大厅成功举行. 7月22日,我 ...

最新文章

  1. 专访小书作者刘传君:练太极的“读书机器”
  2. svn 主干和分支项目代码更新与同步
  3. 二进制(bit)整数
  4. iOS 7 iPhone iPad应用开发技术详解
  5. 针对SharePointFarm场时安装部署OWA的步骤
  6. 如何用python编程制作出表格_使用Python轻松制作漂亮的表格
  7. Swift中的函数curring简介
  8. ubuntu 16.04 编译android,Ubuntu 16.04 64bit 编译 Android 4.4 源码
  9. 12分钟即达背后的智能支撑
  10. navicat远程连接mysql,2003 can't connect to mysql server on 10038
  11. Flex里[Exclude]标签的作用:对外忽略/隐藏内部某对象
  12. Django tips: 查看当前Request所执行的所有SQL
  13. Laravel 2017 年度调查报告
  14. [讨论] 1.虚拟设备驱动程序初步
  15. 聊天室私人聊天原理_如何设置极其安全的私人群组聊天
  16. cannot read property 'options' of underfined
  17. iOS使用UICollectionView只允许向左方向滑动,不允许向右方向滑动。
  18. hicharts堆叠柱状图堆叠数据标签显示百分比
  19. 分享如何在 PingCode 这类专业的看板软件中管理敏捷Kanban 项目
  20. 微博营销有什么价值?应注意什么?

热门文章

  1. 《网络攻防》实验三:免杀原理与实践
  2. Python小游戏之“读心术”
  3. 区块链寒冬,你必须看的一篇深度贴,你想知道的都在这里了
  4. K-Means集群算法
  5. 【从0到1搭建LoRa物联网】1、LoRa物联网的架构
  6. 【偷鸡系列】华为OD机试 :找终点
  7. ICPC nangchan I. Max answer
  8. 单招报计算机要考什么,单招考试一般都考什么内容
  9. ArcPY实现分图斑批量制图
  10. 梅科尔工作室-Django保姆教程-1