中国领先的IT技术网站
|
|

与Scala的第一次亲密接触 Java如影相随

你的第一个Scala真实项目是什么?近日在Scala英文社区中,发起了有关第一个Scala真实项目的讨论。讨论者们积极分享了自己的Scala项目经验,这些经验对Scala学习者们的选型有一定参考价值。

作者:司马牵牛 编译来源:51CTO.com|2009-11-27 14:18

Tech Neo技术沙龙 | 11月25号,九州云/ZStack与您一起探讨云时代网络边界管理实践


【51CTO.com精选译文】Scala编程语言在国内还刚刚起步,很多人还都在学习,使用Scala真正做过项目的比较少。相比之下,国外做过Scala真实项目的开发者就要多一些。你的第一个真正的Scala项目是什么?Scala英文社区近日发起了这样一个话题,并很快引来了几十篇回复。大部分这样的Scala项目都是与Java程序关系密切的。51CTO编辑从回复中挑选了几条,希望对学习Scala的读者们能有一些参考价值。

51CTO编辑推荐:Scala编程语言专题

Case 1. Kelvin:

对我而言,我是在一个已有的 Java 程序中第一次“真正地”使用 Scala。首先通过 ScalaTest,利用 BDD,然后逐步转换已有的 Java 类。每个可以利用 case 类或模式匹配进行简化的地方,都是一个很好的机会来使用 scala。

此外,我还结合网络和串行通讯编写了一些程序,个人使用的,家庭自动化之类的东西。

目前,我最棒的纯 Scala 项目是 autoproxy-plugin,最近刚刚发布在 github 上

Case 2. Rex:

我第一个真正的 Scala 程序是一个半脚本程序,管理数据分析所需的 Java 程序,调用其他几个程序用于数据分析和演示,以及查看多个输出文件,读取这些文件,进行一些计算,还有根据结果更改参数来调用其他程序。

另外,这个程序的 GUI 非常简洁,用户可以选择想要分析的目录(并且这个程序可依据合理的默认设置处理所有其他一切事务)。

我之所以选择 Scala,因为我有一些混合的字符串处理/脚本,在 Java 中非常麻烦,还有高性能的数据输入输出和矢量计算,想要在标准的基本语言中做到足够快速,也非常难。

还有,使用它工作一段时间之后,我发现,将想要的结果映射(map)到 Scala 代码中的能力变强了,相对于映射到其他代码,出错率明显降低了。这让调试变得尤其简单,很多东西第一次尝试就成功了。(我不能完全弄明白为什么会这样,但我觉得,在适当的时候,大量使用 map/foreach/filter 和 closure 一定是这个原因的一部分。)

Case 3. Andrew:

我的第一个也是目前唯一一个 Scala 程序是,结合每个文件的 tag 标签和由 http://last.fm 提取的元数据,生成 MP3 列表。将这些东西结合在一起,我可以将每个音频与一组词(比如 rock 或 chilean 或其他任何词)关联起来,然后就可以能明白哪些音频是关联的(因为它们具有相同的词),从而就能够生成一个歌曲列表,其中的歌曲是相互关联的。

代码不值得评论,而且目前有点小故障,不过你可以在这里查看

也许最有趣的是我如何定义数据库模式的:点击这里

那些“真正的工作”都是由 Java 库(通过 Empire DB 访问数据,图像用的是 jgrapht,等等)来完成的。

Case 4. Kris:

我第一个真正的 Scala 程序是一个为订阅服务制作的账单系统。这个星期,这个系统刚刚跨过了一个里程碑——该系统目前已经处理了超过 100  万美元的交易 :)

该项目开始是使用 Java,在测试架构中使用了一些 Scala。一旦这个语言的表达能力变得清晰,Scala 将很快不再局限于测试这个小笼子。

那么,你的第一个真正的Scala项目是什么呢?

【责任编辑:杨赛 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

SQL应用与开发标准教程

本书主要介绍了SQL的数据库应用和开发技术,内容涉及关系数据库和SQL概述,SQL环境,SQL对于数据表的操作,数据库查询知识,SQL数据的修改...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Phthon,最神奇好玩的编程语言