哪个IDE for Scala 2.8?
对于老版本的Scala来说, 这是一个相同的问题,但是他们说Eclipse插件已经得到了很大的改进。 现在是最好的IDE吗? 不同的Scala IDE今天如何比较?
我用IDEA 9取得了相当的成功。我简单地尝试了Netbeans和Eclipse,但却无法得到我想要的结果。 Eclipse的代码完整性并不像我喜欢的那样好,我也找不到让Netbeans处理Scala脚本的方法; 它只是抱怨,该文件不是一个类。
为了清楚起见,我已经为Java使用了IDEA几年了,所以请记住:)
目前,IntelliJ IDEA中的Scala Plugin是最好的。 它处理好Scala 2.8。 IntelliJ IDEA Community Edition现在是免费的,并且是开源的(并且和Scala一起工作),所以我看不到任何不使用它的理由。
该插件仍然有些bug(很多“错误否定”,即没有红色下划线的代码可能无法成功编译;但几乎没有“误报”),但完全可用。 最好的情况是,您可以使用IDEA的优秀debugging器与Scala(不是没有一些问题,但它实际上工作!)。
FSC(快速Scala编译器)也支持最新的版本。 一个巨大的节省时间。
插件开发团队相当敏感。 有些人直接在JetBrains工作,对IDEA平台有着深入的了解,所以开发进度很快。
JetBrains IDEA的Scala插件同样可以处理2.7和2.8。
我不能做任何比较,因为我只用了IDEA。
使用Eclipse Helios和Scala(2.8)插件的开发版本,因为目前还没有官方版本。 这是 beta,明确 – 但我不能确认经常表示的意见,这个插件是完全可怕的;-)
我会说,这个经验已经很好了,而且比Groovy插件的现状要好得多。 OTOH,使用普通的Java的经验更为stream畅(有时候感觉像飞行),而现在的CDT我会介于两者之间。
增量编译和错误突出显示对我来说工作得相当好; 调整一个DSL实现的forms,只需不断重写你的代码,直到错误标记消失,而不需要testing运行你的程序,这完全是有趣的,只是再次显示FP /静态打字的岩石!
遇到的问题: – 其他编译单元(特别是嵌套/超级软件包)中的implicits和nestedtypes在周围还有其他错误的时候不会被拾取; 他们将在完整构build后被拿起 – 在我现在使用的版本(从2010年8月底)似乎有内存泄漏,需要在工作几个小时后重新启动工作台 – 谨防使用AspectJ,以确保你得到一个版本的Scala插件依赖于一个JDT编织捆绑版本,也可以与AJDT
PS:我在我的所有项目中使用maven构build,并使用eclipse-maven-plugin生成eclipse项目,然后将它们导入为纯平eclipse项目。 我可以强烈build议大家远离现在的(2010)状态下的M2-eclipse插件,这使得你的工作台非常缓慢,很麻烦,并且有很多几乎不可预知的行为,因为它不断地尝试做幕后的魔术(此外,自今年春季以来,这方面的支持已经被打破)
我同时使用eclipse和IDEA
-
eclipse支持types检测比IDEA更好(如果你想要程序的function风格,你可以从types的expression式和variables中知道,这是非常重要的)。
编辑1 :IDEA支持像eclipsetypes检测,但你必须在你的函数中定义一个值,例如:
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) }
而不是将鼠标hover在variables上,鼠标hover在variables上时必须按Ctrl + q - eclipse在代码完成时有一些问题(当你在下一行使用一个variables,并且你想得到这个variables的属性时,eclipse显示错误的代码build议)
- 在IDEA破坏scala应用程序比eclipse慢5秒(有一些解决scheme为胸围IDEA运行时间,但这些副作用有一些问题)在想法有一个众所周知的问题,双击速度,在许多情况下显示自己像打开一个文件或在源文件中select一个string…您可以通过创build(或编辑)/home/.Xresources来增加双击时间,并添加以下行:
*.multiClickTime: 400
编辑1:总之 ,我宁愿使用IDEA而不是eclipse
非答案:无。
基于大多数人认为,IDEA可能是当今最好的Scala IDE。 它(阅读:斯卡拉插件)糟透了。 它不能很好地处理fsc,types推断是一团糟,很多错误不会显示,一些非错误被标记为错误,很慢(当检查被打开时),testing运行者默默吞下(!=失败)testing,…
所以我转到了一个简单的文本编辑器,在其他屏幕上使用SBT(简单构build工具)在一个和一个最大化的shell上使用语法高亮显示。 真棒! SBT是响应式的(您可以让文件更改触发重新编译受影响的代码,甚至重新执行testing),非常顺利地pipe理依赖关系,并提供有用的输出(尤其是testing;使用ScalaTest)。 与IDEA相比,SBT提高了我的生产力。
你失去了代码完成,当然,geany提供了我标识的符号。 但只要IDE没有得到types推断来正常工作,代码完成并没有帮助。
有些人关心代码重构。 那么,IDEs显然在那里也不是很好。 即使他们愿意,我宁愿只为这个特定的任务打开它们,而不是一直使用它们。
我认为到目前为止最好的select是ScalaIDE for Eclipse。 你可以去ScalaIDE网站,看看你自己看看。 http://scala-ide.org/
我看到的关于它的优点是:
- 文档,
- 教程
- 不断释放,
- 来自Typesafe的支持。
下面是主要特点的总结:
Scala IDE支持在Eclipse平台上开发Scala应用程序。 其主要目标是支持Scala语言和与Eclipse Java工具的集成。 它提供了许多Eclipse用户期望的function,包括:
- 支持混合的Scala / Java项目以及Scala / Java项目依赖关系的任意组合。 types驱动的操作在Scala和Java文件和项目中是透明的,允许从Scala到Java的直接引用,反之亦然。
- Scala编辑器,语法高亮,推断types,超链接到定义,代码完成,错误和警告标记,缩进,大括号匹配。
- 项目和源代码导航,包括在资源pipe理器视图中的embedded式大纲,大纲视图,快速大纲,开放式,开放式层次结构中的Scala支持。
- 增量编译,带集成debugging器的应用程序启动,从堆栈跟踪超链接到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的支持已经停止) ”
我的经验清楚地指向IntelliJ IDEA:
大概六个月前,当我开始一个认真的Scala(多模块)项目时,我不得不放弃Eclipse作为我最喜欢的Java IDE并切换到IntelliJ(9.0.x)。 Eclipse Scala IDE是一种错误的方式,并且经常停止响应,即使是最简单的项目也是如此。 对于CI(Hudson)和命令行版本,我依赖于Maven(带有Scala插件)。 Maven的依赖关系(包括Scala库)被IntelliJ拾取。
几天前,我用当前的插件(每晚构build)更新到IDEA X(CE),工作变得更加stream畅。 尽pipefsc在一段时间后仍然不活动。
从我所看到的,我想补充一点,在IntelliJ方面似乎有更多的活动来响应错误并不断改进插件。 纠正错误,但Eclipse Scala IDE开发似乎停滞不前。 仍然没有“官方”Helios发布!
注意:只是提供了一些上下文(不是吹牛,真的):上述项目包括大约25个Scala模块(POM),5个Java模块,325个Scala文件,总共大约360个Scala类,案例类和特征(> 19包括评论)。 我的平台是OS X 10.6,Scala 2.8.1,Java 1.6。
更新:在需要相当广泛的重构(主要是移动类,重命名包)后,我发现最近IDEA 10.0.1插件0.4.413(也可能是旧版本)也有一些问题得到正确的。 我不想解释具体细节,但我(几乎所有)最终手动修复未解决的引用或其他混乱的代码。 你可以看看http://youtrack.jetbrains.net得到一个想法。;
对于所有正在考虑用Scala进行认真开发的人来说,我强烈build议您对基本的IDE进行评估。 当你采用敏捷方法时,在我的select中需要毫不费力的重构支持(特别是在多模块项目中),目前情况非常严峻。
如果有人提出了一个独立于IDE的重构规范列表(以及所需的结果),可以用来validationIDE的重构支持,那将会非常简洁。
Eclipse(官方认可并支持Scala 2.9的Typesafe)是Eclipse。 当前的版本远远优于以前的版本,并且包含一个上下文感知的REPL,全function的debugging器,甚至可以debuggingREPL语句。 我认为这个问题需要更新和答案的重访。
我不推荐Scala IDE / Eclipse。 它没有太多的function甚至可以用于Eclipse的Eclipse。 还有错误。
我正在使用最新的NetBeans,并没有尝试其他任何东西。 在Scala中编写代码时,我遇到了至less两个NetBeans中值得注意的错误:
一:NB偶尔会出现无法运行的程序,挂在classpath扫描上。
解决scheme:创build一个新项目,在那里复制代码并继续。
评论: 这个错误已经超过10年了 。
二:有时NB 不能看到特定命名空间或类的成员 ,并在使用时抱怨。
解决scheme:只要忽略并继续 – 编译器find没有错误,程序工作。
我现在推荐IDEA的插件。
NetBeans的Scala插件也相当不错。 但是,它还不支持最新版本的NetBeans 6.9,而且您仍然需要手动下载,而不是直接从NetBeans中的插件pipe理器安装它。
但是,它比IDEA的插件更好地与Maven项目集成(在我看来,这对于NB和IDEA来说是正确的)。
这部分取决于你的工作方式,因为所有的select都有优点和缺点。
如果您需要在混合的java / scala项目中进行重构,那么IntelliJ是您唯一的select。
如果您想对编译器或编译器插件执行任何工作,那么Eclipse具有能够使用定制编译器构build(包括断点)启动运行时工作空间的优势。 对于2.8 Scala版本,它也有了很大的改进。
如果你已经非常熟悉这个平台,Netbeans是一个很好的select,学习一个新环境的成本可能会超过任何好处,所有这三种解决scheme都在迅速提高。
我还没有尝试netbeans scala插件,但是我发现Intellij IDEA插件比scala eclipse插件更好的scala ide,这太慢了,让我发疯。 虽然摆动应用程序不适合我的平铺窗口pipe理器。
试用IDEAX最新的Intellij IDEA(版本10)社区版,除了支持Maven3和SBT,我们可以开发Lift应用程序,它还改进了更快的代码编译和优化的scala插件。
IntelliJ IDEA社区版+ Scala插件+ SBT插件