jaseci-labs/jac

The Jac Programming Language -- The language for any human or AI looking to use one language for everything

解決的問題

Jac 解決了現代全端開發中的碎片化問題,開發者必須管理多種語言(TypeScript、Python、SQL 等)、套件管理器以及設定檔(YAML、Dockerfile)來建構單一應用程式。這種碎片化產生了「膠水程式碼」——序列化器、ORM 模型與 API 客戶端——這些程式碼未被任何單一編譯器檢查,導致錯誤與高維護成本。

工作原理

Jac 是一種「協同式」(Synechic)與「拓撲動力式」(Topokinetic)程式語言,使用單一的 Python 風格語法編譯為 Python 位元碼、JavaScript 與原生機器碼。

  • 協同式(連續性): 在前端、後端與原生層之間提供連續的媒介。一個編譯器檢查整個堆疊,因此資料模型中的欄位重新命名會在所有層級觸發編譯錯誤,而非生產環境故障。
  • 拓撲動力式(運動): 採用物件空間程式設計,資料是節點與邊的持久拓撲結構。"行走者"(Walkers)在該圖中攜帶運算,持久化直接內建於語言中,無需外部資料庫或 ORM。
  • 多編譯器(Polypiler): jac 二進位檔扮演完整的工具鏈角色,內建私有的 CPython、Bun(JS 執行時)、LLVM 與 Kubernetes 部署器,無需額外安裝解釋器或編譯器。

適用對象

Jac 專為人類與 AI 代理共同建構全端應用程式而設計。特別適合希望減少樣板膠水程式碼的開發者,以及能從單一、類型檢查的程式碼庫中受益的 AI 編碼代理(該程式碼庫可容納於上下文視窗內)。

特色亮點

  • 統一工具鏈: 單一二進位檔取代 Python 解釋器、JS 執行時、C 編譯器與套件管理器。
  • AI 整合: LLM 呼叫視為類型化函式呼叫,編譯器從函式簽章生成提示,並強制回傳類型。
  • 漸進借用檢查: 透過 own 與借用註解,允許開發者從完全管理的程式碼逐步過渡至零參考計數的原生產物。
  • 零膠水全端: 自動產生 API 端點、路由表與遷移檔案。
  • 代理就緒: 內建 MCP 伺服器與可匯出的「代理技能」,可直接整合至 Claude Code、Cursor 等 AI 編碼工具。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案