GitHub召開全球開發(fā)者大會!20000處產(chǎn)品改進,Copilot重磅更新
GitHub在其全球開發(fā)者大會上,宣布Copilot將增加對包括Neovim和JetBrains IDEs在內(nèi)的編輯器的支持,重點是JetBrains的IntelliJ IDEA和PyCharm。GitHub還宣布Copilot支持Java、C、C++和C#等語言的多行代碼完成,還有自上次GitHub Universe 以來,進行的20000多項產(chǎn)品改進。
想寫出漂亮的代碼,但是就是憋不出來怎么辦?急!
其實,大可不必這么焦慮。
因為,寫出優(yōu)秀的代碼和能遇見合適的人一樣,都是要講緣分的,不能強求。
不會真相信了吧?
咳咳,開個玩笑,摸魚是不對滴,工作還是要認真上心。
畢竟,自己搞不定,還可以去GitHub上「借鑒」啊。
可是上GitHub找東西也挺麻煩的啊。
這。。。當然沒關(guān)系。
還記得6月份GitHub和OpenAI聯(lián)合推出的全新AI代碼補全工具Copilot預(yù)覽版嗎?
在剛剛結(jié)束的GitHub開發(fā)者大會上,Copilot的超進化版本來了!
「Copilot」的初衷
Copilot一詞,意為副駕駛。
打個比方,副駕駛員(Copilot)在簡單情況下,他可以從機長手中接管飛機的控制權(quán),駕駛飛機(如直線和水平巡航)
但是,在情況不穩(wěn)定,難以駕馭的時候(如在惡劣天氣著陸時),還是要讓機長控制飛機的飛行。
OpenAI 聯(lián)合創(chuàng)始人兼首席技術(shù)官Greg Brockman曾經(jīng)表示,編程其實應(yīng)該分為兩個部分。
一是認真思考一個問題并試圖理解它。
二是將這些小片段映射到現(xiàn)有的代碼中,不管它是一個庫、一個函數(shù)還是一個API。

程序員應(yīng)該在第一個問題上多花時間,而不是把大量時間消耗在第二部分,畢竟,大量的代碼都是在重復(fù)別人之前所做的事情。
所以,GitHub和OpenAI的Copilot,目的是讓人類程序員從「不斷重復(fù)前人的工作」這種情況中解脫出來,把較簡單和基礎(chǔ)的代碼編寫任務(wù)交給AI去完成。

Copilot就是為此而生,可以自己編寫代碼。
學富五車的「Copilot」
OpenAI在2020年,曾推出1750億參數(shù)的GPT-3,參數(shù)規(guī)模直逼人類神經(jīng)元的數(shù)量。
GPT-3使用了在2019年之前的互聯(lián)網(wǎng)上的幾乎所有公開的書面文本進行訓練,所以它對于自然語言是有一定理解能力的,能作詩、聊天、生成文本等等。
今年夏天,OpenAI 發(fā)布了 Codex。

Codex基于GPT-3進行訓練,接受了從GitHub中提取的TB級公開代碼以及英語語言示例的訓練。
只要你對Codex發(fā)號施令,它就會將英語翻譯成代碼。

隨后,你的雙手離開鍵盤,Codex會自動編程,火箭就自己動起來了。
而Copilot正是建立在OpenAI強大的Codex算法之上,獲得了「海納百川」的代碼積累和前所未有的代碼生產(chǎn)能力。

Copilot不僅僅可以模仿它見過的代碼,而且還會分析利用函數(shù)名、方法名、類名和注釋的上下文來生成和合成代碼,為開發(fā)人員提供編輯器中整行代碼或函數(shù)的建議。

它能減少工程師通過API文檔做苦工的時間,還能幫忙編寫測試代碼。
「Copilot」超進化!
這一次,編程助手Copilot,增加了對更多代碼編輯器和更多語言的支持!
Copilot將增加對包括Neovim和JetBrains IDEs在內(nèi)的編輯器的支持,重點是JetBrains的IntelliJ IDEA和PyCharm,對Visual Studio Code集成開發(fā)環(huán)境的支持也仍在開發(fā)中。

GitHub還宣布Copilot會支持Java、C、C++和C#等語言的多行代碼完成,這就意味著Copilot可以自己生成多行代碼,能力更加強大。
此外,Copilot依然會支持它擅長的Python、JavaScript、TypeScript、Ruby和Go等語言,未來幾個月還將支持更多語言。

