Car*_*oss 27
是的,我们的语言对比图基本上是个笑话.特别是"Not Lisp"行.:)
正如斯蒂芬C从我的原始帖子中指出的那样,一般来说,Gosu比Scala更简单,而Scala比Gosu具有更高级的功能.
Scala和Gosu有许多相似之处:
两者都是静态类型,但使用类型推断来减少代码膨胀
两者都支持闭包和更多功能风格的编程
两者都在现有Java库之上提供附加功能,尤其是在集合周围.
以下是一些差异:
Gosu不支持一般运算符重载
Gosu不为Monads提供语法支持
Gosu中的泛型比Java 中的更简单(以正确性为代价),它们在Scala中更多(或至少是)复杂(尽管Scala在正确性方面做得更好).
Gosu不支持像Scala在闭包中隐含的'_'参数这样的东西:在这种情况下它更明确.
Gosu对核心Java库的扩展不那么引人注目.我们将其他方法焊接到现有的Java类型上,而不是引入新的类型层次结构.
Gosu和Scala在功能方面有一个很大的区别:Gosu拥有我们所说的开放式系统.这允许人们将任意资源插入Gosu编译器.举个例子:Gosu(截至0.8.5)支持XSD和WSDL文件作为一等公民:
在功能方面,开放式系统是Gosu和其他静态类型JVM语言之间的真正区别.
话虽如此,现在令人遗憾的现实是Scala在某些方面比Gosu更成熟,特别是工具.在所有主要的IDE中都有很好的IDE支持Scala.我们有一个Gosu的Eclipse插件,但它仍然处于起步阶段.同样,我们的IntelliJ插件非常新.
Scala有一个非常完整的Web框架,Lift.我不是他们的方法的忠实粉丝,但它是完整的,很多人喜欢它.
Gosu还有一个网络框架:
我喜欢Ronin的方法,但是我愿意,不是吗?Ronin是由非常了解Gosu的人建造的,因此,它利用了该语言的许多功能.
希望有所帮助.实际上,如果我今天开始一个项目,我可能只是因为工具支持而使用Scala.但是,如果您希望向另一个方向发展,特别是如果您的项目涉及Web服务或XSD处理,Gosu可能是一种有用的语言.从长远来看,我希望Gosu将成为JVM开发人员的务实选择,但只有时间会证明.
Lan*_*dei 16
在古薮对照表是有点不公平的斯卡拉:从Java的转换是很容易(你不必须使用所有的花哨的东西,斯卡拉在开头),以及仿制药具体化Scala有不完美,但被称为可行的解决方案舱单.当然,缺少Scala闪耀的类别(模式匹配,更高级的类型...)