作为处理并发问题的平台,Elixir / OTP似乎是最合适的解决方案。
使用网络界面编写应用程序时,请考虑使用另一种功能语言(即haskell)推理和解耦应用程序逻辑的情况(由于它具有诸如在编译时高级检测错误,静态类型,等等)。然后,我将使用GenServer
s处理并发,并使用s附加Web界面Phoenix.Channel
。
是否可以使用NIF
s进行此设置?另外,会保持真正的并发性吗?我不确定在这里是否遵循正确的推理方法,但是是否可以根据GenServer
需求生成新的haskell流程,并且两者能否进行有效沟通?
当然,可以使用NIF和GHC的FFI以及少量用C编写的样板进行此设置。但是NIF最好用于简短的同步计算,而没有副作用,我感到这不是这些操作。
对于应用程序的Haskell部分,使用C节点可能会更好。您将找到的大多数文档都是针对Erlang而不是Elixir的,但是考虑到Elixir与Erlang的简单互操作,它应该非常简单(甚至有人写了一个示例)。大部分艰苦的工作将与编写Haskell“ C节点”有关,为此,粗略地浏览一下hackage和github并没有发现任何结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句