2010年初,什么是好的Scala IDE?

2010年初,什么是好的Scala IDE?,ide,scala,scala-2.8,Ide,Scala,Scala 2.8,我知道这是一个准确的答案,但一年过去了,Scala似乎是一个快速发展的东西,所以我想再次问一下是可以接受的: 现在什么是Scala开发的最佳IDE?我知道Eclipse插件正在开发中,正在为Scala 2.8进行完整的重新编写,但我看到一位同事最近使用了一个夜间构建,结果非常糟糕 我使用IntelliJ IDEA(9是免费的),它的scala插件非常好。优秀的语法突出显示、代码导航等。它不如Java支持那么好,但我不一定期望如此。这已经足够好了,我觉得我比在Java中更有效率了 它还具有规范集成

我知道这是一个准确的答案,但一年过去了,Scala似乎是一个快速发展的东西,所以我想再次问一下是可以接受的:


现在什么是Scala开发的最佳IDE?

我知道Eclipse插件正在开发中,正在为Scala 2.8进行完整的重新编写,但我看到一位同事最近使用了一个夜间构建,结果非常糟糕

我使用IntelliJ IDEA(9是免费的),它的scala插件非常好。优秀的语法突出显示、代码导航等。它不如Java支持那么好,但我不一定期望如此。这已经足够好了,我觉得我比在Java中更有效率了


它还具有规范集成和控制台集成。

您的主要选择是一个成熟的IDE,如IntelliJ IDEA、NetBeans或Eclipse,或者是一个具有一定Scala意识的文本编辑器,如TextMate或Emacs

就我个人而言,我最喜欢IntelliJ。我已经在Java开发中使用它很多年了,特别是由于它的重构和代码导航功能。Scala插件一开始相当粗糙,但正在不断改进。它是开源的,我一直在提供bug报告和一些bug修复

IDE插件都在努力为Scala 2.8做好准备。在过去6个月里,它一直是一个移动的目标,特别是考虑到随着新功能的添加,二进制兼容性被破坏。因此,您可能会更新到新的编译器版本,然后等待支持库(例如specs、scalatest)的更新和重新编译

现在Scala 2.8测试版即将推出,这些问题就不那么常见了


IntelliJ实现了自己的解析器和类型推断,就像它对Java所做的那样。这使它更能容忍错误,并在编辑代码时立即理解代码。类型推断尚未完成。Eclipse将大部分工作委托给scalac,这意味着他们应该始终同意,但只有在保存文件并重新运行编译器时,才会重新生成信息。我不知道NetBeans在这方面是如何工作的。

我尝试了Eclipse、NetBeans和IntelliJ IDEA

  • 在我看来,日食是最糟糕的。它很慢,有时会弄乱语法突出显示,几乎总是弄乱自动完成,整个IDE有时会没有响应。除了自我折磨之外,我不推荐它用于任何用途
  • NetBeans比Eclipse插件工作得更好。更好的突出显示,更好的自动完成,但它一直在报告源代码中相当复杂的语法错误。但当我点击run时,代码编译得很好。我不明白为什么。另一个问题是,当您在类的主体中编写时,autocomplete不能建议类的私有成员。可怜
  • IntelliJ IDEA工作正常。我建议,如果您严重倾向于Scala开发
我希望Eclipse插件在时间上会更加成熟,但考虑到它有足够的时间变得成熟,我不太喜欢这个想法。Scala有很大的潜力,它是一种经过深思熟虑的、程序员友好的语言,并且运行在JVM上(这意味着高性能和高可用性),但是对于这种语言来说,糟糕的IDE支持是最糟糕的。在一个简单的文本编辑器上编写PHP是可以接受的,但是Scala的语法如此复杂,需要使用臃肿的Java库,因此需要帮助。也许当前具有functinal和Java背景的Scala社区无法理解这一点,但您不能期望新手立即轻松地适应这种语言


不管怎么说,现在就用IntelliJ的主意吧…

,IntelliJ的主意。从现在到一年前的一个重大区别是IDEA的免费开源版本是可用的


就我个人而言,我使用IDEA CE 9.0.1,但将编译和测试留给SBT,我一直在另一个窗口上运行SBT,使用
cc
~test

在2.8的上下文中,我将Eclipse 3.5.x与夜间插件和IDEA Community Edition 9.0一起使用。这个想法对我来说显然更好,除了编译时间。但我并行使用sbt,它解决了这个问题

我对Eclipse插件的主要问题是:

  • 无法在Eclipse中更改我的选项卡设置(尽管这似乎适用于其他人)
  • 代码已编译,但仍突出显示一些错误,我需要关闭并重新打开该文件
  • 自动完成只是返回很多选择
我在IDEA 9.0 build#IC-93.13和最近的插件0.3.385中没有这些问题。此外,IDEA向我显示了未使用的导入语句

所有插件似乎都发展得相当快,并且都在积极开发,我怀疑今天的情况可能不会在一个月内发生。我希望在几个月后,我们将能够使用我们最喜欢的IDE并获得良好的Scala支持


(请注意,这是我最近对的回答的复述)

主观且有争议,最好问“什么是好的…”而不是“什么是最好的…”更改了标题。如果这有助于保持问题的开放性,那也不是问题。我同意eclipse§$%&/()。我已经在考虑改用记事本++之类的东西了。很高兴看到IntelliJ更好,IntelliJ非常不直观,很难使用。至少完成是开箱即用的(与Eclipse不同),但我仍在努力用IntelliJ运行“hello world”(尽管它编译得很漂亮)。@Alex R-我认为这是一个很大程度上不公平的观察:它与Eclipse不同,因此它可能看起来不直观,因为你习惯了某些范例。我也不明白为什么你不能运行hello world:CTRL+SHIFT+F10将运行scopeIntelliJ中的任何东西。IDEA在Scala 2.8和CPS中完全失败。一般来说,Scala更好、更深入