一种生物启发的编程语言

发布: (2026年1月16日 GMT+8 21:11)
5 分钟阅读
原文: Dev.to

Source: Dev.to

动机

我一直对那些说“我在做一门编程语言”的人感到 cringe。更像是他们背后那种“……会比 C 更好!”的傲慢。虽然我不指望能做出比 C 更好的东西,但我确实在做一门编程语言。它不会很完美,也不会解决我不感兴趣的问题,但它可能会帮我解决一些事,也许其他人也会觉得它和我一样酷。

传统微服务的问题

我参与过很多不同的软件项目——从前端网页应用到原生移动应用再到后端微服务。后端开发尤其吸引我,但我不断遇到一些重复出现的问题。

  • 体积与部署开销 – 微服务往往要么臃肿要么过小。部署一个微服务的时间成本有时比实际编写代码的时间还长。在大规模应用中,跨微服务的范围蔓延或过于乐观的架构决策会变得非常棘手。容器编排以及仅仅为了本地测试而需要的各种依赖更是添乱。
  • 数据物流 – 我喜欢能够清晰看到数据的起点、终点以及在应用中的流向和转换。微服务引入了大量的边界和必须满足的契约。追踪一条数据的完整生命周期变得极其困难,尤其是当涉及消息流平台时。一旦数据离开你的手进入模糊的消息中间件,你对其流向的洞察就会丢失,即便它只是要去另一个微服务。

Mycelium VMN 与 Spore 语言

Mycelium 是一种受生物启发的虚拟机网络(VMN),其上运行一种纯函数式语言 Spore——至少这是我们的设想。

  • 每个 Spore 函数将作为独立单元部署在 VM 中,并通过网络分发,实际上充当“纳米服务”。
  • 由于每个函数都是纯的,我们可以获得函数式语言的典型优势:记忆化、异步安全、模块化、可扩展性等。
  • 函数会进行语义哈希,只有真正的函数实现改变时才会触发重新部署(重新排序语句、添加注释等都不会触发)。
  • 网络会自动分配函数——根据使用情况和可用资源进行最优分配。理念是“微服务”会根据实际使用模式自动形成和重组,而不是在需求变化前就做出乐观假设后固定下来。一起触发的代码会一起连线!
  • VM 网络本身会依据使用情况和资源可用性进行重组,能够处理从单节点故障到整个数据中心灾难的各种情况。这种自我重构受到了真菌菌丝网络在自然界中自组织方式的启发(因此取名 Mycelium)。

当前进展

撰写本文时,Spore 仅是一个匆忙(且仅部分实现但可运行)的字节码解释器。Mycelium 目前是一系列实验,用来验证实现完整系统的想法。

未来计划

这些想法在我脑中已经酝酿了好几年。现在终于该把它们付诸实践了。我计划在业余时间完善语言和 VMN,并在这篇博客中记录想法和过程。我认为自己对前文提到的问题所提出的部分解决方案相当有趣!

如果你想关注进展或提出贡献建议,可以在我的 GitHub 上查看。

Back to Blog

相关文章

阅读更多 »