首页 文章

Scala 2.8的哪个IDE?

提问于
浏览
40

This与旧版Scala的问题相同,但是他们说Eclipse插件已经大大改进了 . 它现在是最好的IDE吗?今天不同的Scala IDE如何比较?

16 回答

  • 5

    我在IDEA 9上取得了相当的成功 . 我曾经简单地尝试过Netbeans和Eclipse,并且无法得到我想要的东西 . Eclipse的代码完成表现不如我所希望的那么好,我找不到让Netbeans处理Scala脚本的方法;它只是抱怨该文件不是一个类 .

    为了清楚起见,我已经使用IDEA几年的Java,所以请记住:)

  • 2

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

    该插件仍有些错误(许多“假阴性”,即没有红色下划线的代码可能无法成功编译;但几乎没有“误报”),但完全可用 . 最好的是你可以使用IDEA优秀的Scala调试器(不是没有一些问题,但它确实有效!) .

    最新版本也支持FSC(快速Scala编译器) . 节省大量时间 .

    插件开发团队非常敏感 . 有些人直接在JetBrains工作,并且对IDEA平台有着深入的了解,因此开发进展迅速 .

  • 2

    JetBrains IDEA的Scala插件同样处理2.7和2.8 .

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

  • 3

    使用Eclipse Helios和新的Scala(2.8)插件的开发版本,因为还没有正式版本 . 这是测试版,最终 - 但我不能确认经常表达的意见,这个插件是完全可怕的;-)

    我会说,经验已经很好了,而且确实比使用Groovy插件的当前状态更好 . OTOH,普通Java的体验更加流畅(感觉有时像飞行),而目前的CDT我的评价介于两者之间 .

    增量编译和错误突出显示对我来说非常好;只需不断重写代码直到错误标记消失 - 无需测试运行程序 - 就可以将DSL实现调整到表单中,这是完全有趣的,只是再次显示FP /静态打字!

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

    PS:我在我的所有项目中使用maven构建,并使用eclipse-maven-plugin生成eclipse项目,然后将它们作为普通平面eclipse项目导入 . 我强烈建议大家在目前的(2010)状态下远离M2-eclipse插件(对于maven),它会使你的工作台变得非常缓慢,有缺陷并且有很多几乎无法预测的行为,因为它经常尝试做幕后的神奇事物(此外,自今年 Spring 天以来,aspectj支持被打破)

  • 1

    我同时使用eclipse和IDEA

    • 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

    • eclipse在代码完成时有一些问题(当你在下一行使用变量时你想得到这个变量的属性eclipse显示错误的代码建议)
      在IDEA中
    • 破坏scala应用程序比eclipse慢5秒(有一些针对胸部IDEA运行时的解决方案,但这些有副作用有一些问题)在想法中有一个众所周知的双击速度问题,在许多情况下显示出来比如打开一个文件或在源代码中选择一个字符串...你可以通过创建(或编辑)/home/.Xresources来增加双击时间并添加这一行: *.multiClickTime: 400

    _887893_在夏天我更喜欢使用IDEA而不是eclipse

  • 8

    答案:无 .

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

    所以我切换到一个简单的文本编辑器,其中一个是语法高亮,另一个屏幕是带有SBT(简单构建工具)的最大化shell . 真棒! SBT是响应式的(您可以让文件更改触发重新编译受影响的代码甚至重新运行测试),非常顺利地管理依赖关系并提供有用的输出(尤其是测试;使用ScalaTest) . 与IDEA相比,SBT提高了我的 生产环境 力 .

    你丢失了代码,当然,尽管geany为我提供了识别的符号 . 但是,只要IDE无法使类型推断正常工作,代码完成无论如何都无济于事 .

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

  • 1

    我认为到目前为止最好的选择是Eclipse的ScalaIDE . 您可以访问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 IDE与Scala 2.8一起使用,请安装2.0.0版本 (support for Scala 2.8 has been discontinued after the 2.0.0 version)

  • 26

    我的经验清楚地指向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的重构支持 .

  • 3

    Scala 2.9的正式认可和支持(由Typesafe提供)是Eclipse . 当前版本远远优于以前的版本,并包含一个上下文感知的REPL,功能齐全的调试器,甚至是调试REPL语句的能力 . 我认为这个问题需要更新,并重新回答答案 .

  • 1

    我不推荐使用Scala IDE / Eclipse . 它没有很多甚至可用于Eclipse的Java功能 . 还有一些错误 .

  • 4

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

    一:NB偶尔无法运行程序,挂在类路径扫描上 .
    解决方案:创建一个新项目,将代码复制到那里然后继续 .
    评论:This bug is more than 10 years old .

    二:有时使用NB can't see members特定的命名空间或类,并在使用时抱怨 .
    解决方案:只需忽略并继续 - 编译器发现没有错误,程序正常工作 .

  • 6

    我现在推荐IDEA的插件 .

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

    但是,它与Maven项目的集成比IDEA的插件更好(在我看来,对于NB和IDEA来说这是正确的) .

  • 1

    这在一定程度上取决于你的工作方式,因为所有的选择都有优点和缺点 .

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

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

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

  • 1

    我还没有尝试过netbeans scala插件,但我发现Intellij IDEA插件在scala中比scala eclipse插件好得多,因为它太慢了让我发疯 . 虽然swing应用程序与我的平铺窗口管理器不兼容 .

  • 4

    尝试IDEAX最新的Intellij IDEA社区版(版本10),它改进了scala插件,除了具有Maven3和SBT支持以及我们可以开发Lift应用程序之外,它还具有更快的代码编译和优势 .

  • 13

    IntelliJ IDEA社区版Scala插件SBT插件

相关问题