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

欢迎!请查阅关于页面以了解有关此操作的一些更多信息。

0
core.async

在core.async的Clojure和ClojureScript版本之间存在相当多的重复代码。将库转换为使用Reader条件语句将减少大量代码量,并降低一个库中的更改未在另一个库中正确实现的风险。这还可以通过使特定平台的代码更加突出,使维护和源代码阅读更加容易,因为在纯Clojure中保留core.async的‘本质’。这也可能是将 cljs.core.async.macros 带入主异步命名空间使用reader条件语句的机会。

尽管有这些好处,但也有一些缺点
目前两个端口可以相当独立地存在,每个领域的专家都可以在其自己的部分上工作而不影响其他部分。如果这是一个担忧,可以添加更多测试以确保没有中断
合并这两个端口可能会使在同一源文件中读取任何版本都变得更加困难。

由于这是一个相当大的变更,我在继续之前希望得到对这个提议的反馈。

2 个答案

0

评论人:alexmiller

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

这里另一个方面是,reader条件语句是为在不同平台上非常相似的代码设计的,但在许多情况下,clj和cljs的代码差异很大,所以它不是一个明显的候选人。相反,我预计会在许多情况下看到同一命名空间的不同版本。

更改命名空间也当然会破坏现有用户,因此我们需要对此改变做出计划。

虽然我认为有更统一的代码库的终点(以及更好的构建系统,我一直在这个系统上工作),但我认为对核心团队以外的任何人来说,为它工作是不明智的。

0
by
...