40

对于旧版本的 Scala,这也是同样的问题,但他们说 Eclipse 插件已经得到了很大的改进。它是现在最好的 IDE 吗?今天不同的Scala IDE如何比较?

4

17 回答 17

26

我在 IDEA 9 上取得了相当大的成功。我曾短暂地尝试过 Netbeans 和 Eclipse,但无法得到我想要的。Eclipse 的代码完成功能不如我所愿,而且我找不到让 Netbeans 处理 Scala 脚本的方法;它只是抱怨该文件不是一个类。

需要明确的是,我在 Java 中使用 IDEA 已经有几年了,所以请记住这一点:)

于 2010-04-11T05:20:25.893 回答
13

目前,IntelliJ IDEA 中的 Scala 插件是最好的。它可以很好地处理 Scala 2.8。IntelliJ IDEA 社区版现在是免费和开源的(并且可以与 Scala 一起使用),所以我看不出有任何不使用它的理由。

该插件仍然有些错误(许多“误报”,即没有红色下划线的代码可能无法成功编译;但几乎没有“误报”),但完全可以使用。最好的事情是您可以在 Scala 中使用 IDEA 出色的调试器(并非没有问题,但它确实有效!)。

最新版本也支持 FSC(快速 Scala 编译器)。一个巨大的节省时间。

插件开发团队反应迅速。有些人直接在 JetBrains 工作,对 IDEA 平台有深入的了解,所以开发进展很快。

于 2010-04-11T20:15:17.627 回答
8

JetBrains IDEA 的 Scala 插件同样可以很好地处理 2.7 和 2.8。

我无法进行任何比较,因为我只使用过 IDEA。

于 2010-04-11T01:01:31.607 回答
6

将 Eclipse Helios 与新的 Scala(2.8) 插件的开发版本一起使用,因为还没有正式版本。绝对是测试版——但我无法证实经常表达的观点,即这个插件非常糟糕;-)

我想说,这种体验已经很不错了,而且确实比目前使用 Groovy 插件的情况要好。OTOH,使用纯 Java 的体验更加流畅(有时感觉像是在飞翔),而当前的 CDT 则介于两者之间。

增量编译和错误突出显示对我来说效果很好;只需不断地重写代码直到错误标记消失,就可以将 DSL 实现调整为形式——无需测试运行你的程序——非常有趣,并且再次表明 FP / 静态类型非常棒!

不时遇到的问题: - 其他编译单元(尤其是嵌套/超级包)中的隐式和嵌套类型在仍有其他错误时不被拾取;它们将在完整构建后被拾取 - 我现在正在使用的版本中似乎存在内存泄漏(从 2010 年 8 月末开始),需要在工作几个小时后重新启动工作台 - 使用时要小心AspectJ,确保您获得依赖于 JDT 编织捆绑版本的 Scala 插件版本,该版本也适用于 AJDT

PS:我在所有项目中都使用 maven 构建,并使用 eclipse-maven-plugin 生成了 eclipse 项目,然后将它们作为普通的 eclipse 项目导入。我可以强烈建议每个人远离当前(2010)状态的 M2-eclipse 插件(用于 maven),它使你的工作台非常缓慢,有很多几乎不可预测的行为,因为它不断尝试做幕后的神奇事物(除此之外,aspectj 支持自今年春天以来就被打破了)

于 2010-09-10T22:12:46.960 回答
5

我同时使用 eclipse 和 IDEA

  1. eclipse 支持类型检测比 IDEA 更好(如果你想要功能风格的程序,你可以从表达式和变量的类型中知道,这是非常必要的事情。)


    Edit1:IDEA 支持像 eclipse 这样的类型检测,但您必须在函数中定义一个值,例如:def testTs[A](a:List[String],b:List[A]) = for{ ai <- a bi <- b } yield (ai,bi) }应该转换为 def testTs[A](a:List[String],b:List[A]):List[(String,A)]={ val result = for{ ai <- a bi <- b } yield (ai,bi) }也不是将鼠标悬停在变量上,当鼠标悬停在该变量上时,您必须按 ctrl+q

  2. eclipse 在代码完成方面存在一些问题(当您在下一行中使用变量并且想要获取此变量的属性时,eclipse 会显示错误的代码建议)
  3. 在 IDEA 中破坏 Scala 应用程序比 Eclipse 慢 5 秒(有一些解决 IDEA 运行时间问题的解决方案,但这些有副作用有一些问题)在想法中,双击速度存在一个众所周知的问题,在很多情况下都会显示出来,例如打开文件或选择源中的字符串...您可以通过创建(或编辑)/home/.Xresources 并添加以下行来增加双击超时:*.multiClickTime: 400

