天天看點

關于軟體/代碼生成的思考

作者:極客公園

**作者:宿文

一、智能代碼生成的優勢

1、軟體應用的實作方式主要是代碼

資訊革命後,軟體應用将每種業務行為映射到二進制世界的載體,進而實作可表達、可優化的數字化目的。

軟體應用的實作方式主要是代碼。發展至今,全球已經有近1億程式員,中國近1000萬程式員。

随着機器學習和人工智能技術的不斷進步,智能代碼生成正成為業界關注的新焦點。基于大規模訓練的軟體代碼生成模型,不僅可以自動編寫高品質代碼,還可以完成各種複雜的軟體開發任務,極大地提高了軟體開發的效率和生産力。

這些都在深刻的影響着軟體産業。作為越來越重要的生産資料,軟體産業經常臨着需求與供給的不平衡,未來通過代碼生成的方式,或可以解決軟體消費的需求。

随着代碼生成的日臻成熟,企業會更加聚焦于業務自身的疊代。

當下,全球AGI的能力在解決代碼生成的能力天花闆是明顯存在的。

根據統計資料看,代碼生成的準确率在30%-40%之間,是以産品形态多是以代碼補齊功能為主的copilot,也有不少agent産品湧現。

實作代碼生成的autopilot,端到端生成軟體和應用,是代碼生成更加廣闊的方向。

在更長線的未來,“代碼不僅僅是一個産品,同時也是通往通用人工智能的路徑”。

2、智能代碼生成的優勢

與傳統的代碼編寫方式相比,智能代碼生成具有以下突出優勢:

智能自動編碼

代碼大模型通過深度學習的方式,能夠了解代碼的語義和結構,并根據輸入的需求自動生成高品質的代碼。使用者隻需簡單描述需求,模型就能快速生成符合要求的代碼,大大減輕了編碼工作量。

跨語言支援

先進的代碼大模型已經實作跨程式設計語言的代碼生成能力,開發者可以使用自然語言描述需求,模型就能自動生成對應的代碼,而不局限于特定的程式設計語言,這極大地提高了軟體開發的靈活性和适應性。

代碼優化與重構

代碼大模型不僅能生成新的代碼,還可以對現有代碼進行優化和重構,提高代碼的可讀性、可維護性和效率。這對于代碼品質把控和技術債務管理非常有幫助。

自動化軟體開發

結合更多的AI技術與産品,代碼大模型可以實作軟體開發的全自動化,從需求分析、設計、編碼到測試部署,整個軟體生命周期都可以由AI系統自主完成,這将大大提高軟體傳遞的速度和品質。

二、智能代碼生成對軟體産業的影響

1、智能代碼生成的終局:更加聚焦的專業化服務+自動化傳遞的軟體生成平台

大模型代碼生成能力對于軟體産業的影響,市面上的讨論雖然集中展現在對SaaS領域的影響,但實際當中更應該從全景來看。

概括來說,代碼生成的終局有望将軟體業态改造成兩類——更加聚焦的專業化服務和自動化傳遞的軟體生成平台。

我們将從幾個方面來拆解:

軟體業态的三個分類:專業化服務、大衆化标準産品、企業解決方案

在麥肯錫1999年出版的《Secrets of Software Success》一書中,對于軟體業态的三個分類依然經典:專業化服務、大衆化标準産品、企業解決方案。

  • 專業化服務限于邊際成本難以優化具備高度的分散特征,幾無規模化;
  • 以各類工具軟體為代表的大衆化标準産品則往往呈現出充分市場競争下的頭部效應,面臨的沖擊主要來自斜刺裡殺出的新品類或者雲化技術形态的變革;
  • 企業解決方案則往往是非标軟體平台與專業化服務的融合,以SAP、Saleforce、用友、金蝶國内外軟體等為代表,經過幾十年的發展體量不小。

當下,海外SaaS大部分屬于第二類,并通過客戶成功的多手段增強服務。國内衆多的軟體企業,特别是大多數SaaS初創企業,業務發展往往屬于第三類,重售前、重方案、重傳遞且重營運,本質上屬于軟體服務業。

