使用或不使用Scala用于新的Java项目?

sir*_*mak 11 java programming-languages scala

我对Twitter印象深刻并且正在调查使用Scala进行一个新的大规模Web项目,包括Hibernate和Wicket.您如何看待Scala,我应该使用它而不是Java吗?

编辑:而且,你认为Google的Noop,Fan或Scala可以在不久的将来取得Java的领导,你认为哪一个有机会?

Bri*_*new 13

不要忘记您可以将它与Java一起使用.即,您可以在Scala脚本环境中使用已编译的.classes和.jars.

因此,您可能希望使用Java对解决方案的较低级别进行编码,然后将它们包装在Scala中,以提供更灵活,更灵活的解决方案(在更高级别重写业务逻辑方面).

需要考虑的是还有谁会照顾并维护它.对于Scala的所有炒作,相对较少的人可以编写代码(截至2009年11月),并且您可能不得不雇用未来的人来照顾它.寻找Scala人意味着你正在寻找一个小得多的候选人(有些人可能想在工作中学习 Scala,但仍然有启动成本)


san*_*ity 6

以下是Scala相对于Java恕我直言的利弊:

优点:

  • 现代Java代码中常见的习语的语法更为简洁
  • 关闭
  • 更强大的类型系统,包括mixins
  • 模式匹配
  • 伟大的REPL,2.8甚至可以完成制表

总结:使用比Java少得多的代码可以获得更多功能

缺点:

  • 尽管IDEA目前拥有最佳支持,但IDE支持仍具有alpha或beta质量
  • 标准库不能免受每个新版本的更改(2.8将具有向后不兼容的更改)
  • 标准库至少在一年前(当我在JSON支持中找到一个)时出现了重大错误

我认为Scala将在6-8个月内为主要生产用途做好准备,但我今天不打赌我的项目.


oxb*_*kes 5

不要忘记它是一个相对较小的Twitter,特别是消息队列,它是用Scala编写的.根据我的理解,前端仍然是Ruby-on-Rails.

也就是说,我在一年前迁移到斯卡拉:我没有回头.此外:

  • 有大量的毕业生,他们非常有兴趣来斯卡拉商店工作
  • scala是为了在JVM上运行而构建的,这意味着Java开发人员可以在语言中获得先机(如果您感兴趣我可以扩展为什么会这样).

  • @Derek - 我有第一手证据证明是这种情况; 然而,它并没有完全成为同行评审期刊.然而. (2认同)