Scala目前的工具状态是什么?

时间:2009-04-28 04:41:28

标签: java ide scala intellisense

在过去的一年里,我听到越来越多关于Scala语言的炒作。我知道有几个现有项目计划将Scala支持与IDE集成;但是,并不总是很清楚整合的真正程度。

他们目前是否支持Intellisense以及Eclipse和Netbeans为Java语言做的事情?他们也支持即时验证吗?

6 个答案:

答案 0 :(得分:5)

我无法亲自谈及IntelliJ或NetBeans插件的稳定性(虽然我听说过好东西),但最近Scala IDE for Eclipse用Scala 2.7.4发布了新版本。在架构上,这个版本与之前的版本完全不同,因为它使用了Equinox Aspects,这是官方支持的扩展JDT(和其他交叉插件扩展)的机制。然而,在Scala插件不得不使用私有API和反射欺骗系统进行正常行为之前,现在它能够简单地声明其扩展点并让系统完成其余的工作。甚至很难描述这会让事情变得多么稳定。我并不是说这一切都是阳光和玫瑰,但是如果你曾经尝试过并拒绝了这个插件(就像我一样),那么现在是时候再看看了。

至于它如何在功能方面叠加,SDT没有任何重构支持(IntelliJ有一些基本的东西,如“重命名”),编辑也没有像“Mark Occurrences”那样做一些事情。但是,它具有比NetBeans更好的大纲,比IDEA更好的编译器支持,以及非常好的语义突出显示。所有这三个插件都支持内容辅助(或称为“intellisense”,正如微软所说的那样),但它们在这方面还没有特别可靠。 Eclipse的Scala IDE是唯一支持渐进式编译的人(alla Eclipse的Java工具)。

我的建议:到处逛逛。尝试所有这三个,看看哪一个最适合你。从我所听到的情况来看,Scala IDE for Eclipse已经通过其最新版本跃升了竞争对手,但是其他人已经表现出如此一致的稳定性和稳定的进步,你现在还不能算出来。

答案 1 :(得分:3)

这是一个类似的问题: Which is the best IDE for Scala development?

在我对Scala IDE for EclipseScala Plugin for Netbeans的短暂体验中,似乎Netbeans插件比Eclipse插件更加坚固。

使用Scala IDE for Eclipse,我遇到运行Hello World类型Scala对象的问题,有时语法突出显示会开始起作用。然后,我尝试了Netbeans插件,它看起来比Eclipse更具功能性。

我没有深入使用任何一个Scala IDE插件,所以我不能说出很多经验,但仅仅从我最初的印象来看,Netbeans插件似乎更稳定一点比Eclipse那个。

答案 2 :(得分:3)

目前,所有三个主要IDE都处于大致相同的支持级别。

  • IntelliJ - 该插件完全没有工作,但在其他方面相当不错。自v8以来,底层平台(至少在linux中)是缓慢的。
  • Eclipse - 该插件获得了大量支持,并且处于非常活跃的开发阶段。
  • NetBeans - 恕我直言,该插件比Eclipse更好一些,但是无法运行任意文件是一个主要的挫折。

上述所有情况都无法在所有情况下解析AST。例如,通过将特征与隐式defs混合,可以很容易地混淆它们。在建议语法错误时,不能信任IDE。回到编译器确定。

答案 3 :(得分:3)

我很高兴使用IntelliJ IDEA 8.1及其Scala plugin并且可以推荐它。它甚至可以通过投票给你最喜欢的缺失功能来影响roadmap :)不幸的是,我没有其他IDE的Scala支持经验。

答案 4 :(得分:0)

我正在使用Eclipse Scala插件。它非常好,但与Java工具不同。

答案 5 :(得分:-2)

智能AS,不知道。 但是在Eclipse和Netbeans之间,我必须说Netbeans,特别是如果你不愿意为sbt做贸易专家而且你想要一个不会妨碍maven的IDE。

Netbeans maven的支持太好了。

Netbeans scala编辑器似乎也运行良好。 我不关心netbeans或编译器插件中的集成scala开发工具包,或任何此类帮助程序。从netbeans我只期望三件事: (a)不要妨碍maven,让maven运行我的构建 (b)给我一个体面的编辑 (c)让我从我的.scala文件深入查看我的maven依赖项引用的库的源代码。

我相信Netebeans能够很好地提供所有三个,即使有时感觉有点太慢了。

我能说的是 (1)由于任务是maven,因此不会遇到任何编译问题。 maven编译器插件有点太慢了。但是编译scala vs java总是那样,很痛苦。如果你已经尝试过将GWT编译为javascript,那么即使是javascript也会更加痛苦。

(2)Netbeans完美地为你的maven依赖关系找出源代码,你可以深入研究最模糊的sacala运算符,例如电梯的CSS映射器。

至于eclipse,eclipse maven整合一直很讨厌。 如果你有一个包含太多依赖关系和模块的大项目,Netbeans maven集成会变得非常糟糕。然后检查netbeans进行的外部更改是非常缓慢的。这是netbeans的缺点。

然而,如果你和SBT粉丝......好吧,也许那么回答可能是别的。

但对我而言,由于maven已经成为今天的事物,我再也不想再回到那些" web应用项目",#34;图书馆项目" etc ...向导就像在IDE中创建新项目时的选项。 我只想要" maven project",请通过阅读pom来弄清楚我的输出文物是什么。