您所在的位置:开发 > Java > Java+ > Scala IDE支持现状报告:三大巨头面面相觑

Scala IDE支持现状报告:三大巨头面面相觑

2009-08-20 18:36 司马牵牛 译 51CTO.com 字号:T | T
一键收藏,随时查看,分享好友!

近来在不少开发者看来,Scala正在逐渐发展成为一个能够替代Java的语言。然而这个过程需要经历很多其他的问题,IDE就是其中之一。本文为一次小组会议报告,对Scala IDE支持现状进行了描述。

AD:

【51CTO精选译文】在上个周三,BASE 小组(51CTO编者注:BASE=Bay Area Scala Enthusiasts,Scala狂热者海湾之意)举行了一场有关 Scala IDE 支持现状的会议。严格来讲,有“三大巨头”:Eclipse、NetBeans 和 IntelliJ。Dick Wall 组织了这次会议,我担任会议记录,下面就是这次会议的内容:

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

首先,我觉得这次会议的结果非常好。这次会议在位于旧金山的 Twitter 的办公室举行。我估计这次会议出席人数仅次于六月份那次会议(那次 Martin 做了有关 Scala 未来的演讲)。Scala 社区对于这一主题非常感兴趣。

Scala + Eclipse?发言人=Michael

我第一个上台,他们要我讲讲 Eclipse 插件。我现场写了一个简单的程序,以此来演示插件的长处和弱点。开始,我演示了如何安装插件。很奇怪,有些人还不满意,我不得从一个更新网站转到 Eclipse 网站完成下载安装,因为 Eclipse 的一个更新网站不提供插件下载。首先是一些坏消息。创建了一个新的 Scala 应用程序后编辑器却无法打开。语法高亮显示最初不能正常工作,开始很多行显示存在错误,然后又变成正常。重启 Eclipse 或打开/关闭项目的操作,会碰到很多问题。一些好消息……代码完整性通常很不错,包括闭包(closure)中的通配符。作为 Scala 应用程序运行开始简便。调试也不错,包括对闭包的调试。不过,在修改代码之后,中止点没有了。另外,如果你引入一个错误并重新运行了程序,从上次完好的创建(build)运行,它能够成功。使用 JUnit 问题最多。必须对路径进行配置,以属于 bin 目录。JUnit 运行器会显示它无法找到任何测试。不过,在清除创建和重启之后,它就可以运行测试了。如何代码修改都会再次要求清除创建和重启。

听众普遍的观点是他们没有耐心去使用这个插件。后来,很多人告诉我,他们试用过这个插件,但在解决我上面所说的那些问题之前,他们就放弃了。有一个人感到很遗憾,他们公司已经准备好转向 Scala 了,但在 Eclipse 插件能够更好地运行之前,他们无法这样做。还有几个人感到困惑,许多 bug 将不会在 2.7.5 版本的插件中修复,只能等到 2.8 版本。

Scala + NetBeans?发言人=Dick

接着是 Dick 讲 NetBeans。很不幸,Dick 没法将他的笔记本电脑连接到 Twitter 办公室里的大屏幕上,所以没有进行演示。Dick 讲了 NetBeans 插件的好除和坏处。Dick 说他之所以选择 NetBeans 是因为他们公司大量使用 Maven,而 NetBeans 对 Maven 的支持很棒。他还说 Maven + Scala 与 Maven + Java 同样好用。Dick 认为 NetBeans 的可靠性非常好。虽然存在一些故障,但每件事情都保持一致而且稳定。从来不需要打开/关闭项目或重启 NetBeans。不过还是有一些问题……编译失败时语法高亮显示无法显示。很长的表达式链会破坏代码完整性。Java 互操作也会破坏代码完整性。 混合 Java 源文件代码和 Scala 源文件看起来不能很好地正常运行,所以 Dick 总是先将 Java 编译为 jar 文件。优点是……类型推论(type inference)工作良好,你可以跳过推论类型并获取推论类型的信息。调试通常也很好,但变量查看会在闭包内部中断。Dick 还碰到单元测试的问题,但他认为这可能是由 Maven 以及 Surefire 的集成造成的。总之,Dick 认为 NetBeans 插件虽然笨重但仍然为他节省了很多时间。很多人表示,如果他们不是使用 Maven 或 Ant,或者如果他们不是从零开始,还是会遇到问题。仅导入一串已有的代码而没有创建脚本(build script),对于某些人,这看起来很麻烦。

Scala + IntelliJ…… 发言人=Bill Venners

最后是 Bill Venners 谈 IntelliJ。Bill 说 IntelliJ 已经变得非常稳定,他在一个大型 Scala 项目(ScalaTest)中大量使用它。安装很简单,插件可以直接从 IntelliJ 那里直接获得。代码完整性也很棒。IntelliJ 不能与 C# 类型的包一起很好地运行。通过 hover 获取类型信息也不能始终如一的正常运行。不过,单元测试运行非常好。调试也基本过关。某些重构(refactoring)功能也很好,比如重命名类/对象/方法。但是,Bill 试图预览一个重命名时,造成了程序崩溃。当他仅执行同一个重命名时,又可能良好地运行。Bill 认为移动一个类只能在物理场面移动该文件,你仍然不得不手动地重命名包信息。

总之,大多数人能看起来都同意目前 IntelliJ 是正确的选择。它看起来具有 Eclipse 的正确性,又具有 NetBeans 的稳定性。有几个人表达了他们的担心,如果你想用 Scala 的 IDE,你将不得不购买一款昂贵的产品(IntelliJ)。还有一些人说到如何通过参与开源项目获得免费的 IntelliJ。一些人对于 2.8 版本的种种可能性感到很兴奋(如51CTO之前报导的有关Scala 2.8命名参数的消息),但更多的人表示担心,由于每个人都在等 2.8 发布,它可能会被延迟,这样 2.8 可能仍然距离我们很遥远。

原文来源:Scala社区交流邮件   发信人:michaelg

【编辑推荐】

  1. Scala编程语言
  2. Scala的优点与缺陷:深沉而有趣的继承者
  3. Scala和Erlang,以及多核主导的未来
  4. 一位Twitter工程师的Scala探秘之旅
  5. Ruby高手点评Scala编程语言十大绝招
【责任编辑:杨赛 TEL:(010)68476606】



分享到:

热点职位

更多>>

热点专题

更多>>

读书

计算机病毒分析与防治简明教程
本书全面翔实地介绍了各种病毒的原理,以操作系统的发展为主线,结合病毒的发展过程来综合分析病毒。在分析工具上,较多地利用了

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i