作者| Anirudh VK
譯者| 徐傑承
自動編碼平台現在正處於程式設計師新興技術的最前沿,為開發者編寫程式碼片段提供了一種全新的人工智能驅動的替代方案。尤其是在微軟GitHub Copilot平台的推動下,這項進步目前正慢慢改變全球開發人員的工作模式。
近年來許多編碼的替代方案,如無程式碼和低程式碼平台,都非常適合非技術用戶。雖然這類工具在技術圈內引起了一些「鐵桿程式設計師」的鄙夷和憤怒,但我們不得不承認的是,即便是最有經驗的編碼老手也能夠從自動編碼演算法中受益,因為它將極大地減少開發人員實際需要鍵入的程式碼量。
特斯拉和OpenAI的前人工智慧總監Andrej Karpathy在他的推文就曾表達了對自動編碼工具的感情:
「Copilot大大加快了我的編碼速度,在嘗試使用Copilot後,我很難想像再回到'手動編碼'將會是怎樣的一種體驗。雖然目前我仍在學習使用它,但它已經能夠幫助我編寫約80%的程式碼,並且能夠保持約80%的準確性。我想說的是,在使用Copilot進行工作時,我甚至沒有真正的進行編碼。」
Andrej Karpathy的言論也得到了大多數開發人員的認可,由於自動編碼平台能夠幫助開發者節省大量編碼時間,以至於他們能夠將更多的精力投入於處理應用程式的其他問題,因此自動編碼平台也在短期內以驚人的速度在全世界範圍內被快速採用。以GitHub Copilot為例,在推出在一個月內,CitHub Copilot便吸引了超過40萬的付費訂閱(10美元/月、100美元/年)。然而隨著這些不斷改進的工具開始承擔更多的編碼任務,一個新的問題也出現在了我們面前:開發人員是否會因為依賴自動編碼工具而逐漸喪失編碼技能?
老實說,任何使用過自動編碼類別工具的人都知道它們所自動編寫的程式碼並非完美。雖然建議的程式碼片段的語法可能沒有任何問題,但通常此類工具的編寫方式效率低下,可能會導致依賴項問題。一位來自YCombinator新聞論壇的用戶Aryamaan對使用Replit提供的自動編碼平台“Ghostwriter”發表瞭如下意見:
“它的確讓我大吃一驚,就像它知道我要做什麼一樣。但在有些時候,它比標準的自動完成更笨,它對已經定義的變數沒有任何意識,也不會使用它們來完成編寫了一半的變數。」
#雖然人們對於自動編碼工具的種種不滿一直存在。但從另一個角度考慮,幾乎所有的自動編碼工具都基於人工智慧演算法,這也意味著它們的易用性與可靠性會隨著技術的演進和資料量的增加而持續增長。對於新一代的開發人員來說,自動編碼工具將成為他們不可或缺的工具。如今正處於學習階段的準開發者將在幾年後進入該領域,而在此期間,自動編碼工具將很可能逐漸追趕上普通人類開發者的水平。而這也將導致下一代開發人員很有可能將會慢慢停止編碼,之後的世代甚至可能會一定程度的喪失編碼能力。
今天的開發者需要對他們所使用的語言有深入的了解,並掌握如何實際編寫問題解決方案的知識。然而未來的編碼人員只需要知道一種語言是如何運作的便足夠了,因為他們可以將這些知識與快速工程結合,以產生程式碼片段。提示工程是使用NLP技術向LLM提出正確問題的過程,促使演算法做出最佳回應。
與其他顛覆不同領域的人工智慧應用一樣,目前人們所面對的問題是需要就如何看待程式語言達成共識。下一代的開發者要么選擇學習如何透過快速工程充分利用自動編碼工具,要么堅持目前從內到外的程式語言學習方法,只是選擇第二種方式的人可能會在未來幾年後敗給人工智慧。
近年來自動編碼工具的採用率不斷增加,這些產品背後的公司也在持續創新以添加新功能並優化用戶體驗。雖然Github Copilot曾因收集用戶程式碼並使用它來訓練他們的演算法而受到抨擊,但事實是,隨著添加到其資料庫中的每一段程式碼,Github Copilot的演算法都在繼續進化。
當然,目前也有許多公司對資料使用採取了更負責任的方法。以Tabnine為例,它只使用公開允許的資料來訓練其演算法。 Tabnine的模型也可以從使用者的程式設計風格中學習。透過在使用者電腦上本地運行演算法,模型可以了解相關程式設計師的風格,提供更符合使用者需求的片段建議。這還可以防止所有資料發送回集中式儲存庫,從而在提供額外價值的同時保護隱私。
與目前創建一個可以用多種程式語言提供建議的大模型(如Codex)的方法相反,未來的自動編碼平台可能會採用多個模型並將其插入最適合它們的語言中。 Tabnine已經在不同的程式語言中使用各種開源模型方面取得了成功。在近期的一次公開訪談中,Tabnine生態系統和業務發展副總裁Brandon Jung表示:
「我們正在採用其他地方最好的模型,它們是開源的,它們很棒。我們採用非常大的模型,這些模型的訓練成本非常高,我們根據每種語言的最佳方法專門研究程式碼。事實證明,其中一些模型比其他模型更適合某些特定語言。」
採用這種方法不僅可以使自動編碼平台更加準確,還可以使公司在其個人程式碼儲存庫上運行和微調它們更加可行。目前,大量資料與GitHub,AWS和GCP等服務提供者隔離,但遠離這些平台可以使自動編碼工具更適用於普遍的開發者。反過來,這將鼓勵更多的人更有效地利用自動編碼器作為工具,從而提高工具預測的準確性。
以GitHub Copilot、Tabnine為例,自動編碼工具正在為未來的開發者建立一個全新的工作環境,它為程式設計師帶來的好處是不可否認的。更高階的AI工具不僅可以幫助開發者大幅提高編寫程式碼的效率,還可以減輕經常過度勞累的編碼人員的壓力。對此,現階段的企業也必須認識到這種趨勢,以及在開發人員使用自動編碼工具所能夠帶來的效用,並考慮為他們提供所需的面向未來的開發工具。
原文連結:https://analyticsindiamag.com/have-developers-forgotten-how-to-code/
以上是所以,程式設計能力會消失嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!