实时能力?

kin*_*in1 7 clojure

在过去的几周里,我一直在学习和试验Clojure和Erlang.根据我的理解,两者都解决了相同类型的问题 - 但是 - 采用不同的方法.如果这是正确的,那么Clojure就像聊天应用程序或自动收录机等实时系统一样可行,就像Erlang一样?

Nic*_*zyk 7

Clojure而言,它可以提供与底层Java VirtualMachine一样多的实时功能.

CAN创建一个JVM硬实时系统,但是这已经超越仅仅是语言的语法,Clojure的提供.

根据您的实时要求,您似乎需要调整JVM(这是一篇很好的IBM Works文章或者使用像斐济JVM这样的特定JVM

关于埃兰,已经有关于SO的相关问题

使用这两种语言可以实现聊天和自动收报机工厂应用程序,但我个人怀疑使用Clojure进行部署会更容易,特别是查看云(Heroku)中的优惠和常规托管服务.


Art*_*ldt 6

两者都解决了在不同环境中的并发编程:

  • Clojure非常擅长共享内存并发编程.有许多线程都在单个大块内存(堆)上工作,并且需要协调对该内存中共享对象的访问.
  • Erlang非常善于分享任何分布式计算,其中流程需要能够在许多计算机上运行并在独立的内存空间上运行.它们不协调对象的共享访问.

这两个系统都是"软实时",非常适合聊天和控制系统等,但它们都不适合具有硬实时要求的系统.