Edit1:在夏天,我更喜欢使用 IDEA 而不是 eclipse

于 2011-01-25T04:09:24.420 回答
4

我的经验清楚地指向 IntelliJ IDEA:

大约六个月前,当我开始一个严肃的 Scala(多模块)项目时,我不得不放弃 Eclipse 作为我最喜欢的 Java IDE,转而使用 IntelliJ (9.0.x)。Eclipse Scala IDE 是一种错误的方式,并且经常在某些时候停止响应,即使对于最简单的项目也是如此。对于 CI(Hudson)和命令行构建,我依赖 Maven(带有 Scala 插件)。IntelliJ 很好地拾取了 Maven 依赖项(包括 Scala 库)。

几天前,我使用当前插件(夜间构建)更新到 IDEA X (CE),工作变得更加顺畅。尽管 fsc 在不活动时仍会在一段时间后终止。

从我所看到的情况来看,我想补充一点,IntelliJ 方面似乎有更多的活动来响应错误并不断改进插件。当我错了,请纠正我,但 Eclipse Scala IDE 开发似乎几乎停滞不前。仍然没有“官方”的 Helios 版本!

注意:只是为了提供一些上下文(不是吹牛,真的):上述项目由大约 25 个 Scala 模块(POM)、5 个 Java 模块、325 个 Scala 文件组成,总共大约 360 个 Scala 类、案例类和特征(> 19 kLOC,包括评论)。我的平台是 OS X 10.6、Scala 2.8.1、Java 1.6。

更新:在需要进行相当广泛的重构(主要是移动类、重命名包)之后,我发现最近的 IDEA 10.0.1 插件 0.4.413(也可能是旧版本)在正确处理东西方面存在相当大的问题。我不想解释细节,但我(几乎曾经)最终手动修复了未解析的引用或其他混乱的代码。您可以查看http://youtrack.jetbrains.net来了解一下。

对于真正考虑使用 Scala 进行一些认真开发的每个人,我强烈建议在基础知识之外评估有问题的 IDE。当您采用敏捷方法时,在我的选择中,这需要无痛的重构支持而不会出现意外(尤其是在多模块项目中),目前情况非常紧张。

如果有人提出了一个独立于 IDE 规范的重构列表(和期望的结果),那将非常简洁,它可以用来验证 IDE 的重构支持。

于 2010-12-14T14:40:00.577 回答
4

无答案:没有。

根据大多数人的看法,IDEA 可能是当今最好的 Scala IDE。它(阅读:Scala 插件)很糟糕。它不能很好地处理 fsc,类型推断是一团糟,许多错误没有显示,一些非错误被标记为错误,它很慢(当检查打开时),测试运行器默默地吞下 aborting (!=失败)测试,...

因此,我切换到一个简单的文本编辑器,其中一个具有语法高亮显示,另一个屏幕上具有 SBT(简单构建工具)的最大化外壳。惊人的!SBT 具有响应性(您可以让文件更改触发受影响代码的重新编译,甚至重新运行测试),非常顺利地管理依赖关系并具有有用的输出(尤其是用于测试;使用 ScalaTest)。与 IDEA 相比,SBT 大大提高了我的工作效率。

当然,您会丢失代码完成,尽管 geany 为我提供了已识别的符号。但是,只要 IDE 没有使类型推断正常工作,代码完成就无济于事。

有些人非常关心代码重构。好吧,IDE 显然在那里也做得不好。即使他们愿意,我也宁愿只为这个特定的任务打开它们,而不是一直使用它们。

于 2011-01-25T21:01:55.123 回答
4

我认为目前最好的选择是 ScalaIDE for Eclipse。你可以去 ScalaIDE 网站自己看看。 http://scala-ide.org/

我看到的优点是:

  • 文件,
  • 教程,
  • 不断发布,
  • 来自 Typesafe 的支持。

以下是主要功能的摘要:

