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/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++感兴趣,想要深入学习,这里有一个交流群推荐给你。点我进入

群内含有素材包,初学者入门学习资源,还有项目开发免费课程。更有牛人、大牛在线为你解答专业知识,为你在学习的道路上助力~

不论是小白还是进阶者,在这里都能获得成长。

最新文章

  1. C#调试心经(1)(转)
  2. twitter storm源码走读之7 -- trident topology可靠性分析
  3. Objective-c——UI基础开发第八天(QQ聊天界面)
  4. 依网友要求发个修改award bios的方法(刷CPU微码)
  5. IDF实验室-python ByteCode writeup
  6. 博弈论(二分图匹配):NOI 2011 兔兔与蛋蛋游戏
  7. jquery插件封装
  8. 用.net中的SqlBulkCopy类批量复制数据 (转载)
  9. Linux万能快捷键与命令
  10. .Net Collection Distinct 去重
  11. js 数组拷贝与深拷贝
  12. spring cloud bus原理总结
  13. ssh REMOTE HOST IDENTIFICATION HAS CHANGED!
  14. linux学习笔记-12.输入输出重定向及管道
  15. [SpringBoot] - 一份笔记
  16. RPM命令详解(安装、升级、卸载)
  17. Java常用基础代码
  18. java高级特性(1)--理解面向对象思想
  19. BI入门经典(转载)
  20. 【demo练习四】:WPF用户控件案例

热门文章

  1. Java中的微信支付(2):API V3 微信平台证书的获取与刷新
  2. 4G DTU模块和串口设备连接的方式
  3. Java学习的第二十四天
  4. .net 实现签名验签
  5. 我用 Python 找出了删除我微信的所有人并将他们自动化删除了
  6. bash中选择结构、循环结构与break、continue
  7. 腾讯云--cdn静态内容上传刷新
  8. TCP拥塞控制原理
  9. 《.NET 5.0 背锅案》第4集:一个.NET,两手准备,一个issue,加倍关注
  10. leetcode 30day--2