2、為什麼是專業服務?中國的軟體采購消費的本質是業務代碼,而非産品

為什麼第一類專業服務在未來受益最大,甚至是成為終局?

這是有2點決定的:

  • 中國的軟體采購消費的本質是業務代碼,而非産品。
  • 當程式設計的成本趨近于0,個性化的數字化需求或能得到滿足。

歐美市場誕生了很多或大而美、或小而美的SaaS軟體企業,産品的标準化、收費方式、部署方式等均形成了中國軟體從業者與投資人豔羨的生态。

回看過去10-20年,在中國為軟體付費的大甲方主要是政府(G端)與大B端,而大B端則主要由國央企與少量頭部的民營企業構成。這也造成了中國SaaS行業普遍不賺錢。

背後的主要原因則是:中國的SaaS消費本質是消費代碼,而非産品。

簡單來說,實際營運中,從選型期、實施期到驗收期,再到維保期,軟體業态的資訊鍊條長,服務占比居高不下。

具體來看:

  • 甲方需求疊代:甲方的需求由于自身業務的差異性導緻五花八門,呈現出大量的長尾、非标定制需求,且随着業務的發展,軟體的供給比對一定是滞後的,即便有PaaS平台可以滿足80%的業務需求,但剩餘的20%卻消耗了80%的傳遞成本。
  • 甲方組織:甲方的數字化需求釋出者是七嘴八舌的,應用軟體往往伴随着流程梳理與再造,也是軟體服務企業的必然特征,軟體開發裹挾着大量的咨詢服務,軟體的使用者必然會在傳遞過程中提出各類需求。由于供需雙方在數字化經驗和專業度上的欠缺,很多使用者和客戶隻有見到最終傳遞的軟體才知道如何重提或者修改需求,讓軟體的傳遞返工問題異常突出,長鍊條的收尾直接導緻項目利潤的消耗和難堪的回款資料。
  • 甲方付費:大多數具備付費意願和能力的客戶往往是預算制,付款并非嚴格按照軟體傳遞的實質推進。更加窘迫的事實是軟體需求側驗收階段的“不講武德”,修改、增加需求屬于正常操作,否則不确收、不回款,造成了大量軟體企業普遍困擾的傳遞長、确收少、應收多等現場。究其根源,又涉及甲方在選型過程中的成本驅動或商務驅動的非專業選型,私有化部署帶來的軟體維護難度大,乙方軟體技術功底差、過度承諾等問題,以及政府/國央企在驗收或打款後的歸責制。

中國市場對于軟體的消費量是客觀存在且巨量的,但我們看到的是是消費代碼定制,可以稱之為消費代碼。

當程式設計的成本趨近于0,個性化的數字化需求或能得到滿足。

3、當程式設計的成本趨近于0,改變軟體供給側三大核心要素,個性化的數字化需求或能得到滿足

目前,軟體/代碼消費的目的——業務需求的數字化轉譯,自身就伴随着非标、定制、長尾的特征,而且業務需求是發展和增長的,個性化會持續湧現。由于供給端的不足,需求端要麼對解決方案做出讓步即接受盡可能标準化的模式,要麼在預算有限的情況下不停地重複造失敗的輪子,讓供給端的生存生态更差。

代碼生成的應用領域,在很長一段時間内都聚焦在軟體服務業,旨在将軟體與服務區隔,讓軟體的實作變成自動化的端到端代碼生成,成為标準化的工具;服務環節将變得越來越專業化。

代碼生成的終局有望将軟體業态改造成兩類——更加聚焦的專業化服務和自動化傳遞的軟體生成平台。

實作從需求PRD走向軟體工程的自動化,主要是因為改變的是軟體供給側的三大核心要素QCD(品質Quality、成本Cost、效率Delivery)三大瓶頸,最終實作軟體消費的普适與平權。

代碼生成與軟體供給的三要素

