我对Twitter印象深刻并且正在调查将Scala用于Hibernate和Wicket的新大型Web项目。您如何看待Scala,我应该使用它而不是Java吗?
编辑:而且,您认为Google的Noop,Fan或Scala可以在不久的将来取得Java的领导地位,您认为哪一个有机会?
答案 0 :(得分:13)
不要忘记您可以将它与Java一起使用。即,您可以在Scala脚本环境中使用已编译的.classes和.jars。
因此,您可能希望使用Java对解决方案的较低级别进行编码,然后将其包装在Scala中,以提供更灵活,更灵活的解决方案(在更高级别重写业务逻辑方面)。
需要考虑的是,还有谁会照顾并维护它。对于所有Scala的炒作,相对较少的人可以编写代码(截至2009年11月),并且您可能不得不雇用未来的人来照顾它。寻找Scala的人会意味着你正在寻找一个小得多的候选人(有些人可能希望在工作中学习 Scala,但仍然有启动成本)
答案 1 :(得分:6)
以下是Scala相对于Java恕我直言的利弊:
优点:
总结:使用比Java少得多的代码可以获得更多功能
缺点:
我认为Scala将在6-8个月内为主要生产用途做好准备,但我今天不打赌我的项目。
答案 2 :(得分:5)
Don'忘记它是一个相对较小的Twitter,特别是消息队列,用Scala编写。据我所知,前端仍然是Ruby-on-Rails。
那就是说,我在一年前迁移到斯卡拉:我没有回头。此外:
答案 3 :(得分:3)
Scala的一个特殊问题是,作为可伸缩语言,它具有与普通开发人员不同程度可访问性的功能级别。将它作为JVM的脚本语言使用是一回事,使用函数式编程开发特定于域的语言是另一回事。
答案 4 :(得分:3)
如果您考虑在单个项目环境中使用Java和Scala,我建议使用Maven作为项目依赖系统。这是我用来生成scala项目的代码:
mvn archetype:generate -DarchetypeCatalog=http://scala-tools.org/
以下是与Scala一起使用maven的一些usage information。如果使用maven作为编译器,则可以将java和Scala源文件放在同一个包中,而无需额外配置。它只是有效。
由LinkedIn主持的Here is a talk。它是一个带Scala,Twitter和Scala电梯网络框架的面板(我使用它)。如果你还在决定是否使用Scala id建议观看它。
答案 5 :(得分:3)
Scala的一个优点是您可以在同一个项目中与Java一起构建它。 Maven(参见luigi-prog的评论)和simple build tool都有相当简单的钩子,可以一次性构建所有内容。
另一种方法是采用现有的单元测试,切换实现,看看差异。
Daniel Spiewak had a few nice entries on the gotchas of Java-Scala interop
在过去的一年里,我一直在工作场所使用Scala,而且我认为这是一个相当熟练的3个月学习曲线。这是一组相当小的典型的 Java人。在惯例和标准方面存在很多波动性,因此期望每隔几个月对任何项目进行一些修改。
我认为你还不能搜索“Scala程序员”。但是你可以找到许多有兴趣学习Scala的Java程序员。
如果我猜测,Scala和Clojure可能会成为'取代'Java的先行者。我不希望最早在2012年之前发生重大转变。 Scala可能引领势头 - 现在有多种语言的书籍。