雖然,Copilot因代碼版權(quán)侵權(quán)引起過廣泛爭議,但GitHub的產(chǎn)品副總裁Ryan Salva表示,Copilot提供的是綜合的代碼建議,而不是逐字逐句的評論。GitHub堅持認為,用于訓練Copilot的公開數(shù)據(jù)依然是在合理使用權(quán)范圍內(nèi)。
目前,GitHub仍在邀請更多開發(fā)人員試用Copilot技術(shù)預(yù)覽版,感興趣的小伙伴可以申請使用哦!
GitHub開發(fā)者大會上的其他亮點
全新的GitHub Issue正式公測
新功能包括項目板和動態(tài)表格等,從而可以對issue和pull request進行過濾、排序和分組。
- 迭代支持:可以在項目表中創(chuàng)建「迭代」字段類型,以按沖刺和周期對問題進行分類和分組;
- 自定義字段:使用對團隊重要的信息來計劃和跟蹤工作;
- 公共項目:可以將project在open或private之間切換。

GitHub討論區(qū)升級
- 整合GitHub Actions:在Discussion和DiscussionComment webhook事件上觸發(fā)action工作流程;
- 討論標簽:使用自定義標簽對討論進行分類和過濾;
- GitHub Mobile:隨時隨地使用GitHub Mobile應(yīng)用進行討論。

Codespaces云開發(fā)環(huán)境更新
GitHub Codespaces可以直接通過瀏覽器或Visual Studio Code啟動新的開發(fā)環(huán)境。將創(chuàng)建一個新開發(fā)環(huán)境的時間從45分鐘縮短到10秒。
- 更簡單的開發(fā)環(huán)境創(chuàng)建:一鍵創(chuàng)建和更新devcontainer.json開發(fā)環(huán)境的代碼定義;
- 在CLI中加入Codespaces:支持喜歡命令行和直接SSH訪問開發(fā)環(huán)境的開發(fā)者;
- 一個全新的REST API:用編程方式管理Codespace將會變得更加容易;
- 轉(zhuǎn)發(fā)端口的訪問控制:分享轉(zhuǎn)發(fā)的端口到Codespace,并將它們標記為公共、私人或與團隊成員共享;
- 無縫訪問GitHub Container注冊表:自動驗證存儲在GHCR中的開發(fā)容器,無需提供個人訪問令牌(PAT)。

GitHub Actions:CI/CD改善以及自動化
- 可重復(fù)使用的工作流:工作流可以在一個單一的存儲庫中維護,并與整個團隊共享。通過標準化部署的工作流可以讓團隊執(zhí)行最佳的實踐,并實現(xiàn)更快速和穩(wěn)健的進展;
- 自動擴展自托管的運行器的API:通過擴大或縮小fleet來管理自己托管的基礎(chǔ)設(shè)施成本,以應(yīng)對特定的工作負載;
- 基于Open ID Connect(OIDC)的認證支持:可以使用任何支持OIDC的云提供商(包括AWS、Azure、GCP)。
Command Palette更新
新的command palette將通過一系列新的命令對工作流進行優(yōu)化,這些命令在GitHub上的任何地方都可以通過一個快捷鍵--macOS上的command k和Windows及Linux上的control k進入。
在那里可以快速導(dǎo)航到任何project、 repo、pull request或issue,并運行命令。

支持Ruby代碼掃描
Ruby在開源社區(qū)最流行的編程語言中排名第10。
為了幫助更多的開源維護者和組織發(fā)現(xiàn)代碼中的潛在漏洞,GitHub在支持代碼掃描的CodeQL引擎中增加了對Ruby的支持。
CodeQL可以識別代碼中的安全問題,以及流向漏洞位置的數(shù)據(jù)。其中包括SQL注入、正則表達式拒絕服務(wù)(ReDoS)、命令行注入等等。
GitHub代碼掃描、CodeQL CLI和Visual Studio Code的CodeQL擴展中將默認支持Ruby。
除了Ruby以外,CodeQL支持的語言還包括C/C++、C#、Java、JavaScript/TypeScript、Python和Go。

GitHub企業(yè)云更新
GitHub企業(yè)云為企業(yè)用戶提供完整的云計算DevOps平臺。
- 企業(yè)管理用戶(EMU)企業(yè)管理員可以擁有和管理身份的整個生命周期,同時改善配置和取消配置能力;
- 自定義倉庫角色:GitHub管理員現(xiàn)在可以為團隊、組織成員和外部合作者創(chuàng)建自定義權(quán)限級別。