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