原文 from 機器之心
C++20 能讓 C++ 復興嗎?
TIOBE 公佈 2020 年 9 月的程式語言排行榜,C++ 位列第四,僅次於 C、Java 和 Python。而且 C++ 相比去年同期增長 1.48%,成為增長最快的程式語言。
TIOBE 程式設計社群指數是衡量程式語言流行度的指標。該指數每月更新一次,是基於谷歌、必應等 25 種搜尋引擎上與程式設計相關的搜尋查詢得到的結果。TIOBE 指數旨在反映程式語言受歡迎程度的變化。
C++ 語言誕生於 20 世紀 80 年代,現在已有 35 年的歷史。
2003 年是 C++ 的高光時刻:當年 8 月它達到了佔比 17.53% 的高點,位列 top 3 程式語言,並獲得當年的 TIOBE 程式語言獎。但之後 C++ 開始走下坡路。2005 年以後,它的佔比甚至再沒超過 10%,2017 年 C++ 出現了歷史最低記錄 4.55%。但是,今年 9 月的排行榜單顯示,C++ 達到 7.11% 的份額,年增長率高達 1.48%,成為增長最快的程式語言。
TIOBE 軟體 CEO Paul Jansen 表示,這一積極變化可能受益於 C++20 標準的誕生。
C++20:C++11 以來最大的發行版本
近日,國際標準化組織(International Organization for Standardization,ISO) C++ 組,21 工作組(WG21)投票通過「C++20」的最終版本,這是自 2017 年 C++17 以來,C++ 語言的首次重大更新。
微軟工程師、WG21 主席 Herb Sutter 稱,C++20 是「自 C++11 以來最大的發行版本」。
C++20 中的兩個關鍵特性是「模組」(modules)和「協程」(coroutines)。Jansen 表示:「模組這一特性將取代可怕的 include 機制」。
C++ 之父 Bjarne Stroustrup 認為:C++20 很特別,因為它完全遵循了《The Design and Evolution of C++》(1994 年版本)。尤其是,它囊括了概念、模組和協程。
-「概念」並未出現在這本書中,但 Bjarne 用了三頁的篇幅為此致歉。Bjarne 表示,當時沒有人知道如何設計和實現這一特性。
-「模組」在當時只是一個夢,不過在那本書中 Bjarne 還是特意提及了它。Bjarne 表示,自己夢想有一天能夠去掉前處理器。
-「協程」是 C++ 誕生頭十年裡的重點,當時其他大部分語言都不具備這一特性。
此外,C++20 還改進了併發性等。
對於 C++ 的這次重大更新,開發者也發表了自己的看法。
有網友認為,C++ 變得越來越難懂,規則越來越複雜:
事實上,C++ 過於複雜這一點一直遭到詬病。有開發者表示:「學習全部的 C++ 規則是不切實際的。甚至在實際編寫中,C++ 程式碼越來越像 C 語言程式碼。」
但是也有開發者表示,雖然要花時間瞭解更新的內容,但每次更新都是有道理的:
參考links:
https://www.zdnet.com/article/developers-programming-language-c-is-about-to-get-this-huge-update/
https://www.tiobe.com/tiobe-index/
https://isocpp.org/blog/2020/02/bjarne-stroustrup-on-cpp20s-significance
https://www.reddit.com/r/cpp/comments/imzkl4/c20_has_been_approved/
https://news.ycombinator.com/item?id=24389549
關注數據君的臉書:
我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。按贊我的臉書,會有豐富資料包贈送唷!