gpt4 book ai didi

Clojure core.async 和 Lamina

转载 作者:行者123 更新时间:2023-12-04 16:31:13 25 4
gpt4 key购买 nike

core.async 是 Lamina 的替代品还是打算成为 Lamina 的替代品?

如果不是,是否存在明显的情况,其中一种优于另一种?

最佳答案

我是Lamina的作者。我认为 core.async 是一个制作精良的库,其设计比 Lamina 更清晰。有些事情我认为 Lamina 更擅长,主要与内省(introspection)、性能和可扩展性有关。

我对 core.async 的最大问题是,除了流抽象之外,它还带来了一个执行模型(一切都发生在 core.async 线程池上),这意味着如果你在任何地方使用它,它都会限制设计和实现代码库中的所有其他内容。

我已经看到许多将流公开为 core.async channel 的“异步”库,这意味着您只能在熟悉使用 core.async 执行模型的情况下使用这些库。

我即将发布一个库,它试图成为一个“最小”的流表示,可以用来代替 core.async、Lamina、Java 阻塞队列等,称为 Manifold .可以将 Manifold 流强制转换为 core.async channel 、Lamina channel 等,并且这些内容中的任何一个都可以强制转换回 Manifold 流。

我认为“异步”领域还很年轻,而且还有很多未开发的问题。抽象的可扩展性如何,它们在生产中调试的难易程度等等。 JVM 提供了许多用于自省(introspection)的工具,但由于异步机制使用完全不同的执行模型,我们基本上是从头开始重新开始。我不会告诉您在 core.async 上使用 Lamina,但我会提醒您 core.async 是应用程序级别的抽象,而不是库级别的抽象。

关于Clojure core.async 和 Lamina,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26801027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com