中國電競網(wǎng)

中國電競網(wǎng)

C++創(chuàng)始人:需要改變的不是語言,而是開發(fā)者的思維方式!

阿修羅 148 chinaz

“C++ 不是一種可替代的語言。如果你問我們真正想要改變的是什么,那可能不是語言本身,而是開發(fā)人員的思維方式。”C++創(chuàng)始人、哥倫比亞大學(xué)教授比雅尼?斯特勞斯特魯普在 12 日接受媒體采訪時,如是強(qiáng)調(diào)。他表示,即使在人工智能AI)和新語言引領(lǐng)的開發(fā)環(huán)境發(fā)生變化的情況下,C++存在的理由依然有效,并指出真正的挑戰(zhàn)不是語言,而是思維方式的轉(zhuǎn)變。

他認(rèn)為,當(dāng)前的軟件(SW )生態(tài)系統(tǒng)過于注重“便利性”和“速度”,結(jié)果導(dǎo)致語言和開發(fā)方法的核心原則正在被削弱。

斯特勞斯特魯普特別指出,基于人工智能的代碼生成工具助長了“無意識編碼的習(xí)慣”。他表示:“人工智能專門學(xué)習(xí)并重新組合了現(xiàn)有代碼”,“結(jié)果是,過去錯誤的模式、陳舊的風(fēng)格很可能會被重復(fù)使用”。

作為這一觀點(diǎn)的依據(jù),他指出基于 GPT 的代碼生成器仍然在推薦 C++ 中早已被摒棄的方式,比如原始指針(raw pointer)或傳統(tǒng)的數(shù)組指針傳遞。他解釋說,問題在于:這些工具可能反而會阻礙現(xiàn)代 C++ 的編程理念 —— 即編寫安全且表現(xiàn)力強(qiáng)的代碼的趨勢。

對此,他警告稱,依賴人工智能提供的 “看似正確答案的代碼” 的開發(fā)者越來越多,而編程的本質(zhì) —— 問題識別和抽象設(shè)計能力必然會退化。

此外,他斷言:“優(yōu)秀的開發(fā)者應(yīng)該能夠定義問題并構(gòu)建與之匹配的模型”,“編碼只是結(jié)果,一旦將問題識別委托給人工智能,開發(fā)者就不再是技術(shù)人員了”。

斯特勞斯特魯普教授對人工智能時代創(chuàng)造新語言、或廢棄現(xiàn)有語言的嘗試也持強(qiáng)硬立場。他說:“僅僅因為語言的某些功能存在風(fēng)險,就去除這些功能或替代該語言,這并不是正確的答案。”

他解釋說,C++ 確實提供了一些復(fù)雜、且有時可能存在風(fēng)險的功能,但正是這些功能成為了高性能系統(tǒng)、實時控制、大規(guī)模分布式處理等重要領(lǐng)域必不可少的工具。

斯特勞斯特魯普教授還強(qiáng)調(diào),他希望人工智能等技術(shù)的發(fā)展不會以威脅開發(fā)者專業(yè)能力的方式進(jìn)行。他的觀點(diǎn)是,人工智能可以提高代碼編寫的生產(chǎn)效率,但為了防止由此導(dǎo)致的判斷能力喪失和技術(shù)債務(wù)擴(kuò)散等問題,開發(fā)者自身需要對語言和設(shè)計原理有深刻的理解。

與此同時,斯特勞斯特魯普教授對 C++ 的內(nèi)存安全性問題、以及因這一問題而試圖替代該語言的動向表示了深切擔(dān)憂。

最近,由于 C++ 的手動內(nèi)存管理特性而產(chǎn)生的內(nèi)存漏洞被認(rèn)為是安全漏洞的主要原因,因此,關(guān)于轉(zhuǎn)向像 Rust 這樣強(qiáng)調(diào)內(nèi)存安全性的語言的討論愈發(fā)高漲。

針對這些批評,斯特勞斯特魯普教授強(qiáng)調(diào)了 C++ 的基本設(shè)計理念: C++從誕生之初就以類型安全和資源安全 —— 即內(nèi)存安全性作為核心目標(biāo)。他還強(qiáng)調(diào),C++ 是一種可進(jìn)化的語言,并通過現(xiàn)代功能和工具不斷提高安全性。

順應(yīng)這一趨勢,他提出了配置文件的概念,作為解決 C++ 內(nèi)存安全問題的一種策略。斯特勞斯特魯普教授表示:“新的語言未能同時具備 C++ 那樣的性能、控制力和抽象范圍”,“C++ 所具備的特性不僅僅是悠久的傳統(tǒng),更是高性能軟件開發(fā)所需的基本能力”。

接著他又說:“C++ 是一種無法被替代的語言”,“如果你問我們真正需要被替代的是什么,那有可能不是語言,而是開發(fā)者的思維體系”。

此外,他指出 “互操作性” 是新興語言必然面臨的現(xiàn)實問題。

他警告說:“任何新語言要想成功,都必須與 C++ 和 Python 等現(xiàn)有語言很好地兼容。” “否則,我們最終得到的只是一堆支離破碎的、彼此之間難以溝通的語言。”

基于這些主張,他表示,“現(xiàn)代 C++” 的核心不在于使用新功能,而在于如何協(xié)調(diào)語言的理念和風(fēng)格。

斯特勞斯特魯普教授解釋說,自 C++ 11 之后,這個語言提供了多樣的特性,諸如智能指針、自動類型推導(dǎo)(auto)、概念(concepts)、模塊系統(tǒng)(modules)等,并非僅僅是可選的選項,而是構(gòu)建安全且強(qiáng)大的軟件的核心組成部分。

他強(qiáng)調(diào):“使用‘導(dǎo)入(import)’代替?zhèn)鹘y(tǒng)的‘#include’,并積極利用移動語義和智能指針”,“現(xiàn)代 C++ 的使用方法才是保持和提升開發(fā)者能力的關(guān)鍵”。


標(biāo)簽:C++ 創(chuàng)始人 開發(fā)者