我正在考虑使用Play在
Scala中编写Web应用程序!前端的框架,可能是后端的MongoDB.我有什么理由不能/想要在整个应用程序中使用scala吗?换句话说,有哪些地方我会被迫使用ruby或PHP?我喜欢在Scala中拥有完整堆栈的想法,但我真的不知道这是否真实.
我是Web开发的新手,但是有java的经验,这就是为什么play framework和scala看起来是不错的选择.但如果我的问题没有意义,我会道歉.
解决方法
你提出了一个很好的问题:Scala用于完整的堆栈web开发.
我会说,一般来说,是的,你可以在Scala(和编译时检查的代码启动)中完成所有操作,但有一个例外*,模板引擎层
Play提供了自己的模板引擎,但不希望在IDE中获得代码完成;从技术上讲,它是强类型的,但你的IDE不会选择Scala代码;它将被解释为IDE中的纯文本.在浏览器窗口中加载会显示错误和适用的行号,这样可以避免ruby,python,PHP等框架的运行时问题.
与Scalatra和Scalate模板引擎相同.在IDE中直接编写.scala文件代码时,您将无法获得编译器检查/完成代码的快速反馈.
现在,如果你是一个EMACS,VIM等用户,没有太大的损失,但是再一次,在scala和模板引擎层都有自动完成的代码是很难被击败的.显然IntelliJ今年夏天提供了一个插件,最终将为Scalate提供语法高亮,代码完成等,这是一个超过3年的惊人项目,仍然没有IDE支持;-(
> Lift的方法当然完全不同,并且在现有的Scala工具中有点绕过这个弱点,你失去了xhtml标签的完成!
目前使用Eclipse Aptana插件,我使用.erb支持来敲除代码完成的xhtml,然后使用sbt插件来获取LESS和CoffeeScript.你可以使它工作,只是在当前的Scala IDE状态下有点麻烦.
如果我对此有任何不妥,请纠正我,否则我很乐意听到.截至一个月前,以下在我的开发环境中保持正确(Scala IDE 2.0)