Scala IDE 支持在 Eclipse 平台上开发 Scala 应用程序。它的主要目标是支持 Scala 语言以及与 Eclipse Java 工具的集成。它提供了 Eclipse 用户所期望的许多功能,包括:

  • 支持混合 Scala/Java 项目和 Scala/Java 项目依赖项的任意组合。类型驱动的操作在 Scala 和 Java 文件和项目中是透明的,允许从 Scala 直接引用 Java,反之亦然。
  • 一个 Scala 编辑器,具有语法高亮、推断类型、定义超链接、代码完成、错误和警告标记、缩进、大括号匹配。
  • 项目和源导航,包括带有嵌入式大纲、大纲视图、快速大纲、开放类型、开放类型层次结构的包资源管理器视图中的 Scala 支持。
  • 增量编译、使用集成调试器启动应用程序、从堆栈跟踪超链接到 Scala 源代码、交互式控制台。
  • 支持 Eclipse 插件和 OSGi 开发,包括从 plugin.xml 和清单文件超链接到 Scala 源代码。

更新:此答案中提到的功能和优势适用于 Scala 的 2.9 和 2.10 版本,因为它已经停产。看这里:

“2.0.1 版本仅适用于 Scala 2.9,如果您想在 Scala 2.8 中使用 Scala IDE,请安装 2.0.0 版本(2.0.0 版本后对 Scala 2.8 的支持已停止)

于 2012-05-24T22:10:30.303 回答
3

Scala 2.9 的官方认可和支持(由 Typesafe)是 Eclipse。当前版本远远优于以前的版本,包括上下文感知 REPL、功能齐全的调试器,甚至可以调试 REPL 语句。我认为这个问题需要更新并重新审视答案。

于 2012-05-24T21:52:19.330 回答
2

我不推荐 Scala IDE/Eclipse。它没有很多甚至可用于带有 Java 的 Eclipse 的特性。并且有错误。

于 2010-05-19T17:20:04.827 回答
2

我正在使用最新的 NetBeans,还没有尝试过其他任何东西。在使用 Scala 编码时,我在 NetBeans 中遇到了至少 2 个值得注意的错误:

一:NB偶尔来个程序无法运行,挂在classpath扫描上。
解决方案:创建一个新项目,将代码复制到那里并继续。
评论:这个 bug 已经有 10 多年的历史了

二:有时 NB看不到特定命名空间或类的成员,在使用时会报错。
解决方案:忽略并继续 - 编译器没有发现错误并且程序可以正常工作。

于 2010-09-04T20:55:00.843 回答
1

我现在推荐 IDEA 的插件。

NetBeans 的 Scala 插件也很不错。不过,它还不支持最新版本的 NetBeans 6.9,您仍然需要手动下载它,而不是直接从 NetBeans 内的插件管理器安装它。

然而,它与 Maven 项目的集成比 IDEA 的插件更好(在我看来,这对于 NB 和 IDEA 来说一般都是如此)。

于 2010-06-18T16:34:01.703 回答
1

这部分取决于您的工作方式,因为所有选项都有优点和缺点。

如果您需要跨混合的 java/scala 项目进行重构,那么 IntelliJ 是您唯一的选择。

如果您想对编译器或编译器插件进行任何工作,那么 Eclipse 的优势在于能够使用自定义编译器构建(包括断点)启动运行时工作区。它还在 2.8 Scala 版本中得到了极大的改进。

如果您已经非常熟悉该平台,Netbeans 是一个不错的选择,学习新环境的成本可能远远超过任何收益,并且所有三种解决方案都在迅速改进。

于 2010-09-15T01:50:19.067 回答
1

我还没有尝试过 netbeans scala 插件,但我发现 Intellij IDEA 插件在任何方面都比 Scala eclipse 插件好得多,后者太慢了,让我发疯。虽然 Swing 应用程序不能很好地与我的平铺窗口管理器配合使用。

于 2010-12-08T02:12:41.137 回答
1

试试 IDEAX 最新的 Intellij IDEA 社区版(版本 10),它改进了 scala 插件,它具有更快的代码编译和执行速度,此外它还支持 Maven3 和 SBT,我们可以使用它来开发 Lift 应用程序。

于 2010-12-10T13:30:02.233 回答
1

IntelliJ IDEA 社区版 + Scala 插件 + SBT 插件

于 2011-02-14T05:48:46.230 回答
0

对于最近的版本(2021),哪个 ide 占据了主页很大一部分的问题 https://scala-lang.org/

于 2021-02-15T19:41:07.190 回答