重磅消息:GitHub官方推出原生 AI 代碼生成工具,堪稱程序員的「小秘」
loonggg
讀完需要
速讀僅需 3 分鐘
大家好,我是校長。
這幾天微軟和 GitHub 推出了一款 AI 程序員智能插件,它自己會編程,會自動生成代碼,有人說:
軟件開發(fā)領(lǐng)域的「第三次工業(yè)革命」似乎正緩緩揭開序幕。
01
GitHub、OpenAI、微軟聯(lián)合打造了一個全新的代碼生成 AI:GitHub Copilot ,堪稱為程序員們送上的編程神器。
以后,我們再也不用面向搜索引擎編程了,未來或許我們也不需要再復(fù)制和粘貼了。
Copilot 目前作為 Visual Studio Code 插件,支持在本地或 GitHub Codespaces 上使用。
也就是目前我們可以在 VS Code 上安裝這款插件,讓它幫我們輔助編程,有人調(diào)侃目前 Copilot 就像是程序員的小秘書。
我們程序員這個工作真的是挺好的,累了有程序員鼓勵師,現(xiàn)在寫代碼也來了智能小秘。照這個勁頭發(fā)展下去,未來,我們程序員可能就被這么舒服的哄著,躺在舒適區(qū)喪失了編程技能,從而要被淘汰了,哈哈。

簡單來說,Copilot 可以根據(jù)程序員的注釋寫代碼,自動補全代碼,提供與代碼匹配的測試,還能生成多個備選方案的代碼供選擇。GitHub 表示,Copilot 生成的代碼大部分是原創(chuàng)的。
是不是看著很厲害呢?
你確實沒看錯,它不僅可以自動補全代碼,還可以根據(jù)你的注釋,自動生成你所需要的代碼,而且還可以根據(jù)你的測試需求,生成測試需要的代碼。
02
我之所以說,Copilot 是我們程序員的小秘書,是因為 GitHub 給 Copilot 的官方定義是「AI 結(jié)對編程員」。「結(jié)對編程」(pair programming)是一種軟件開發(fā)方法,兩個程序員在一個計算機上共同工作。一個人輸入代碼,而另一個人審查他輸入的每一行代碼。輸入代碼的人稱作駕駛員,審查代碼的人稱作觀察員。兩個程序員經(jīng)?;Q角色。
GitHub 認(rèn)為 Copilot 是進化版的「結(jié)對編程」,在未來幫程序員查缺補漏的,將會換成 AI。
目前,Github Copilot 作為 Visual Studio Code 插件,它適用于多種框架和語言,在 Python、JavaScript、TypeScript、Rudy、Go 幾種語言上的表現(xiàn)格外突出。
1、它會自動補全,甚至?xí)鶕?jù)你的代碼,提前猜測和預(yù)知你要寫什么,幫你自動補全代碼。


2、根據(jù)注釋自動生成代碼,什么意思呢?就是它能夠根據(jù)你注釋當(dāng)中描述的意思生成你想要的代碼,只需描述出你想要執(zhí)行的命令,GitHub Copilot 就能自動為你組裝代碼。

而且,在注釋中用簡單的英語描述一個函數(shù),Copilot 也可以將其轉(zhuǎn)換為實際代碼。

3、模仿能力也很強,可以根據(jù)你寫的代碼例子,快速生成模板和重復(fù)的代碼。

4、根據(jù)測試包,匹配生成測試所需要的代碼,就是你只要導(dǎo)入單元測試包,GitHub Copilot 就能給出與代碼匹配的測試,真的是很牛逼啊。

