对于我来说,期望能够使用Scala实现完整的堆栈是现实的吗?

对于我来说,期望能够使用Scala实现完整的堆栈是现实的吗?,scala,playframework,Scala,Playframework,我正在考虑使用Play在Scala中编写一个web应用程序!前端是框架,后端可能是MongoDB。是否有任何原因使我不能/不想在整个应用程序中使用scala?换句话说,在哪些方面我会被迫使用ruby或php?我喜欢在Scala中拥有完整堆栈的想法,但我真的不知道这是否现实 我对web开发非常陌生,但有java方面的经验,这就是为什么play framework和scala看起来是不错的选择。但是,如果我的问题没有确切意义,我很抱歉。您提出了一个很好的问题:Scala for full stack

我正在考虑使用Play在Scala中编写一个web应用程序!前端是框架,后端可能是MongoDB。是否有任何原因使我不能/不想在整个应用程序中使用scala?换句话说,在哪些方面我会被迫使用ruby或php?我喜欢在Scala中拥有完整堆栈的想法,但我真的不知道这是否现实


我对web开发非常陌生,但有java方面的经验,这就是为什么play framework和scala看起来是不错的选择。但是,如果我的问题没有确切意义,我很抱歉。

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

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

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

Scalatra和Scalate模板引擎的处理方法相同。在IDE中直接编写.scala文件代码时,您不会得到编译器检查/完成代码的快速反馈

现在,如果您是EMACS、VIM等用户,没有太大的损失,但是,在scala和模板引擎层自动完成代码是很难打败的。显然IntelliJ在今年夏天提供了一个插件,它最终将为Scalate提供语法突出显示、代码完成等功能。Scalate是一个有3年多历史、仍然没有IDE支持的惊人项目-(

  • Lift的方法当然是完全不同的,并且在某种程度上绕过了现有Scala工具中的这个弱点,但是再一次,您失去了xhtml标记完成
目前我使用EclipseAptana插件.erb支持完成xhtml代码,然后使用sbt插件实现LESS和CoffeeScript。您可以让它工作,只是在Scala IDE的当前状态下有点麻烦


如果我在这方面有任何错误,请纠正我,我希望听到其他的。一个月前,在我的devel环境中(Scala IDE 2.0)

简而言之:我看不出有任何理由使用PHP或Ruby。你完全可以用Java(Play1.x)来完成这项工作或者Scala。如果您更喜欢Scala,我建议您使用Playframework 2.0。

建议您尝试使用programmers.stackexchange.com。我认为stack overflow是为程序员准备的?对于真正可回答的客观问题的问题和答案也是如此。p.SE是主观的“我应该做x吗”或“你认为y怎么样”?我可能想到的唯一原因是ruby和php的入门级较低。最近有一个关于scala对于一般开发人员来说太复杂的传言。我不认为缺少代码完成会成为这里的障碍。我认为问题更多地针对可能的技术限制,但我当然不能确定:)@NiklasB。是的,非常正确,但需要注意的是,工具支持与所谓的完整堆栈是齐头并进的。换句话说,如果一个人被迫在vi或记事本中“失明”,Scala的采用率将非常低。这只是指出,除了模板引擎支持之外,Scala目前的情况非常乐观(Scala IDE 2.0是,依我看,很棒)。看看M$stack,就可以看到从代码到模板再到内置到VisualStudio中的-(java)脚本的工具支持。这不是唯一的原因,但C#是Stackoverflow的#1语言,至少部分原因在于工具。作为VIM黑客之一,我只想指出,一般来说,语言和良好的文本编辑器比特定的IDE或“Intellinget”代码帮助重要得多。在我看来,不管开发环境如何,Scala绝对是一种比Java更高效的语言显然,我不是文本编辑群体的一部分,事实上,我对那个世界相当无知。你能在VIM中获得Scala语法高亮显示和编译时检查吗??我假设是这样,但很难相信当涉及到scala+xhtml+css+javascript时,文本编辑器可以与IDE挂起。我相信强大的O自己已经将EMACS留给了Scala IDE…VI当然是一个30岁的、未维护的软件。VIM作为一种现代的替代品,要有用得多。默认情况下,任何类型语言(或混合语言)的语法高亮显示都会出现,或者可以使用插件轻松安装。类型检查只需稍加努力即可设置。但这并不是通用文本编辑器相对于成熟IDE堆栈的优势所在。正是这种力量使他们如此强大。VIM和EMACS还简要介绍了与版本控制和一般文件管理的交互。如果您可以等待的话,我绝对建议您继续使用2.0,因为它要好得多。