newsence
來源篩選

Goblins: Distributed, Transactional Programming with Racket and Guile

Hacker News

This article introduces Goblins, a new system for distributed and transactional programming built on the Racket and Guile Scheme implementations. It aims to provide robust tools for building complex, concurrent applications.

newsence

Goblins:使用 Racket 和 Guile 進行分散式、交易式程式設計

Hacker News
29 天前

AI 生成摘要

本文介紹了 Goblins,一個基於 Racket 和 Guile Scheme 實現的分散式和交易式程式設計新系統,旨在為建構複雜、並行應用程式提供強健的工具。

背景

Spritely Institute 研發的 Goblins 是一個為 Racket 與 Guile Scheme 設計的分散式交易型編程系統。它基於 Actor 模型並強調物件能力安全(Object-Capability Security),旨在提供一個能跨越不信任網路、具備原子性交易處理能力的開發框架。

社群觀點

在 Hacker News 的討論中,社群對 Spritely 團隊展現的高度技術力與創新精神表示讚賞,特別是他們在 Scheme 生態系中推動的各項前沿實驗。許多開發者對 Goblins 採用的物件能力模型(ocap)感到好奇,認為這種安全機制雖然在初學時較為燒腦,但一旦理解其邏輯後,會發現它比傳統的權限管理更具優勢。討論的核心之一在於 Goblins 與 Erlang 的區別。開發團隊成員 davexunit 親自解釋,雖然兩者都使用 Actor 模型,但 Erlang 的進程是可以被列舉與尋找的,這不符合物件能力安全的要求;而 Goblins 要求 Actor 必須擁有不可偽造且無法猜測的私有位址,從根本上確保了安全性。

另一個討論焦點是 Goblins 與其他分散式系統的差異。有留言者指出,Goblins 的「分散式」概念更傾向於在不可信任的公網上運作,而非僅限於私有集群內的節點通訊。此外,社群也將其與 Tony Garnock-Jones 的聯合 Actor 模型(Syndicated Actor Model, SAM)進行比較。開發者說明,Goblins 更接近經典的 Actor 模型(或稱為 Vat 模型),專注於點對點的消息傳遞與交易回滾機制,而 SAM 則更強調透過資料空間進行狀態同步。這種技術上的細微差別,決定了 Goblins 在處理需要強一致性與交易安全的分散式應用時更具潛力。

除了核心框架,社群也關注 Spritely 團隊的其他專案,例如將 Scheme 編譯為 WebAssembly 的 Hoot。這被視為一個完整的 Wasm 工具鏈庫,顯示了該團隊試圖將函數式編程的優勢帶入現代 Web 環境的野心。更有討論提到 Goblins 與 GNU Shepherd 服務管理器的結合,探討其取代 systemd 或 D-Bus 等系統底層組件的可能性。整體而言,社群認為 Goblins 不僅是一個編程庫,更是一套試圖重新定義分散式運算安全與互操作性的基礎設施。

延伸閱讀

  • OCapN 協議:旨在實現跨語言互操作性的物件能力安全網路協議。
  • Spritely Hoot:Scheme 到 WebAssembly 的轉譯器與工具鏈。
  • Syndicated Actors:另一種強調資料空間同步的 Actor 模型實現。
  • Shepherd × Goblins:探討將 Goblins 應用於系統服務管理的實驗專案。