全球近1億程式員,中國近1000萬程式員,在軟體産業占據的人力成本達萬億美元級别,其中高品質的程式設計人力占比較低,同時面對軟體消費的巨大市場又沒法即時且高效的響應,呈現出供需的嚴重不平衡。

  • 效率:常見的軟體傳遞過程除了需求梳理階段的咨詢服務,後續的開發周期與上線後的需求增改删周期都是以周和月為考量的,軟體企業的邊際成本會不降反升。在代碼生成的終局裡,與業務場景強綁定的專業咨詢服務依然存在,但後續的軟體需求傳遞可以變成分鐘/小時級,給軟體行業帶來巨大的效率紅利。
  • 品質:PC/移動網際網路圍繞cloud-native、big data、algorithm催化出來的很多優質的infra能力,但在軟體産業優質的技術供給是極其稀缺的,代碼生成可以讓各類高階技術能力的應用門檻大幅度降低,實作技術普惠,改造軟體行業的基建。
  • 成本:在很多軟體品類的傳遞中,都有比例客觀的軟體服務成本,常見的收費方式是“人·天”模式,代碼生成可以讓軟體工程的傳遞邊際成本趨近于代碼生成所需的算力成本,讓資訊技術變成基礎設施而非上層建築。

    三、智能代碼生成的關鍵能力與現狀

    1、智能代碼生成的關鍵能力

    代碼大模型通過深度學習的方式,能夠了解代碼的語義和結構,并根據輸入的需求自動生成高品質的代碼。具體來說,代碼大模型具有以下關鍵能力:

    語義了解

    代碼大模型能夠了解代碼中蘊含的語義資訊,包括函數、變量、控制流等各個層面的意義。這使得模型可以根據實際需求生成符合業務邏輯的代碼。

    結構感覺

    模型不僅能了解代碼的語義,還能感覺代碼的結構特點,如面向對象的類結構、子產品化的設計等。這樣可以確定生成的代碼具有良好的可讀性和可維護性。

    上下文模組化

    代碼大模型擁有強大的上下文模組化能力,能夠根據輸入的需求描述,結合代碼的上下文資訊生成合适的代碼片段。這種上下文感覺有助于確定代碼的連貫性和适用性。

    多樣性生成

    代碼大模型不僅可以生成單一的代碼解決方案,還能生成多樣化的代碼備選方案,為開發者提供更多的選擇。這有利于探索更優的編碼實作。

    面向對象模組化

    代碼大模型能夠識别面向對象程式設計中的類、對象、繼承、多态等概念,并根據這些結構特點生成符合面向對象設計原則的代碼。這確定了生成代碼的可複用性和可擴充性。

    子產品化設計

    模型可以感覺軟體系統的子產品化設計,了解不同子產品之間的依賴關系和接口契約。這樣可以確定生成的代碼能夠很好地融入現有的軟體架構,實作良好的子產品化拆分。

    設計模式識别

    代碼大模型能夠識别常見的軟體設計模式,如單例模式、工廠模式、觀察者模式等。它可以根據實際需求自動應用合适的設計模式,生成高品質、可複用的代碼結構。

    2、目前代碼生成的2種模式

    目前,代碼生成領域的産品解決方案主要包括兩類:基于現有AGI的Agent vs 基于專用模型的端到端解決方案。

    大多數的參與者屬于前一類,産品形态多是以代碼補齊功能為主的插件形式為主,幾乎所有的主流的LLM公司都會提供代碼能力産品,也有不少獨立的agent産品湧現,代表性公司為Github Copilot、Cursor、August、Cognition等。根據統計資料看,代碼生成的準确率在30%-40%之間。

    實作代碼生成的“autopilot”,端到端生成軟體和應用,是代碼生成更加終局的技術方向。此類解決方案的在于解決AGI在代碼精準生成方向的模型底層技術卡點,基于transformer,自研更為先進的模型架構,讓大模型的商業化場景走向低容錯率的場景,代表性公司為Poolside、Magic、AIGCode。

繼續閱讀