对我来说,期望我可以将Scala用于完整堆栈是否现实?

wfb*_*ale 5 scala playframework

我正在考虑使用Play在Scala中编写Web应用程序!前端的框架,可能是后端的MongoDB.我有什么理由不能/想要在整个应用程序中使用scala吗?换句话说,有哪些地方我会被迫使用ruby或php?我喜欢在Scala中拥有完整堆栈的想法,但我真的不知道这是否真实.

我是Web开发的新手,但是有java的经验,这就是为什么play framework和scala看起来是不错的选择.但如果我的问题没有意义,我会道歉.

vir*_*yes 2

您提出了一个很好的问题:Scala for full stack web devel。

我想说,一般来说,是的,您可以在 Scala 中完成这一切(以及编译时检查的代码以启动),但有一个例外*,即模板引擎层

Play 提供了自己的模板引擎,但不要指望在您的 IDE 中获得代码补全;从技术上讲,它是强类型的,但您的 IDE 不会拾取 Scala 代码;它将在 IDE 中被解释为纯文本。在浏览器窗口中加载会显示错误和适用的行号,因此您可以避免 ruby​​、python、php 等框架的运行时问题。

Scalatra 和 Scalate 模板引擎也是如此。您不会像在 IDE 中直接编写 .scala 文件代码时那样获得编译器检查/完成代码的快速反馈。

现在,如果您是 EMACS、VIM 等用户,也不会造成太大损失,但话又说回来,在 scala 和模板引擎层都拥有自动完成的代码是很难被击败的。显然,IntelliJ 今年夏天将提供一个插件,它将最终为 Scala 提供语法突出显示、代码完成等功能,这是一个令人惊叹的项目,已有 3 年多的历史,但 IDE 支持仍然为零;-(

  • Lift 的方法当然是完全不同的,并且在某种程度上解决了现有 Scala 工具中的这个弱点,但话又说回来,您会失去 xhtml 标签完成功能!

目前,使用 Eclipse Aptana 插件,我使用 .erb 支持来敲定代码完成的 xhtml,然后是 LESS 和 CoffeeScript 的 sbt 插件。你可以让它工作,只是在当前的 Scala IDE 状态下有点麻烦。

如果我对此有任何错误,请纠正我,很想听听其他内容。截至一个月前,以下内容在我的开发环境(Scala IDE 2.0)中成立

  • VI 当然是一个已有 30 年历史、无人维护的软件。VIM 作为一种现代替代方案更加有用。默认情况下,任何类型的语言(或语言混合)的语法突出显示都会突出显示,或者可以使用插件轻松安装。类型检查可以通过一些努力来设置。但这并不是通用文本编辑器相对于成熟的 IDE 堆栈的优势。正是[原始文本编辑](http://www.viemu.com/a-why-vi-vim.html) 使它们如此强大。VIM 和 EMACS 还涉及与版本控制和一般文件管理的交互。 (2认同)