2024年Clojure状态调查!中分享您的想法。

欢迎!请参阅关于页面,了解更多关于这个工作原理的信息。

0
core.async

在Clojure和ClojureScript版本的core.async之间存在大量重复的代码。将库转换为使用读者条件将大大减少代码量,并减少在一个库中的更改未正确在另一个库中实现的可能性。这也可能通过使平台特定代码更加突出,而将core.async的“本质”保存在纯Clojure中,使维护和源代码阅读更容易。这也可能是将cljs.core.async.macros通过使用读者条件引入主异步命名空间的机会。

尽管有这些好处,但也有几个缺点
目前两个端口可以相当独立地存在,并且每个领域的专家可以独立工作,而不会影响另一个端口。如果这是一个问题,可能可以添加更多测试来确保没有破坏
合并两个端口可能会使在同一个源文件中阅读任一版本都更加困难。

由于这是一个相当大的改动,我在进一步进行之前想先了解一下对这个建议的反馈。

2 答案

0

由:alexmiller发表的评论

就目前而言,我们仍然支持Clojure 1.6和core.async,因此这不是一个选项。在某个时候,这将会改变,但不确定何时。

这里还有一个方面,读者条件是为了代码在各个平台之间非常相似而设计的,但clojure和 cljs的代码在很多情况下实际上有很大的不同,因此这并不是一个明显的候选人。相反,我预计在很多情况下将会看到相同命名空间的替代版本。

更改命名空间当然会破坏现有用户,因此我们需要为这种变化作出计划。

虽然我认为有一个更统一的代码库终点(以及一个更好的构建系统,我一直在做这项工作),但我并不认为让核心团队之外的人进行这项工作是有意义的。

0
...