Ruby 高手点评 Scala 编程语言十大绝招(1)2009-07-21 10:04 司马牵牛 51CTO 我要评论 (1) 字号:T | T 本文作者是一位资深的 Ruby 程序员。 在使用过从 Pascal 到 Ruby 和 Groovy 等一系列语言后, 这位程序员发现,Scala 编程语言有着很多强大之处,以至于他决定投身于 Scala 之中了。 AD:
【51CTO 精选译文】 几个月前, 我开始使用 Scala。 我用过的编程语言还有 Pascal、 C++、 C、 Java、PHP、Ruby 和 Groovy,但是,与所有那些我用过的语言相比,我发觉 Scala 是一门 与众不同的语言。我是在看到 Twitter 上关于 Ruby 和 Scala 讨论之后,才开始我的 Scala 编程之旅的。现在,使用 Scala 编程已经几个月了,关于 Scala 我有两点想法,虽然类似 的想法已广为人知,但我仍很想与你们分享: 51CTO 编辑推荐:Scala 编程语言专题 ◆Scala 的确很棒。 ◆我的确认为
计算机应该开一门 Scala 的语言
课程。 在这篇文章中,我会讲述为什么我会有这样的想法,在此之前,有几点我想要先声明一下: 本文无意对编程语言进行评比,我要讲述的主体是为什么你应该学习 Scala。51CTO 之前曾 发布过一篇 Java 程序员为何要学习 Scala 的文章,可能也会对你有所帮助。 目前 Scala 有两个实现方式,一种是在 JVM(Java 虚拟机)上运行,另一种是在 CLR (Common Language Runtime 的缩写,即公共语言运行库)上运行。不过,JVM 的实现方 式更为成熟。 如果你想要使用 .Net framework 框架, 我认为最好还是听从 Lift framework 框 架创始人大卫· 波拉克 (David Pollack) 的建议: 使用 F#。 但在这篇文章中, 我将只关注 JVM 这种实现方式。 我是一个 Ruby
程序员,并且我会继续喜欢 Ruby,因为它是我见到过的最棒的动态语言。 但我也喜欢 Scala,因为在其他
工作领域,它提供的某些功能非常强大。 现在,让我们来仔细分析一下,是哪些原因让我选择 Scala 作为我的下一个编程语言: 强大的编程语言 Scala 是一门非常强大的语言,它允许用户使用命令和函数范式进行编写代码,因此,编程 时你可以使用
常用的命令式语句,就像我们使用 C、Java、
PHP 以及很多其他语言一样, 而且,你也可以使用类似 Lisp 语言中函数式语句,还有,你可以混合使用这两种风格的语 句,就像 Ruby 或 Groovy。 不过, 当我们谈论的函数范式时, Ruby 和 Groovy 有一点不同的地方, 与 那就是 Scala 几
乎支持函数语言中所有已知的功能,比如,模式匹配(Pattern matching) 、延迟初始化(Lazy initialization) 、偏函数(Partial Function) 、不变性(Immutability) ,等等...即是说,认识到这 样一个事实是非常重要的:Scala 的强大源自它对函数范式的支持,而后者令
Scala 成为一 种高等级(high-level)的编程语言。对于高等级的编程语言,你只需关注 what(做什么) 而不是如何做(how) 。 下面,让我们看一个 Java 示例: int[] x = {1,2,3,4,5,6}; ArrayList res = new ArrayList(); for (int v : x) { if (v % 2 == 1) res.add(new Integer(v)); } 仔细看一下上面这段示例代码, 你会注意到, 我想要做的 “what” 部分(过滤掉奇数值)仅出现在第四行中,而其余行则是“how”如何做的部分(结果变量 的初始化以及一个循环操作) 。如果我想要再写一个过滤器,用于筛选偶数值,那就需要再 写五行代码,而使用一门像 Scala 这样的高等级语言,你只需编写“what”那部分的代码: val x = Array(1,2,3,4,5,6) val res = x filter ( _ % 2 == 1 ) //过滤奇数值 val res2 = x filter ( _ % 2 == 0 ) //过滤偶数值 我们可以看到,相对于上文中的 Java 代码段,这段代码更加简 洁,而且具有更好的可读性。 高效 Scala 是一种高效的编程语言, 实际上, 根据最新的 benchmark 性能测试, 它几乎和 Java 一 样快捷。在 JVM 上实现的 Scala 代码,可以编译为字节码,在这一过程中,代码通过优 化