❶ CodeWhisperer (亞馬遜AI) 編程助手使用感受
CodeWhisperer編程助手使用感受如下:
安裝便捷:CodeWhisperer為IntelliJ IDEA用戶提供了插件支持,安裝過程相對簡單,只需確保IDEA版本符合要求,並下載對應版本的插件進行安裝。安裝完成後,重啟IDEA即可開始使用。
多語言支持:該助手支持多種編程語言,包括但不限於Go、Rust、PHP、Ruby、Kotlin、C、C++、Shell腳本、SQL和Scala,這對於多語言開發者來說非常友好,減少了學習成本。
智能提示補全:CodeWhisperer提供了智能提示補全功能,能夠極大地簡化編程過程。通過自然語言的方式,開發者可以更高效地編寫代碼,提高了編程效率。然而,需要注意的是,雖然英文編程語境下的支持良好,但中文支持仍有待加強。
提升開發效率:相比傳統開發方式,CodeWhisperer使得需求梳理與編程實現更加緊密,縮短了開發周期,降低了試錯成本。開發者可以更專注於業務邏輯的實現,而不必過多糾結於代碼細節。
未來展望:雖然當前版本的CodeWhisperer在邏輯處理方面還有所限制,上下文關聯不足,但亞馬遜作為技術巨頭,未來有望不斷優化和升級該助手。未來版本的CodeWhisperer有望實現更長篇幅的自然語言處理,徹底擺脫編程語言的限制,為開發者帶來更加智能化的編程體驗。
總結:CodeWhisperer作為一款智能編程助手,為開發者提供了便捷、高效、多語言的編程支持。雖然目前還存在一些局限性,但其潛力和前景不容忽視。隨著技術的不斷進步和優化,CodeWhisperer有望成為開發者手中的得力助手,推動智能化編程的進一步發展。
❷ 怎樣看待「智能化編程語言」Sketch
這屬於程序生成(Program synthesis), 是形式驗證(Formal verification)一個偏應用的分支.
它的口號就是能夠讓機器自動生成滿足需求(功能性需求, 安全性需求)的代碼, 並且生成的代碼經過形式驗證. 經過形式驗證的代碼, 理論上不需要寫測試. 程序員再也不用絞盡腦汁想測試用例了, 因為機器幫我們驗證了在所有可能的輸入下程序的行為是合乎要求的. 這個保證是極強的. 假如無人駕駛車的控製程序里有一個變數叫distance_to_wall(車到牆的距離), 然後我們的生成的代碼保證這個變數永遠大於0, 於是我們就有了一輛不會撞牆的無人駕駛車了. 但是現在的技術還沒有這么成熟, 不過科學家們在努力.
這樣的結果, 人人都是產品經理了, 只要提需求就好了. 對於一直追求終極自動化的計算機科學家來說, 這樣的未來是多麼有吸引力啊. Sketch就是做得比較有影響力的一個項目. 但是如你所說, 應用還是比較有限.
程序生成主要依賴於約束求解(Constraint Solving)的技術. 所有人高中都接觸過約束求解. 求解線性方程組就是約束求解的一個例子. SAT問題也是約束求解. 我們可以發現約束求解並不是一個演算法, 只是一個很籠統的稱呼. 對於不同的約束, 其實有不同的求解演算法(Decision procere). Satisfiability Molo Theories技術是把不同的求解演算法集成起來的框架. 我的朋友, 卡耐基梅隆大學的Sicun Gao博士和Soonho Kong博士開發了一個SMT solver叫dReal(dReal), 支持約束條件里有微分方程. 很巧的是, Sicun Gao現在就在Sketch的作者所在的實驗室做研究.
程序生成的技術大概就是將源代碼轉化成一個約束表達式, "??"被轉化成未知的變數, 然後扔給約束求解器找出一組解來. 加州伯克利大學的Ras Bodik教授開了一門程序生成的課(Ras Bodik - EECS), 可以看看.