颱風天讀一點技術新聞與分享。
ChatGPT 對很多人來說,可能是找資料(或者是創造資料)的好助手;而對於我這個還有在做 hands on 的 developer 來說,ChatGPT 或是 Claude 的確在降低學習曲線、或者是加速程式開發上頗有幫助,至於是否有真正提升到「效率」,這可能就見仁見智了。因為 Code completion 的確可以加速,但是在一些疑難雜症上,developer 還是要能夠「問對問題」,AI 才有辦法真正幫助到你,但是難就難在怎麼「問對問題」。
雖然國外有一份研究,是認為 Copilot AI 並沒有真正提升到效率的:工程師用了 GitHub 的 Copilot AI程式助手三個月後,研究發現既沒有提高程式開發效率也沒有減少錯誤率,可以參考看看。我是不太認同這個研究報告,因為在我個人的實務經驗上,我必須說 ChatGPT/Claude/Copilot 在軟體開發上,對於拉開或趕上競爭對手,的確是有很大的幫助(不過還是那個前提,你能不能「問對問題」)。
在 VSCode、Intellij、Android Studio(其實就是 Intellij)相繼都有 GitHub Copilot Extension/Plugin 後,Apple 的 Xcode 終於也迎來 GitHub Copilot 官方的 Extension 了!(2024/10/29)官方公告在此:GitHub Copilot code completion in Xcode is now available in public preview
在官方的 Xcode Extension 推出之前,GitHub 上面最受歡迎的 Xcode Copilot Extension 是:https://github.com/intitni/CopilotForXcode,不過因為這個 extension 還要安裝 NodeJS 等環境,我個人覺得超麻煩,所以就沒試著去使用看看;目前 GitHub Copilot for Xcode 相較於其他開發工具的 GitHub Copilot Extension/Plugin,功能上還是蠻陽春的,只有 Code completions 的功能,跟 GitHub Copilot 的 Chat 功能暫時還沒有。
在使用上,GitHub Copilot for Xcode 還是會有幻覺出現,因此初步看來除了讓 developer 少打一些字、讓初學者可以更快入門之外,可能還看不出實際的效益;下面用一個簡單的例子來展示:
我建立了一個 LoginDemoApp,是使用 SwiftUI 的 APP;在增加登入欄位的過程裡面,TextField 沒問題、Button 沒問題,Code completions 都快速且正確地給出建議;只是在密碼欄位就弄出一個 PasswordField 的幻覺(我故意先打一個 P),但是在 SwiftUI 裡面,密碼欄位其實是 SecureField 這個物件。
再來,不知道是不是 Xcode extension 本身在設計上的限制,還是因為是 public preview 的關係沒做那麼完整;如果你想要在 Xcode 裡面享受到 GitHub Copilot 所帶來的好處,必須要先啟動 GitHub Copilot for Xcode 之後,再啟動 Xcode 才行。
從 GitHub Copilot 推出各個開發工具的 Extension/Plugin 的狀況來看,在 Java 的開發工具世界裡,Eclipse 看來已經是一個逐漸被忘記的開發工具(目前沒看到 GitHub Copilot 官方有打算做這件事,而第三方的開發者當然是有);或許所有在教 Java 入門課程的老師們,應該要好好考慮一下,是否還要以 Eclipse 作為初學者的入門工具了。
Add comment