5、既然能夠做到自動補全和自動提示,當(dāng)然了,人家也會在你寫代碼的時候,根據(jù)你寫代碼的情況,提供好幾個備選方案的代碼供程序員選擇,看看哪個更符合你的要求,你就可以使用,減少你的代碼量。
此外,據(jù)說 Copilot 還能輔導(dǎo)新手寫代碼,可以幫助他們找出錯誤、學(xué)習(xí)新框架,省去大量查資料的時間。
03
GitHub Copilot 由 OpenAI Codex 提供支持,可以理解為 GPT-3 的改進版。
科普一下 GPT-3,GPT-3 這個自然語言處理 AI 在去年就已經(jīng)很出名了,被公認(rèn)是繼 AlphaGo 之后人工智能史上又一里程碑式的東西。
據(jù)說它在互聯(lián)網(wǎng)上閱讀了 5000 億詞,模型達到 1750 億參數(shù),從而變得很通用。
而 OpenAI 則是在 GPT-3 的基礎(chǔ)上生成的 Codex 算法,Codex 在從 GitHub 那里提取出來的 TB(terabyte)級公開代碼以及英語語言示例中得到訓(xùn)練?;?Codex 算法,編程 AI Copilot 誕生了。
OpenAI Codex 對于人們的代碼使用習(xí)慣有著廣泛了解,而且它在訓(xùn)練中接觸到的大量公共源代碼數(shù)據(jù)集,所以在代碼生成能力上遠遠超過 GPT-3。
GitHub Copilot 會把程序員給出的命令或代碼發(fā)送到服務(wù)器,然后服務(wù)器使用 OpenAI Codex 來給出代碼或建議。
根據(jù)官網(wǎng)所說,它是用數(shù)十億行的代碼訓(xùn)練后,才達到了現(xiàn)在的效果。
04
就目前來看,Copilot 提供建議的準(zhǔn)確率似乎不高。
GitHub 對一組 Python 函數(shù)進行了基準(zhǔn)測試,測試團隊清除了函數(shù)并要求 Copilot 填充它們。模型在第一次嘗試正確率是 43%,經(jīng)過 10 次嘗試后,正確率達到了 57%。團隊表示,之后 Copilot 還將進行多次訓(xùn)練和測試,準(zhǔn)確率會進一步提升。
據(jù)一些程序員的說法,這種自動生成的代碼工具要「好用」有個前提,就是能精確描述了函數(shù)需要實現(xiàn)的功能,不然后續(xù)的調(diào)試會是更耗時的工作。所以,要想讓 Copilot 好用,程序員的描述能力,文字功底要到家。
目前據(jù) GitHub 內(nèi)部的使用情況來看,GitHub 的數(shù)百名開發(fā)者在編碼時,整天都在使用 Copilot 功能,他們中的大多數(shù)人都接受了 AI 的建議,沒有關(guān)閉該功能。
所以,GitHub Copilot 能達到的效果還是十分可觀的,許多用過的程序員都說好。
就目前釋放的功能來看,取代程序員還是不太現(xiàn)實,但是未來取代初級程序員我感覺還是很有可能的。
但是,對于我們程序員來講,現(xiàn)在的 Copilot 絕對是一個好幫手,程序員的好秘書。因為,有了它,我們可能再也不要面向搜索引擎編程了,再也不用去 StackOverflow 找答案,去復(fù)制粘貼了。
我們都知道,我們程序員很大一部分的時間和精力都浪費到面向搜索引擎,面向 Google 編程上了,大量的在網(wǎng)上復(fù)制和粘貼代碼。
有了 GitHub Copilot ,真的是可以大大提高我們程序員的生產(chǎn)力。
就目前來講,是一個好事。
但是,在未來,隨著科技的發(fā)展,我感覺可能有點不妙,至少初級程序員的生存空間可能就沒有了。但是高級程序員應(yīng)該會很高興,有了它效率大大提高了,可能擁有了它之后,就不用 996 加班了,可以提前下班了。
GitHub CEO Nat Friedman 在 Hacker News 寫道:
軟件開發(fā)正迎來自己的『第三次工業(yè)革命』。第一次革命是編譯器、調(diào)試器、垃圾收集器以及語言等工具的出現(xiàn),極大提升了開發(fā)者的工作效率;第二次革命則以開源為契機,全球開發(fā)者社區(qū)得以匯聚起來,并在彼此的開發(fā)成果基礎(chǔ)之上不斷推進;第三次革命就在現(xiàn)在,業(yè)界嘗試在編程當(dāng)中使用 AI 技術(shù)。在發(fā)展成熟之后,開發(fā)人員的日常工作將有巨大改變 —— 但仍然有很多工作可做、也只能由人類開發(fā)者完成,因此不用太擔(dān)心。
所以,通過 GitHub CEO 的話我們也可以看出,未來的程序員只有兩種:
一種你只需要會操作就行,不需要你寫,這種程序員就像是車間的操作工,身價會大大降低;
另外一種就是高級程序員,就像是解決難題的技術(shù)專家,這事 AI 干不來,只能人來,就像是車間的那種老師傅,少林寺的掃地僧。這種人的價值由于 AI 的幫忙,效率會大大提升,價值也會大大增加。
你們認(rèn)為呢?
安裝地址:https://marketplace.visualstudio.com/items?itemName=GitHub.copilot
最后,推薦一下,我剛剛做的一個新的公眾號「澀郎」,只分享知識類, 認(rèn)知類的文章,都是高質(zhì)量的干貨,目前已經(jīng)更新了很多文章了,最近幾篇如下:
