近日,龍蜥社區(qū)(公眾號:OpenAnolis)的貢獻(xiàn)者之一、來自理事單位阿里云的許傳奇加入了 C++ 標(biāo)準(zhǔn)委員會。這是首個國內(nèi)企業(yè)代表進(jìn)入 C++ 標(biāo)準(zhǔn)委員會。
C++20 是 C++ 的一個重大更新,例如 Coroutine、Module、Concept 以及 Range 等。其中 Coroutine 可以讓程序員以同步方式編寫高并發(fā)的異步代碼,會帶來性能與開發(fā)效率的雙重提升。他們實現(xiàn)了一個高性能的輕量級協(xié)程庫,允許 C++ 開發(fā)者以同步方式寫異步代碼。也正因為這個特點,同步代碼可以很方便地切換到協(xié)程代碼,同時完成異步化,這往往能獲得一個數(shù)量級的性能提升。而協(xié)程也可以使代碼更簡潔易懂、方便維護(hù)。
但 Coroutine 在正式進(jìn)入 C++20 時,其支持并不完善。一方面是編譯器支持層面有許多問題,如優(yōu)化不完善、bug 比較多等;另一方面是在標(biāo)準(zhǔn)制定層面,Coroutine 只制定了基礎(chǔ)語法,并沒有完成協(xié)程庫的制定。由于 C++20 協(xié)程的語法對 C++ 開發(fā)者而言難以理解,不容易直接使用,因此一個包裝好的協(xié)程庫是必須的。如果沒有一個穩(wěn)定的編譯器支持,那使用協(xié)程必然是沒有希望的;同時如果沒有一個好用易懂的協(xié)程庫,那大規(guī)模地使用協(xié)程也必然沒有希望。
據(jù)許傳奇透露,新語言標(biāo)準(zhǔn)在大規(guī)模 C++ 項目中的規(guī)模化落地并不容易,因為是最新標(biāo)準(zhǔn),在落地過程中遇到的許多問題在公開的互聯(lián)網(wǎng)中并不存在,更不用提解決方案了,所以大部分時間都花在理解與解決這些問題上。在積累新標(biāo)準(zhǔn)在大規(guī)模 C++ 項目中的實踐經(jīng)驗的同時,一方面對當(dāng)前標(biāo)準(zhǔn)的設(shè)計有了更深的理解,另一方面也看到了可以改進(jìn)標(biāo)準(zhǔn)的機(jī)會。經(jīng)過持續(xù)努力,完成了協(xié)程在大型 C++ 項目中的規(guī)模化應(yīng)用。在這個過程中,他們不斷地嘗試將經(jīng)驗、 問題與解決方案反饋到 Clang/LLVM 與 C++ 社區(qū),也得到了社區(qū)的高度認(rèn)可。
龍蜥社區(qū)(龍蜥微信號:openanolis_assis)一直秉持著開放、中立的原則,一方面歡迎更多的企業(yè)和企業(yè)優(yōu)秀成員加入社區(qū),另一方面社區(qū)企業(yè)和成員們也在積極為國際社區(qū)做貢獻(xiàn)。龍蜥社區(qū)(釘釘號:33311793)的理事單位會一直持續(xù)地將基礎(chǔ)軟件領(lǐng)域的工作貢獻(xiàn)到 Linux Kernel、OpenJDK、Clang/LLVM、GCC 等社區(qū),另外其他的工作也會逐步開源。
進(jìn)入 ISO C++ 標(biāo)準(zhǔn)委員會,這代表著龍蜥社區(qū)理事單位之前在 C++ 語言方面的工作走在正確的道路上,也代表著其正式踏進(jìn)了語言演化生態(tài)的上游,進(jìn)入了設(shè)計階段。
許傳奇表示,希望通過參與程序語言標(biāo)準(zhǔn)的制訂,進(jìn)入到程序語言演化周期的上游,以把握住程序語言技術(shù)演進(jìn)的主航道,打造出領(lǐng)先的程序語言基礎(chǔ)設(shè)施。未來,這一成果也將支持和反饋到龍蜥社區(qū)中。
再次恭喜龍蜥社區(qū)成員許傳奇同學(xué)入選,也歡迎更多優(yōu)秀的人加入龍蜥社區(qū)。