鼠標(biāo)點(diǎn)擊式編程歷來是編程界的新趨勢。簡而言之,這是一種編程方法,將現(xiàn)成的代碼模塊組合起來、形成一個(gè)新的軟件。不用說,這種編寫程序的方法遠(yuǎn)非完美。首先,從事這種編程的程序員可能甚至不知道那些模塊中有什么。這導(dǎo)致了兩個(gè)基本問題:一是無意或有意的錯(cuò)誤或缺陷(bug),二是無法正常運(yùn)行的糟糕代碼。
前者歸因于模塊可能針對不同的場景編寫,會導(dǎo)致程序在有別于預(yù)定場景的場景中運(yùn)行緩慢。如果是操作型負(fù)載,尤為如此。后者歸結(jié)為這樣事實(shí):程序員查看代碼塊可能不夠仔細(xì),這為隱藏的后門允許黑客黑入系統(tǒng)埋下了隱患。如果缺少適當(dāng)?shù)臏y試,它們大部分時(shí)間不會被人注意到。
目前,我們擁有GitHub、Copilot、DeepMind和AlphaCode之類的開源代碼庫。它們充當(dāng)代碼數(shù)據(jù)庫,人工智能(AI)可以使用它們來編譯自己的代碼。
AI在編程方面能提供什么幫助?
AI在這里可以做什么呢?首先,AI可以編寫測試,分階段對流行威脅進(jìn)行建模。其次,AI可以編寫自己的代碼塊,從含有數(shù)千個(gè)代碼塊(許多代碼塊不夠好)的代碼庫編譯適當(dāng)?shù)拇a塊。最終,這將節(jié)省時(shí)間和金錢。
視AI而定,有時(shí)AI可以自行編寫優(yōu)化的代碼,這些代碼在操作中清晰且高效。這種代碼以后處理起來更容易,因?yàn)樗帉懙煤芎?如果將來需要實(shí)施某些更新,這將節(jié)省時(shí)間。此外,AI在通過某些參數(shù)調(diào)整代碼數(shù)據(jù)庫中的開源代碼方面效率高得多。這使其能夠迅速分析和過濾代碼,并采用最佳實(shí)踐以幫助創(chuàng)建將在產(chǎn)品中使用的節(jié)省操作資源的代碼。
軟件開發(fā)的另一個(gè)問題是對客戶及其需求缺乏清晰的了解。由于工作范圍和最終產(chǎn)品的具體細(xì)節(jié)缺乏明確性,程序員常常不得不進(jìn)行解釋。AI則讓客戶可以從目錄中選擇所需的參數(shù),創(chuàng)建程序員和項(xiàng)目經(jīng)理更容易理解的工作范圍。
AI可以取代人類程序員嗎?
這個(gè)問題的答案分兩方面。AI可以在一定程度上取代人類程序員,處理復(fù)雜性有限的任務(wù)。如果您需要使用現(xiàn)有開源代碼數(shù)據(jù)庫就能復(fù)制的簡單產(chǎn)品,可以輕松地依靠AI為您編寫完整代碼。但是面對大型項(xiàng)目,您不能依靠AI為自己做所有工作。在這種情況下,就只能依靠AI作為輔助工具,而不是負(fù)責(zé)整個(gè)開發(fā)過程。這意味著大型項(xiàng)目仍需要項(xiàng)目經(jīng)理和專業(yè)人員來監(jiān)督用戶體驗(yàn)和前端等方面的工作。
AI 的智力能力在很大程度上不足以解決軟件開發(fā)過程中出現(xiàn)的創(chuàng)造性任務(wù),它也無法管理完成產(chǎn)品需要從事的創(chuàng)造性工作量具有的復(fù)雜性。但AI肯定會引發(fā)IT專家之間的競爭,因?yàn)樗诨A(chǔ)任務(wù)(比如使用代碼塊)方面能夠與IT專家一較高下。
原文標(biāo)題:??Can AI Put an End to Mouse-click Programming???,作者:Dmitry Mishunin