【发布时间】:2013-04-03 22:05:17
【问题描述】:
我来自 Scala(和 Akka),最近开始研究其他设计时考虑到分布式计算的语言,即 Erlang(以及一点点 Oz 和 Bloom)。 Erlang 和 Oz 都是动态类型的,如果我没记错的话(会尝试查找链接)人们曾尝试向 Erlang 添加类型并设法键入其中的大部分内容,但无法成功强制系统使其适合最后一点?
Oz 虽然是一门研究语言,但对我来说当然很有趣,但它也是动态类型的。
Bloom 当前的实现是用 Ruby 实现的,因此是动态类型的。
据我所知,Scala(我猜是 Haskell,虽然我相信它最初是为了探索纯粹的惰性函数语言而不是分布式系统)是唯一一种静态类型并提供语言级别抽象的语言(因为没有更好的术语)分布式计算。
我只是想知道动态类型是否比静态类型具有内在优势,特别是在为分布式系统编程提供语言级别抽象的上下文中。
【问题讨论】:
-
当前 Akka 的实现是无类型的(使用 Any 表示消息)。 Scala 2.10 中宏的出现使得实现类型化版本变得更加容易。观看 nescala 2013 的这段视频:nescala.org/#t-14537068
标签: scala erlang distributed-computing oz