【问题标题】:What are the good Scala IDEs at the start of 2010?2010 年初有哪些好的 Scala IDE?
【发布时间】:2011-01-08 19:14:11
【问题描述】:

我知道这是一个确切的 duplicate,但一年过去了,Scala 似乎是一个快速发展的东西,所以我认为再次询问可能是可以接受的:

目前最适合 Scala 开发的 IDE 是什么?

【问题讨论】:

  • 主观和争论,最好问“什么是好的......”而不是“什么是最好的......”
  • 更改了标题。如果它有助于保持问题的开放性,那不是问题。

标签: ide scala scala-2.8


【解决方案1】:

我知道 Eclipse 插件正在开发中,并且正在为 Scala 2.8 进行完全重写,但我看到一位同事最近使用夜间构建,它非常糟糕。

我使用 IntelliJ IDEACommunity Edition 9 是免费的),它的 scala 插件非常好。出色的语法突出显示、代码导航等。它不如 Java 支持好,但我不一定会期待。这已经足够好,我觉得我比使用 Java 更有效率!

它还具有 Specs 集成和控制台集成。

【讨论】:

  • 我同意日食§$%&/()。我已经在考虑改用记事本++之类的了。很高兴 IntelliJ 更好
  • FWIW,IntelliJ 非常不直观且难以使用。至少完成是开箱即用的(与 Eclipse 不同),但我仍在努力在 IntelliJ 中运行“hello world”(它编译得很漂亮)。
  • @Alex R - 我认为这是一个非常不公平的观察:它与 Eclipse 不同,因此它可能看起来不直观,因为您习惯了某些范例。我也看不出为什么你不能运行 hello world:CTRL+SHIFT+F10 将运行范围内的任何内容
  • IntelliJ IDEA 在 Scala 2.8 和 CPS 上完全失败。一般来说,Scala 更好,更深入地集成在 eclipse 中。然而,它在 IDEA 中更加稳定......
  • 我不同意 IDEA “正常工作”,但它是可用的。但是,我通过 Maven 编译 Scala。 UX 也与(几乎)任何 Java IDE 一样好。例如,它有时找不到错误或将隐式转换所需的导入标记为未使用。
【解决方案2】:

我尝试了 Eclipse、NetBeans 和 IntelliJ IDEA,

  • Eclipse 在我看来是最糟糕的。它很慢,有时会弄乱语法突出显示,几乎总是会弄乱自动完成功能,并且整个 IDE 有时会无响应。除了自我折磨,我不推荐它用于任何用途。
  • NetBeans 比 Eclipse 插件工作得更好。更好的突出显示,更好的自动完成,但它一直在报告整个源代码中相当复杂的语法错误。但是当我点击运行时,代码编译得很好。无法理解为什么。另一个问题是,当您在该类的主体内编写时,自动完成无法建议类的私有成员。可怜!
  • IntelliJ IDEA 工作得很好。如果您严重反对 Scala 开发,我建议您这样做。

我希望 Eclipse 插件在时间上会更加成熟,但考虑到它有足够的时间变得成熟,我不是这个想法的忠实拥护者。 Scala 具有巨大的潜力,它是一种经过深思熟虑的、对程序员友好的语言,并且可以在 JVM 上运行(这意味着出色的性能和高可用性),但是对于这种语言来说,糟糕的 IDE 支持是最糟糕的事情。在简单的文本编辑器上编写 PHP 是可以接受的,但 Scala 具有如此复杂的语法和使用臃肿的 Java 库的要求,因此需要帮助。可能现在的 Scala 社区有函数式和 Java 的背景不能理解这一点,但你不能指望新人能立即轻松地接受这样的语言。

无论如何,选择 IntelliJ IDEA...

【讨论】:

  • Eclipse 的问题在于它在内部使用 scalac 来进行语法高亮显示。因此,如果您的代码无法编译,则无法正确突出显示!
  • 感谢您的信息。显然,这不是实现突出显示的最佳方式:)。
  • 我认为 Eclipse 插件使用这个(非 scalac)进行语法高亮:lampsvn.epfl.ch/trac/scala/browser/scala-plugin/trunk/src/scala/…
【解决方案3】:

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

就个人而言,我最喜欢 IntelliJ。多年来,我一直将它用于 Java 开发,尤其是由于它的重构和代码导航功能。 Scala 插件开始时相当粗糙,但在不断改进。它是开源的,我一直在贡献错误报告和一些错误修复。

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

现在 Scala 2.8 Beta 即将推出,这些问题不再那么频繁了。

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

【讨论】:

    【解决方案4】:

    现在,IntelliJ 的 IDEA。从现在到一年前,一个很大的不同是可以使用免费的开源 IDEA 版本。

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

    【讨论】:

    • IDEA + SBT 确实非常好。通常,SBT 的构建速度比 IDEA 的“make”命令快得多。但是在某些奇怪的情况下,SBT 对哪些文件实际需要重新编译的保守判断超过了 IDEA 的“make”命令中的固定开销。
    【解决方案5】:

    在 2.8 的上下文中,我使用了带有 nightly 插件的 Eclipse 3.5.x 和 IDEA Community Edition 9.0。除了编译时间,IDEA 对我来说显然更好。但是我并行使用 sbt 并且它会处理这个问题。

    Eclipse 插件的主要问题是:

    • 无法在 Eclipse 中更改我的选项卡设置(尽管这似乎对其他人有用)
    • 代码编译,但一些错误仍然突出显示,我需要关闭并重新打开文件
    • 自动完成只会返回很多选择

    我在 IDEA 9.0 build #IC-93.13 和最近的插件 0.3.385 中没有这些问题。此外,IDEA 向我展示了未使用的导入语句。

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

    (注意这是我最近对the original question的回复的转贴)

    【讨论】:

    • 这是什么 SBT?漫长的构建时间和应用程序的漫长启动时间让我很恼火。
    • 未使用的导入非常无用,因为它们不能正确跟踪隐式。也就是说,如果导入带来隐式转换(您使用),IDEA 将错误地将导入标记为未使用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多