Gossamer:一门拥有原生 Goroutine 和无停顿内存管理的类 Rust 语言
Gossamer: a Rust-flavoured language with real goroutines and pause-free memory

原始链接: https://gossamer-lang.org/

Gossamer 是一门现代编程语言,旨在通过 WebAssembly 编译的虚拟机在浏览器中直接流畅运行,无需本地安装。 该语言具有简洁且富有表现力的语法,支持: * **函数式范式:** 包含用于数据转换的可读管道操作符(`|>`)。 * **并发处理:** 通过 `spawn` 和 `join` 提供对 goroutine 的原生支持,并可轻松处理结果。 * **强大的类型系统:** 利用代数数据类型(ADT)和模式匹配来处理复杂数据结构。 * **灵活性:** 允许顶层语句,使 `fn main()` 成为可选,从而减少样板代码。 通过将底层性能与高水平的开发体验相结合,Gossamer 简化了从 Web 路由到复杂计算的各项任务,且一切均可在交互式的浏览器环境中实现。

关于 **Gossamer** 的 Hacker News 讨论反映了开发者社区的极大质疑。Gossamer 是一门类似 Rust 的新语言,号称具备“无停顿内存管理”和 goroutine 特性。 虽然该项目展示精良,但评论者迅速对其技术主张提出了批评。最主要的技术争论集中在语言的内存管理上:批评者认为,Gossamer 对贪婪引用计数(eager reference counting)和循环收集器的依赖与其“无停顿”的承诺相矛盾,并指出回收大型循环图必然会导致延迟。 怀疑论者通过对比 ZGC 或 Go 语言的垃圾回收器等成熟的高性能方案,对该语言的设计选择提出了挑战,质疑为何现代语言设计者往往选择重新发明内存管理,而不是采用已被证实的高性能解决方案。其他评论者则强调了新语言发布中存在的“敷衍”趋势,对那些缺乏明确差异化或严谨技术基础的项目感到疲惫。总的来说,社区对 Gossamer 的价值仍持怀疑态度,既对其营销策略抱有犬儒心态,也对其实现技术存有疑虑。
相关文章

原文

Hit Run on any sample — it executes right in your browser, no install. Gossamer's VM is compiled to WebAssembly.

fn double(x: i64) -> i64 { x * 2 }
fn add(a: i64, b: i64) -> i64 { a + b }
fn clamp(lo: i64, hi: i64, x: i64) -> i64 {
    if x < lo { lo } else if x > hi { hi } else { x }
}

fn main() {
    let n = 3 |> double |> add(10) |> clamp(0, 100)
    println!("answer: {}", n)
}
联系我们 contact @ memedata.com