Ruby vs Scala - 每个语言的优缺点

38

相较于 Ruby,从Web应用程序开发者的角度来看,Scala 语言有哪些优点和局限性呢?强烈欢迎使用对比图表和证据链接。

附言:这不是一场圣战问题(-:


2
@Downvoter - 有什么评论吗? - Andrei Petrenko
5
苹果与橙子相比有哪些优点和局限性? - Raphael
63
橙子含有更多维生素C,但是苹果含有更多铁。如果你患有坏血病,橙子对你更加有用。 - Andrei Petrenko
8
谢谢。 (尽管许多人会读成“哪个更好吃?”) - Raphael
10
那问题不是出在“人民”身上吗? - greenoldman
1个回答

55

我已经使用Ruby和Rails工作了两年多,现在刚学习Scala和Lift一个月,所以我的观点可能有些偏见,但是这就是我的看法。

Ruby让你感觉很棒。我发现关于这门语言的每一件新事物都会让我像个小学女生一样咯咯笑。使用gem非常简单,并且通过Bundler和Gemfiles,这可能是我遇到过的最好的库管理系统。

有很多gem可用于各种用途,从API包装器到复杂的身份验证/授权

Ruby还有一个非常出色的社区,这将使学习语言变得非常容易。以Ryan Bates的RailsCasts为例。如果你看了这些,你将学习如何使用Ruby和Rails进行Web开发

对我来说,Ruby可能是我整个编程生涯中发现的最好的东西,因为社区的工作方式使我改变了整个编程方法。

另一方面,我没有在Scala世界中看到这一点。我不想引起任何争论,但这只是我在开始学习这门语言后的印象。在Ruby社区中,一切都感觉非常吸引人,让我想学更多。但是在Scala中,我往往会遇到很多障碍,而且没有那么多的文档和教程可以帮助我克服它们。

有很多关于Ruby的特定主题的书籍,无论是脚本编写, 部署, 测试还是其他一些东西(是的,Pragmatic Programmers规则)。最好的事情是,整个社区感觉像一个家庭,这不同于Java世界,在那里一切都是分散的,没有人彼此交流,至少我是这样认为的。
所以,对我来说,最重要的是进入该语言世界并开始做某事的简单性和吸引力,而Ruby在这方面绝对是胜利者,至少对我来说是如此。
在性能方面,Scala更快,毫无疑问。这是我学习Scala的原因之一,因为它具有非常出色的并发模型,并允许您执行Ruby无法执行的操作。但对于大多数Web应用程序,您不需要这样做。
Ruby很慢,这是唯一的缺点。它越来越快,对于98%的情况,您不会将其视为问题。但Scala更快。
Ruby社区也支持测试和优美的代码,这自然导致更好的应用程序。

3
稳定性和性能等方面怎么样? - Andrei Petrenko
1
稳定性通常更多地涉及到你编写应用程序的方式,有关性能评论,请阅读编辑后的答案。 - Jakub Arnold
谢谢。据我所知,Scala 提供了性能和并发优势,但代价是较差的社区支持。 - Andrei Petrenko
2
依我的经验,Scala 社区虽然乐于助人,但规模非常小。我认为 Ruby 社区比 Scala 社区要大得多,特别是在 Web 框架方面。 - Fabian
13
说得好,先生!让 Ruby 如此棒的东西并非由规范、基准测试或功能清单所定义。 "每当我发现关于这门语言的新事物时,都会像一个小学女孩一样咯咯笑出声来",这句话描述得非常准确。 - tybro0103
最近我的时间主要分配在Ruby和ObjC之间。ObjC感觉就像是纯粹的辛苦工作。而Ruby则感觉像……我会说是艺术。 - tybro0103

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接