我假设大多数 Clojure 专家都看过 Rich Hickey 的 ant 演示(http://gist.github.com/1093917和http://blip.tv/clojure/clojure-concurrency-819147)。如果要尝试制作同一个应用程序的分布式版本,但基于浏览器,每个浏览器控制一个蚂蚁,Clojure/ClojureScript 是否有任何东西可以帮助behave
函数的事务性质(假设behave
在客户端上运行)? 还是 Clojure/ClojureScript 的 STM 功能真的不适合分布式使用?
即,如果在客户端我在 (3,2) 并且想要移动到 (3,3),并且在我的客户端(浏览器)的世界中(这可能有点陈旧,与 Rich 的原始版本相同)线程有点陈旧)那个方格是空的,但是我将请求发送到服务器,在服务器的世界中那个方格是满的,ClojureScript 中是否有任何分布式 STM 可以告诉我——不,那个方格是满的并且您必须恢复该动作,因此您的下一步必须再次从(3,2)开始。在 Rich 的原始演示文稿中,它是全自动的,内置于 Clojure 的 STM 功能中。但是分布式,是否必须更明确,或者是否有内置的功能来做到这一点?
如果这种东西没有内置到 Clojure/ClojureScript 中,还有其他平台可能更合适吗?