我已经在Scala中编程了一段时间而且我喜欢它,但有一点我很烦恼的是编译程序所需的时间.这似乎是一个小东西,但是使用Java我可以对我的程序进行小的更改,单击netbeans中的运行按钮,然后运行BOOM,并且随着时间的推移在scala中进行编译似乎消耗了大量时间.我听说,对于许多大型项目,脚本语言变得非常重要,因为编译时需要,我在使用Java时没有看到需要.
但是我来自Java,据我所知,它比任何其他编译语言都快,而且由于我切换到Scala的原因很快(这是一种非常简单的语言).
所以我想问一下,我可以让Scala编译更快,并且scalac会像javac一样快.
您使用什么工具来使用Scala?在我的学习阶段,我使用了Scala REPL并使用TextMate攻击了一些代码并使用scalacCLI 编译它.但随着项目规模的扩大,需要更复杂的工具.
我知道Elipse,IntelliJ和Netbeans的Scala插件,我尝试了所有这些插件.最好的一个是恕我直言,但仍然远非完美.
我遇到的主要问题是缺乏自动完成功能.作为一个不那么先进的Scala编码器,我仍然不知道整个标准API,并且必须定期在Scaladoc和IDE之间切换.这感觉就像"杀死生产力".但他们都无法自动完成方法论证.(我听说方法参数不包含在编译的scala代码中,但是如何将source附加到自动完成?)
另一个非常烦人的问题是构建过程.我正在使用Maven来构建我的Scala项目并管理它们的依赖项.但是,我必须进行全面重建以测试我的更改.也许我被Java世界中的日食增量重建所破坏,但这对我来说感觉像是一个大问题.
我喜欢斯卡拉非常多,我觉得这样更高效,同时编码,但缺乏sophisticed工具,让我感觉不太生产力.两者似乎都取消了自己.
那么,我的问题是什么?我怀疑每个Scala程序员都使用良好的ol' vim或者emacs与scalac他们一起工作.那么你使用什么工具?您开发了哪些工作流程以加快Scala语言的开发速度?
通过自动完成方法参数来澄清我的内容.
val myList = "foo" :: "all your base" :: Nil
myList.partition(_.length > 3)
Run Code Online (Sandbox Code Playgroud)
对于上面的代码,IntelliJ无法向我提供分区要求我必须传递() => Boolean函数的信息.事实上,IntelliJ不会检查这种约束.我可以传递一个String并且IntelliJ不会指示我的错误,直到我编译.
fsc(快速scala编译器)比scalac更快.但是在TDD周期中我耗时3秒来编译源不到1秒来运行我的测试..建议减少0附近的编译时间?
显然,买一台更快的电脑不是答案:)
我的意思是使用一些scala内部来尽可能快地编译源代码
Iam在使用带有scala插件的IntelliJ IDEA 10.0.x学习Scala的过程中,我发现编译scala的时间超过10秒.我知道有一个选项可以在scala中启用快速代码编译(FSC),但是Iam不知道如何在IDEA中配置它是否有任何可用选项.
在过去的一年里,我听到越来越多关于Scala语言的炒作.我知道有几个现有项目计划将Scala支持与IDE集成; 然而,并不总是清楚整合有多好.
他们目前是否支持Intellisense以及Eclipse和Netbeans为Java语言做的事情?他们也支持即时验证吗?