絕大部分開發(fā)者在編輯重復(fù)性強(qiáng)的代碼時(shí),或多或少都曾有過“如果軟件能夠自動(dòng)寫完代碼就好了”的想法。
現(xiàn)在,微軟讓這個(gè)想法變?yōu)榱爽F(xiàn)實(shí)。
去年,微軟GitHub曾與OpenAI合作,推出了AI編程工具Copilot的早期預(yù)覽版本,今天,微軟宣布,這一工具將正式上線,訂閱費(fèi)用為每月10美元或每年100美元。
Copilot是利用網(wǎng)絡(luò)中的數(shù)十億行公共代碼(尤其是開源在GitHub上的),然后基于機(jī)器學(xué)習(xí)算法訓(xùn)練出來的,所以理論上支持所有編程語言,目前對(duì)Python、JS、TS、Ruby、Java、Go這些語言尤為適用。當(dāng)開發(fā)者在Visual Studio Code、Neovim和JetBrains IDE等集成開發(fā)環(huán)境 (IDE)中編程的時(shí)候,Copilot可以給出完整的方法或算法建議,并提供樣板代碼,輔助單元測(cè)試。Copilot的強(qiáng)大之處不在于生成整段的代碼,而是小段代碼的推薦,這讓開發(fā)效率提升了很多,這些小段的代碼碼農(nóng)們自己也能寫,只是比較消耗時(shí)間,而且有的時(shí)候推薦的代碼比人工寫的還要好。
在一些較為簡(jiǎn)單直觀的循環(huán)節(jié)或其他重復(fù)性較強(qiáng)的代碼中,Copilot甚至能夠做到自動(dòng)寫出一段完整可用的代碼塊。
Copilot出色的AI表現(xiàn)使得它在早期測(cè)試階段就獲得了120萬開發(fā)者的青睞,且在啟用它的文件中,有將近40%的代碼都是出自Copilot之手。
不過,有利必有弊,Copilot也存在一定爭(zhēng)議。
首先,Copilot的AI訓(xùn)練是基于GitHub海量的開源代碼實(shí)現(xiàn)的,對(duì)于一款商業(yè)軟件來說,這一行為的合法性仍有待商榷。
其次,有部分人認(rèn)為會(huì)影響自己寫代碼的思路,被固化,更有甚者覺得這是吃程序員的飯,砸程序員的碗?
另一方面,Copilot輸出的代碼在安全性上較差,存在約40%的安全漏洞,這導(dǎo)致它在商業(yè)大型項(xiàng)目中很難發(fā)揮出應(yīng)有的效果。