GitHub Copilot
這幾天開發者社群最大的新聞應該是 GitHub 公告正式開放
GitHub Copilot.
Hacker News 上也討論的沸沸洋洋: GitHub Copilot is generally available
價錢也出來了,US$10/mo 或是 US$100/year:
We’re making GitHub Copilot, an AI pair programmer that suggests code in your editor, generally available to all developers for $10 USD/month or $100 USD/year. It will also be free to use for verified students and maintainers of popular open source projects.
書寫程式時, GitHub Copilot AI 會即時跑出建議的修改或是下一行的編寫, 建議的資訊,
不單是幾個字或一行程式, GitHub Copilot 會以最完整的解決方法來協助開發者解決問題.
無論是提供樣板程式碼, 整個單元測試, 甚至是更複雜的演算法等。
Tabnine
早些年前, Tabnine 就提供了利用 AI 分析程式碼的自動完成工具.
傳統 IDE 的自動補完, 大多是分析程式碼中的變數, 物件屬性, 函式等, 提供對應的自動完成建議.
而 Tabnine 除了程式庫中的既有程式碼等分析資料外,
也會利用 AI 訓練分析的結果, 提供開發者可能會需要的自動補完推薦.
長期使用下來, 覺得 Tabnine 確實對開發上是有幫助的.
但 Tabnine 主要僅提供自動完成的推薦, 開發上還是一行行自己輸入.
而 GitHub Copilot 提供更多程式片段, 可能是一整個功能區塊程式樣板等.
可以理解 GitHub Copilot 帶來的便利.
畢竟過往經驗中, 有相當程度功能區塊其實都非常雷同,
尤其是像 CRUD / Error Handling / unit test / ... 等程式片段.
很多時候開發上確實是複製貼上到不同專案而已.
Amazon CodeWhisperer
無獨有偶地, 近日亞馬遜在 re:Mars 公布了一款名為 CodeWhisperer 的自動寫程式輔助工具的預覽版本.
亞馬遜的 CodeWhisperer 是一種能協助軟體工程師擁有更高寫程式效率的 AI 工具,
根據亞馬遜的說法,CodeWhisperer 將不斷檢查工程師所寫的程式碼, 並且提供正確的建議.
Issues
license
目前這個服務被著重討論的問題, 第一個是 license 問題,
Hacker News 上有人提到有些程式碼的授權是有感染性的 GPL 類的,
若 GitHub Copilot 自動完成的程式片段引用了這些程式碼, 是否違反 GPL 規範,
這是個全新的問題, 在法院上還沒有被戰過.
code quality
另一個疑慮是, 學術界針對 Copilot 的研究論文指出,
在 1,689 個使用 Copilot 建議的程式中, 有 40% 的程式生成的程式碼具有已知的弱點.
而另一篇論文則指出 Github Copilot 事實上加速了劣質程式碼的產生.
所以類似工具的使用, 仍然很依靠工程師對程式碼掌握的程度.
否則程式產出快速, 但後續除錯的功夫, 可能事倍功半.
(也許之後會有 AI debug 服務吧, 笑)
References