第58期:《C++之旅》

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

在不久前TIOBE发布的10月编程语言排行榜上,C++一举越过Java,摘得探花位,仅次于Python和C。

根据最新的 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++ 走到今天已经超过40多年了,今天的 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++ 20 已按时交付。

然而,尽管 C++ 已经广泛流行,但 Bjarne Stroustrup 还是认为很难准确指出它的用途。

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

他说:“在任何大型系统中,通常会在较低级别和对性能至关重要的部分中找到 C++。最终用户甚至系统的其他部分的开发人员通常都看不到系统的这些部分,因此有时我指的是 C++ 是一切的无形基础。”

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

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

C++之父Bjarne Stroustrup在不断提升C++功能的同时,也亲身致力于C++的教学推广,帮助更多人更深入、全面地了解C++,发现C++之美,更高效地使用C++!

其近期新作《C++之旅》以C++20为标准,讲述了最新的现代C++所提供的编程特性,以便让有经验的程序员清楚地了解现代C++的构成,在开发中最大程度地挖掘C++的性能等优势。

在这个C++依然为王,而且即将迎来有一个的春天的时刻,不妨读读这本C++之父的扛鼎之作!

社区赠书

本次福利将送出 5《C++之旅》,点击链接也可优惠购买

截止时间还需要支付积分,就还有赠书额度,先到先得

领取方式

  1. 支付积分即可兑换,复制“ 积分支付订单号 ”
  2. 在本站中私信我这些内容:积分支付订单号、活动书名、快递信息(姓名、电话、地址)

没有积分怎么办?

社区鼓励高质量的技术交流,所以只要发布有价值内容均可获得积分!

哪些内容算高质量?

1. 高质量的技术分享,原创、翻译、转载均可

2. 高质量的提问与回答,注意阅读《提问的艺术》

3. 分享优质Java与Spring的相关开源项目

另外,内容不错,获得精华贴、或者热门帖还有额外加分哦

THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容