這幾天在騰訊云開發(fā)者社區(qū)寫文章時(shí),老是給我下面這個(gè)彈窗提示蒋伦,要我去體驗(yàn)一下這款 AI 代碼助手弓摘。
說實(shí)話,自從去年年底 GitHub Copilot 騰空出世之后痕届,陸陸續(xù)續(xù)出現(xiàn)了不少好用的 AI 代碼助手衣盾,像 CodeGeeX 智能編程助手寺旺、JetBrains 官方出品的 JetBrains AI Assistant、字節(jié)跳動(dòng)旗下豆包的 MarsCode AI势决、再到 Cursor AI 編輯器…… 在 AI 代碼助手這方面阻塑,真可謂百花齊放,其中完全免費(fèi)的果复,有體驗(yàn)期限的陈莽,直接需要付費(fèi)的……一大把,數(shù)不勝數(shù)虽抄。
GitHub Copilot 初體驗(yàn)感受
我記得去年 GitHub Copilot 剛出來那會(huì)兒走搁,官方提供了為期 30 天(具體是 30 天,還是 60 天迈窟,有點(diǎn)兒記不太清了)的體驗(yàn)期私植,于是,我就趕緊在 IDE 中裝了 GitHub Copilot 插件來體驗(yàn)车酣,可能是初次體驗(yàn)這種 AI 代碼助手吧曲稼,一時(shí)就有點(diǎn)兒像劉姥姥進(jìn)大觀園一般,哈哈??湖员。不禁覺得這玩意兒真是太神奇了贫悄!比如,我想要寫一個(gè)函數(shù)方法娘摔,我只需要將注釋信息寫好窄坦,然后寫一個(gè) function
開頭,后面的方法名凳寺、方法邏輯體完全可以一路敲擊 Tab
出來鸭津!完全不需要自己寫一丁點(diǎn)兒業(yè)務(wù)邏輯代碼!
有時(shí)候肠缨,我想借鑒一下一些開源代碼段的時(shí)候逆趋,如果是以前的編碼方式,我會(huì)一個(gè)窗口打開編輯器怜瞒,另外一個(gè)窗口打開瀏覽器父泳,然后一邊看瀏覽器中的代碼是否符合自己的實(shí)際需要般哼,再往編輯器中寫吴汪,然而,現(xiàn)在我發(fā)現(xiàn)似乎我身邊站了一位隱身的人蒸眠,他時(shí)時(shí)刻刻盯著我的屏幕漾橙,并且就跟我肚里的蛔蟲一樣,知道我大部份想法楞卡,我唯一需要做的就是敲幾次 Tab
鍵霜运!
后來脾歇,體驗(yàn)期過了之后,我就沒有續(xù)費(fèi)淘捡,然而藕各,我發(fā)現(xiàn)沒使用 GitHub Copilot 之后,一時(shí)半會(huì)兒焦除,我竟然還有些許不太習(xí)慣了激况。當(dāng)然,最后我還是用上了 GitHub Copilot膘魄,并且到現(xiàn)在為止依舊用的好好的乌逐。在今年,受邀也體驗(yàn)過豆包的 MarsCode创葡,體驗(yàn)下來浙踢,感覺和 GitHub Copilot 相差不大,但是灿渴,在細(xì)節(jié)處理方面可能 GitHub Copilot 會(huì)更加細(xì)致一點(diǎn)洛波。之前也寫過一篇文章,做了一下簡(jiǎn)單的對(duì)比逻杖,感興趣的童鞋可以去翻一翻歷史文章奋岁,或者去我的公主耗「左詩右碼」上找找≥┌伲可是闻伶,不得不說,畢竟 MarsCode 免費(fèi)呀够话!嗯……真香蓝翰!
到現(xiàn)在為止也體驗(yàn)過不少 AI 代碼助手了,但是女嘲,發(fā)現(xiàn)功能都大同小異畜份,并沒有太多驚喜⌒滥幔可是爆雹,既然騰訊也出了一款 AI 代碼助手,再怎么說也是有大廠金主爸爸背書的愕鼓,想必應(yīng)該多多少少還是會(huì)有一些獨(dú)特之處的吧钙态?說不多說,直接開始體驗(yàn)……
體驗(yàn)「騰訊云 AI 代碼助手」
打開首頁菇晃,就直接被個(gè)人免費(fèi)使用這 6 個(gè)字吸引了册倒,這簡(jiǎn)直是我這種窮13的福音啊磺送!
主要功能
作為一款 AI 代碼助手驻子,比較“通用”的幾個(gè)功能都還是有的灿意。
- 補(bǔ)全行內(nèi)代碼
- 根據(jù)上文補(bǔ)充下文
- 函數(shù)代碼塊內(nèi)補(bǔ)全代碼
- 智能對(duì)話
并且騰訊云 AI 代碼助手也提供了和 MarsCode AI 類似的 在線 IDE 的功能,個(gè)人一直都比較喜歡這個(gè)功能崇呵,因?yàn)樵谟行﹫?chǎng)景下缤剧,可能我只需要簡(jiǎn)單的跑一下某段示例代碼,看下運(yùn)行效果域慷,但是我本地又不想搭建環(huán)境時(shí)鞭执,這個(gè)在線 IDE的功能就能夠很好的幫我解決問題。
當(dāng)然了芒粹,這個(gè)功能也不是一個(gè)非常新奇的功能兄纺,隔壁的 GitHub 在早幾年就已經(jīng)有了在線 IDE 的功能,但是一直以來用的就不是那么頻繁化漆。一方面是因?yàn)橐恍氨娝苤钡膰樵蚬来啵硗庖环矫媸怯行┚幊汰h(huán)境還是得自己搭建(不知道現(xiàn)在是否已經(jīng)有默認(rèn)的編程語言環(huán)境,我已經(jīng)很久沒有體驗(yàn)過了座云,如果我說錯(cuò)了疙赠,就請(qǐng)各位大神在評(píng)論區(qū)指正一下??)。
支持多種編程語言和編輯器
主流的編程語言和編輯器都支持朦拖。要是主流的某門編程語言或者編輯器不支持圃阳,估計(jì)開發(fā)這款 AI 代碼助手的程序員就要被拉去祭天了吧……
那么,如何使用呢璧帝?
使用方式
Visual Studio Code
直接在插件市場(chǎng)搜索框中輸入 Tencent Cloud AI Code Assistant捍岳,然后直接點(diǎn)擊 Install
即可安裝。
具體的一些快捷鍵睬隶,可以參考如下:
JetBrains IDEs
你可以去你用到的 IDE 中找到插件锣夹,比如,這里我用的是 PyCharm苏潜,然后你可以直接搜索 騰訊云 出現(xiàn)下面截圖中的圖標(biāo)银萍,然后直接點(diǎn)安裝即可。
具體的一些快捷鍵恤左,可以參考如下:
如果你之前使用過 GitHub Copilot 的話贴唇,你會(huì)發(fā)現(xiàn)二者的快捷鍵不能說幾乎一樣,簡(jiǎn)直可以用完全來形容飞袋!當(dāng)然戳气,這樣設(shè)計(jì)也是有好處的,至少對(duì)于我們使用者來說授嘀,可以非常絲滑的在各個(gè) AI 代碼助手工具直接來回切換物咳。
實(shí)際體驗(yàn)
上文中锣险,我也說到了蹄皱,我現(xiàn)在還在使用 GitHub Copilot览闰,并且我也想對(duì)比一下二者之間的差異,再者我也非常想體驗(yàn)一下騰訊云的在線 IDE巷折。之前我在玩豆包的 MarsCode AI 時(shí)压鉴,也是直接用的在線 IDE,因此下面我就以騰訊云的在線 IDE 為基礎(chǔ)來體驗(yàn)一下锻拘。
想要體驗(yàn)在線 IDE油吭,可以直接在首頁點(diǎn)擊IDE在線體驗(yàn)即可跳轉(zhuǎn)到編輯器界面
然后會(huì)慢慢的等著啟動(dòng),看這啟動(dòng)界面署拟,還有點(diǎn)兒酷呢婉宰。
在啟動(dòng)的過程中,需要我們登錄推穷,我個(gè)人建議的是:直接用自己的微信授權(quán)登錄心包,因?yàn)轵v訊的很多產(chǎn)品都是可以共用授權(quán)的,直接用微信授權(quán)登錄馒铃,一方面可以少記一次賬號(hào)密碼蟹腾,另外一方面還可以讓自己的賬號(hào)在多個(gè)產(chǎn)品間數(shù)據(jù)共享。當(dāng)然区宇,具體情況具體分析了娃殖,根據(jù)自己的實(shí)際情況來定就行。
然而议谷,當(dāng)我們懷著期待炉爆,打開編輯器界面時(shí)
驚不驚喜!卧晓?意不意外R抖础?是不是跟 VS Code 就是孿生兄弟禀崖?
算了衩辟,今天,我們不是來討論編輯器界面的波附,還是來體驗(yàn)一下代碼提示究竟如何吧艺晴!是騾子是馬,總還是要拿出來溜一溜的掸屡。
線上 IDE 編輯代碼
默認(rèn)為我們準(zhǔn)備了 5 個(gè)代碼示例封寞,現(xiàn)在我用 go 代碼作為示例,讓它幫我寫一段快速排序仅财。
然而狈究,他竟然一下子給了我這么多莫名其妙的注釋?什么鬼U登蟆抖锥?
可能是我提示的不太對(duì)亿眠,或許是這個(gè)問題太簡(jiǎn)單了?AI 不屑一顧磅废?后來纳像,我就再按了一次 Enter
鍵然后有提示時(shí),我就持續(xù)敲 Tab
鍵拯勉,堅(jiān)決不做一點(diǎn)兒人為干預(yù)
然而竟趾,前面回答的好好的,后面又開始稀里糊涂的胡說八道了宫峦。
這不對(duì)勁兒呀岔帽,應(yīng)該沒有那么水吧。我一度認(rèn)為导绷,肯定是我的操作問題山卦,才導(dǎo)致他沒有正確提示的。于是诵次,我刪除了原始文件中的所有代碼账蓉,然后,重新在文件首行加了注釋信息逾一,之后再一路 Tab
铸本,最終的結(jié)果就如下:
終于,終于遵堵,沒有辜負(fù)我的期望箱玷,打印結(jié)果也正確!
代碼如下:
// 幫我寫一段快速排序的代碼
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano())
arr := make([]int, 10)
for i := 0; i < 10; i++ {
arr[i] = rand.Intn(100)
}
fmt.Println("before sort:", arr)
quickSort(arr, 0, len(arr)-1)
fmt.Println("after sort:", arr)
}
func quickSort(arr []int, left, right int) {
if left >= right {
return
}
i, j := left, right
pivot := arr[(left+right)/2]
for i <= j {
for arr[i] < pivot {
i++
}
for arr[j] > pivot {
j--
}
if i <= j {
arr[i], arr[j] = arr[j], arr[i]
i++
j--
}
}
quickSort(arr, left, j)
quickSort(arr, i, right)
}
我們從圖中也可以看到陌宿,該線上 IDE默認(rèn)是安裝了 go
語言環(huán)境的锡足,這為我們調(diào)試代碼提供了不少方便。當(dāng)然壳坪,除了 go
語言編程環(huán)境舶得,python
、java
爽蝴、node
也都有默認(rèn)的環(huán)境沐批。
體驗(yàn) AI 對(duì)話
當(dāng)然,在線上 IDE 中蝎亚,我們也可以非常方便的和 AI 代碼助手進(jìn)行對(duì)話九孩,直接點(diǎn)擊左側(cè)欄中的這個(gè)按鈕即可。
你可以直接在對(duì)話框中問任何問題发框,同時(shí)躺彬,也可以就某個(gè)代碼文件中的某個(gè)片段進(jìn)行提問,相當(dāng)?shù)?nice!
體驗(yàn)感受
初步體驗(yàn)下來宪拥,感覺騰訊云 AI 代碼助手在功能上和 Github Copilot
以及豆包的 MarsCode
沒有太大的差別仿野,該有的功能都有了〗猓可能騰訊云 AI 代碼助手還有其他新奇的功能,我還沒有體驗(yàn)到徙歼,希望能夠在日后工作中慢慢發(fā)掘吧犁河。
當(dāng)前,我僅僅從我日常工作的角度去體驗(yàn)了一下這款工具魄梯,不一定十分客觀桨螺,但是我能夠肯定的說,騰訊云 AI 代碼助手這款工具酿秸,確實(shí)很不錯(cuò)灭翔! 有了這款工具的加持,確實(shí)能夠有效的提高我們的工作效率辣苏。非常值得用起來肝箱! 現(xiàn)在,再也不是 GitHub Copilot 一家獨(dú)大了稀蟋,目前我體驗(yàn)過的 MarsCode
和 騰訊云 AI 代碼助手 都是非常不錯(cuò)的平替煌张!
眾多 AI 編程助手簡(jiǎn)單對(duì)比(來自各個(gè)網(wǎng)友評(píng)價(jià))
另外,我簡(jiǎn)單匯總了一下網(wǎng)友們對(duì)各種 AI 編程助手的評(píng)價(jià)退客,希望對(duì)你有所參考骏融。同時(shí),也希望你能夠在評(píng)論區(qū)發(fā)表你獨(dú)特的見解萌狂。
AI編程助手 | 優(yōu)點(diǎn) | 缺點(diǎn) |
---|---|---|
GitHub Copilot | - 提供跨多種編程語言的AI驅(qū)動(dòng)代碼補(bǔ)全和生成 - 基于OpenAI的Codex模型档玻,能夠根據(jù)上下文生成高質(zhì)量代碼建議 - 由GitHub和微軟推出 - 機(jī)器學(xué)習(xí)技術(shù)提供實(shí)時(shí)代碼建議 - 支持多種編程語言 - 減少人為失誤,提高工作效率 - 快速提供示例代碼茫藏,減少查閱文檔時(shí)間 |
- 部分生成的代碼可能不符合項(xiàng)目最佳實(shí)踐误趴,需謹(jǐn)慎審查 - 對(duì)隱私敏感項(xiàng)目不太友好,因?yàn)樾枰蕾囋贫颂幚?br>- 需要付費(fèi) - 網(wǎng)絡(luò)延遲問題經(jīng)常發(fā)生 |
豆包 MarsCode | - 由字節(jié)跳動(dòng)公司推出 - 提供智能化的代碼補(bǔ)全务傲、生成冤留、優(yōu)化等功能 - 支持多種編程語言和主流IDE |
- 目前市場(chǎng)推廣有限,用戶數(shù)量較少 - 需要與更成熟的工具競(jìng)爭(zhēng)树灶,部分功能可能尚待完善 |
Cursor | - 注重隱私和自然語言編程 - 提供智能且快速的代碼補(bǔ)全 - 全面的代碼建議 - 多文件編輯 - 集成文檔 - 上下文感知聊天 |
- 作為新興工具纤怒,可能在某些方面不如一些成熟的AI編程助手 |
bolt.new | - 全棧Web應(yīng)用開發(fā)沙盒 - 支持多種編程語言和技術(shù)棧 - 提供即時(shí)交互式編程環(huán)境 - 允許快速部署應(yīng)用 - 集成版本控制和協(xié)作功能 |
- 可能在某些高級(jí)功能上不如一些專業(yè)的AI編程助手 |
通義靈碼 | - 阿里巴巴推出的AI編程助手 - 基于通義大模型 - 支持多種編程語言和開發(fā)環(huán)境 - 特別適用于企業(yè)級(jí)項(xiàng)目的代碼生成和優(yōu)化 - 阿里云推出的基于通義大模型 - 兼容VisualStudioCode、JetBrainsIDEs等主流IDE |
- 對(duì)個(gè)人開發(fā)者不太友好天通,產(chǎn)品偏向企業(yè)客戶 - 需要學(xué)習(xí)曲線泊窘,初次上手較為復(fù)雜 - 代碼補(bǔ)全部分是基本可用的,有Copilot的70~80%的能力 - 對(duì)用戶代碼含義理解,尤其是對(duì)用戶本地輸入的代碼烘豹,注釋和用戶提出的問題的理解瓜贾,距離Copilot還有較大差距 |
代碼小浣熊 (Raccoon) | - 商湯科技推出的AI編程助手 - 特別針對(duì)初學(xué)者和中級(jí)開發(fā)者 - 提供智能代碼生成和輔助工具 - 基于商湯自研大語言模型 - 支持Python、Java携悯、JavaScript祭芦、C++、Go憔鬼、SQL等30+主流編程語言 - 支持VSCode龟劲、IntelliJIDEA等主流IDE |
- 目前功能較為基礎(chǔ),高級(jí)功能可能不如其他競(jìng)爭(zhēng)產(chǎn)品 - 僅支持主流編程語言轴或,未見對(duì)更復(fù)雜場(chǎng)景的深度支持 |
文心快碼 | - 百度推出的AI編程助手 - 基于文心大模型(ERNIE) - 支持超過100種編程語言 - 能夠幫助開發(fā)者在多種語言環(huán)境下實(shí)現(xiàn)實(shí)時(shí)代碼補(bǔ)全昌跌、生成和優(yōu)化 |
- 高級(jí)功能可能收費(fèi),對(duì)于個(gè)人開發(fā)者的成本較高 - 雖然支持多種語言照雁,但在某些冷門語言中的表現(xiàn)尚待提升 |
iflycode | - 科大訊飛推出的智能編程助手 - 結(jié)合了其在自然語言處理和語音識(shí)別方面的技術(shù)優(yōu)勢(shì) - 為開發(fā)者提供流暢蚕愤、直觀的代碼生成和補(bǔ)全功能 |
- 功能相對(duì)有限,復(fù)雜場(chǎng)景下可能表現(xiàn)不夠穩(wěn)定 - 語音編程在一些編程語言中可能不太適用 |
CodeGeeX | - 開源工具饺蚊,免費(fèi)提供全部功能 - 支持Python萍诱、C++、Java污呼、JavaScript砂沛、Go等10多種主流編程語言 - 開發(fā)者可以自由下載使用,并根據(jù)需要進(jìn)行修改和二次開發(fā) |
- 智能提示方面還有待提高 |
寫在最后
還是那句話曙求,不管你用哪款工具碍庵,我都建議你趁早把 AI 用起來。 你可以選擇停滯不前悟狱,但永遠(yuǎn)無法阻止時(shí)代前進(jìn)的步伐静浴。