所有語言
分享
文章來源:新智元
就在剛剛,阿里雲一口氣宣布兩個重磅消息:
- 內部全面推行AI編程;
- 「通義靈碼」正式入職成為程序員的AI助理。
雖然最近AI程序員可以說是科技圈的頂流,AI編程工具作為程序員的外掛,並不是什麼新鮮事。
但阿里雲這次官方宣布全員使用AI,堪稱一次突破性的嘗試。
有趣的是,阿里雲在儀式感上也拉滿了,通義靈碼不僅有自己的頭像,甚至還有自己的工號——AI001。
誒,難道說人類程序員真的要被AI取代么?
放心,「通義靈碼」不是來取代你們的,而是來加入你們的。
首個AI編程程序員入職阿里
幫助人類程序員完成真實世界的工作,通義靈碼真的靠譜嗎?
其實,通義靈碼早在去年雲棲大會正式亮相,發布后僅一周通義靈碼就穩居主流開發工具VSCode插件市場熱榜,時隔數月,它在技術和功能上全面升級,經歷了20多個版本的迭代。
如今全新升級的模型,在HumanEval等榜單處於業界第一梯隊,已熟練掌握200+種編程語言,它的下載量更是突破了200萬,是當之無愧的國民AI編程工具。
下面就是一份通義靈碼的簡歷,請查收!
例如,在最基礎的代碼生成任務中,它能根據上下文自適應生成精準代碼,運用實時分析與檢索增強技術消除幻覺,真正做到秒懂程序員的需求。
在最新的版本中,通義靈碼還新增了代碼優化功能,能夠深入分析代碼及上下文,快速定位語法錯誤、性能瓶頸等問題,並給出具體優化代碼建議。
想要上傳一個excel文件?靈碼能根據上下文自動續寫,幫你寫代碼
它還能幫你寫單元測試,支持多種框架
懶得寫代碼註釋?就交給它吧,方法和行間註釋一鍵生成
bug找不出?讓它給你一鍵排查,識別報錯原因后,直接生成建議代碼
一句話,程序員寫代碼過程中的種種難題,它都能解決!
值得一提的是,「通義靈碼」每天都會有數百萬行的代碼被程序員採納,推理次數更是超過了兩千萬次,可以說是國內最受歡迎的AI編程工具之一了。
話不多,我們就來看看「通義靈碼」到底能做些什麼?
解釋遺留代碼
毫無疑問,最能「薅禿」開發者頭髮的問題之一,就是處理前人留下來的「屎山」了……
就比如下面這個。
就算代碼不再維護、更新了,也還是需要從中逆向工程,推出業務模型、交互和規則,再重新構建代碼和數據模型。
沒關係,「通義靈碼」來幫你解決。
召喚「通義靈碼」,選擇解釋代碼功能。
一眨眼的功夫,這段代碼的解釋,就出現了!大幅提升了開發者們讀代碼的效率。
開發
在前端開發中,開發者們經常會遇見繁瑣複雜的編程任務,絞盡腦汁去優化代碼結構。
而這個問題對「通義靈碼」來說,可謂so easy!
新增的「代碼優化」功能,可以深入分析代碼上下文,快速鎖定語法錯誤、性能瓶頸……總之,你頭疼的絕大多數問題,它都能解決。
舉個栗子,選中下圖右欄中Java編寫的一段代碼,然後選擇編碼任務——代碼優化。
「通義靈碼」看完這串代碼后,分析得出:
這創建的是一個CloseableHttpClient的實例代碼。然後使用這一實例發送30個HTTP GET請求,每個請求間隔5秒。同時代碼中打印了每次請求所需要的耗時,並計算了這些耗時90分位數(P90)。
隨後,它就列出了代碼中需要優化的點,包括重複代碼、資源管理、異常處理等等。
提出建議的同時,「通義靈碼」還一步到位給出了具體優化后的Java代碼。
在下圖中,中間標紅區域都是源代碼被修改的內容,右邊綠色即為優化后的代碼,看完就是四個字——賞心悅目。
最後,「通義靈碼」就整體優化版本的調整,做了一個整體總結。
就這樣,開發者不僅提升了代碼質量,還節約出大量時間,可以摸魚充電了。
對於程序員來說,代碼續寫是再熟悉不過的功能了,畢竟主流開發工具早已自帶了代碼補全功能。
只不過,這個準確率屬實有點下飯……
現在,AI編程工具終於重新定義代碼補全功能了,「通義靈碼」可以通過感知上下文,來續寫代碼,將代碼準確率提升帶了一個新的台階。
當然,它續寫的代碼中,也不排除會存在某些問題,這時候就需要我們人類程序員手動修改了,這就是咱們人類程序員不可替代的價值。
在數據庫問題上,我們也可以直接向它提問。
比如,想用數據庫來存儲照片,該怎麼做?
它會回答說:可以使用關係型數據庫(RDBMS)或非關係型數據庫(NoSQL)來存儲照片。
並且,它還給出了具體示例。
測試
前端的開發者們編寫代碼離不開AI編程工具,對於後端測試團隊們同樣如此。
眾所周知,用例的設計對於測試工作來說至關重要,其中,測試數據的數量和質量更是會直接影響測試的覆蓋率。
但問題在於,收集各種各樣的測試用例不僅耗時,而且成本極高。
現在,有了大模型加持的「通義靈碼」,我們便可以直接讓它給出「RobotFramework的Hello world示例」。
然後,就可以坐等答案了。
很多公司上了代碼質量管控的指標,會考評各個項目的單元測試覆蓋率。
很多老項目老代碼,或者着急交付的項目,單元測試嚴重缺失。
而用通義靈碼來對老代碼進行單元測試,效率非常高。
這種流程化的內容交給AI來完成就非常的舒服。
它可以自動生成多種框架單元測試,為程序員節省不少時間。
雖然AI工具不會主動寫BUG,但是人類程序員難免犯錯。所以代碼調試,是程序員們開發過程中不可或缺的一環。
程序中有什麼bug,如何修復,很多時候都得需要調試來發現。
然而,調試過程遇到的錯誤,怎麼辦?
放心,交給「通義靈碼」來解決!
如下圖所示,它可以幫我們運行調試錯誤。
運維
除此之外,做運維的童鞋也可以讓「通義靈碼」幫忙編寫一個腳本。
比如向它提問:「一個Web程序運行的環境,需要安裝哪些依賴服務?」
它會立刻告訴你——
1. 服務器:Web程序需要在服務器上運行,可以選擇Apache、Nginx、IIS等Web服務器。
2. Web框架:根據Web程序的開發語言選擇相應的Web框架,如Django(Python)、Ruby on Rails(Ruby)、Express(JavaScript)等等。
3. 數據庫:根據Web程序的需求選擇相應的數據庫,如MySQL、PostgreSQL、MongoDB等。
4. 前端框架和庫:根據Web程序的需要選擇相應的前端框架和庫,如React、Angular、Vue.js等。
5. 編譯器或解釋器:根據Web程序的開發語言選擇相應的編譯器或解釋器,如Python解釋器、Java虛擬機等。
然後,它在右邊會自動為你生成以上依賴服務的安裝命令。
運維過程中出現問題,不要愁。
直接問它:無法用SSH連接Ubuntu下面的ECS實例,該怎麼辦?
它立馬告訴你,請按照以下這些步驟進行排查。
不知道相應的檢測命令?
直接問它,答案就在眼前——
程序猿是否會被AI取代?別怕,它只打輔助
最後,還是回到AI取代人類程序員的問題。
橫空出世的全球首個AI工程師Devin,能24h不間斷自主改寫代碼、訓練模型、構建和部署應用;黃仁勛本人也表示,不久的將來,人類再也不需要學習編碼了,孩子們的編程課都停了吧。
一時間,恐慌鋪屏全網,難道程序猿真要不存在了嗎?!
其實不然。在Devin橫空出世那篇文章下,在我們的留言區最多的聲音是這樣的——
網友:吾輩
還有人說,「程序員這碗飯還是能吃,只是飯碗沒有原來那麼大了而已。」
網友:兔兔生威
「而現在的AI編程,性能還很差,很多連給人類打下手的能力都沒有,更別說替代人類了。」
網友:數據加載中
甚至有人說,如果程序員真的大量使用AI編程,搞不好還會催生出一種專門的人類程序員專屬新任務——「給AI擦屁股」。
網友:程序員吾本真
總之,至少現在來看,所有的AI編程工具還完全不足以替代程序員。
此外,有網友獲取了Devin的體驗資格之後,發現稍微複雜一些的任務,它現在依然無法完成。
比如讓它做一個能調用GPT-4和人下棋的網站。
它生成了幾步就被卡住。
它生成了一個數據可視化的網站,但是內容依然有BUG。
最終,Devin只完成了一個簡單功能的Chrome的插件。
所以,我們對這些AI編程工具的態度,應該是擁抱,而不是畏懼。
在阿里雲,用「通義靈碼」打輔助的程序員們,實打實地提升了效率,這也是阿里雲要給全員配AI助理的底氣。
而如果未來某一天,AI大潮真的撲面而來,接管了所有人的工作,到時候能夠獨善其身的人,一定是了解AI、擅用AI的人。
當洪水涌過,最順應局勢的人,才有機會成為翻雲覆雨的弄潮兒。