C++20 能讓 C++ 復興嗎?TIOBE 公佈 2020 年 9 月的程式語言排行榜,C++ 位列第四,僅次於 C、Java 和 Python。而且 C++ 相比去年同期增長 1.48%,成為增長最快的程式語言。TIOBE 程式設計社群指數是衡量程式語言流行度的指標。

該指數每月更新一次,是基於谷歌、必應等 25 種搜尋引擎上與程式設計相關的搜尋查詢得到的結果。TIOBE 指數旨在反映程式語言受歡迎程度的變化。

2020 年 9 月 TIOBE 程式語言排行榜前 15 名。Tiobe 排行榜上,前 10 位中排在 C++ 之後的語言包括 C#、Visual Basic、JavaScript、PHP、R 和 SQL。而 Java 雖然排名第二,但與 C++ 相反的是,它相比去年同期下降了 3.18%。

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 語言程式碼。”

但是也有開發者表示,雖然要花時間瞭解更新的內容,但每次更新都是有道理的:

參考連結:

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

自 機器之心