机器之心报道
编辑:小舟、魔王
C++20能让C++复兴吗?
TIOBE公布年9月的编程语言排行榜,C++位列第四,仅次于C、Java和Python。而且C++相比去年同期增长1.48%,成为增长最快的编程语言。
TIOBE编程社区指数是衡量编程语言流行度的指标。该指数每月更新一次,是基于谷歌、必应等25种搜索引擎上与编程相关的搜索查询得到的结果。TIOBE指数旨在反映编程语言受欢迎程度的变化。
年9月TIOBE编程语言排行榜前15名。Tiobe排行榜上,前10位中排在C++之后的语言包括C#、VisualBasic、JavaScript、PHP、R和SQL。而Java虽然排名第二,但与C++相反的是,它相比去年同期下降了3.18%。
C++语言诞生于20世纪80年代,现在已有35年的历史。
年是C++的高光时刻:当年8月它达到了占比17.53%的高点,位列top3编程语言,并获得当年的TIOBE编程语言奖。但之后C++开始走下坡路。年以后,它的占比甚至再没超过10%,年C++出现了历史最低记录4.55%。但是,今年9月的排行榜单显示,C++达到7.11%的份额,年增长率高达1.48%,成为增长最快的编程语言。
TIOBE软件CEOPaulJansen表示,这一积极变化可能受益于C++20标准的诞生。
C++20:C++11以来最大的发行版本
近日,国际标准化组织(InternationalOrganizationforStandardization,ISO)C++组,21工作组(WG21)投票通过「C++20」的最终版本,这是自年C++17以来,C++语言的首次重大更新。
微软工程师、WG21主席HerbSutter称,C++20是「自C++11以来最大的发行版本」。
C++20中的两个关键特性是「模块」(modules)和「协程」(coroutines)。Jansen表示:「模块这一特性将取代可怕的include机制」。
C++之父BjarneStroustrup认为:C++20很特别,因为它完全遵循了《TheDesignandEvolutionofC++》(年版本)。尤其是,它囊括了概念、模块和协程。
「概念」并未出现在这本书中,但Bjarne用了三页的篇幅为此致歉。Bjarne表示,当时没有人知道如何设计和实现这一特性。
「模块」在当时只是一个梦,不过在那本书中Bjarne还是特意提及了它。Bjarne表示,自己梦想有一天能够去掉预处理器。
「协程」是C++诞生头十年里的重点,当时其他大部分语言都不具备这一特性。
此外,C++20还改进了并发性等。
对于C++的这次重大更新,开发者也发表了自己的看法。
有网友认为,C++变得越来越难懂,规则越来越复杂:
事实上,C++过于复杂这一点一直遭到诟病。有开发者表示:「学习全部的C++规则是不切实际的。甚至在实际编写中,C++代码越来越像C语言代码。」
但是也有开发者表示,虽然要花时间了解更新的内容,但每次更新都是有道理的:
参考链接: