我正在试图弄清Scala的流行程度,以及有多少SO用户实际在工作中使用它?
- 这里有一些Scala链接
我在金融科技领域工作已经使用Scala一年了,绝不想回到Java!最初考虑迁移时我最担心的是:
ant
,Spring,内部编写的东西)的互操作性我发现 IDEA 的 Scala 插件(现在的免费v9社区版)非常出色:虽然不如Java的工具支持那么好,但对我们的需求足够好了。它具有基本的重构和调试功能以及出色的语法高亮显示。我的Eclipse经验非常令人失望:我了解到Scala 2.8有很大改进,但我最近看到的Eclipse-nightly实在是糟糕透了。
与Java的互操作性是一流的——我完全没有遇到任何问题,仍然大量使用Spring和我们定制的(基于ant的)构建系统。开发者资源只有对于人员流动率中等到高的大公司才是一个问题;对我们来说,这还不是一个问题,面试者也表达了使用Scala的兴趣。
也许最大的问题是过渡时间。我发现需要 2 周才能写出任何合理的东西,3 个月才能真正“get it”,6 个月到 1 年才能开始利用 Scala 的功能和 DSL 方面。那么,对我来说真正的收益是什么呢?所以总结一下:
没有人能预知未来,任何时候都可能有更好的东西出现(或者是背后有强大支持的更糟糕的东西)。
有很多关于这个话题的文章、播客等等。在这里,我建议你阅读:https://stackoverflow.com/questions/33744/is-scala-the-next-big-thing
就我个人而言,我认为Scala很有前途,但可能无法吸引大众。今天Java的许多生产使用都围绕J2EE展开,我不认为这些人会转换。对于非Java用户,更成熟的语言如Python可能提供他们所需的所有函数特性,即使不使用JVM也可以。
我已经用Java编程多年,过去两年使用的是Haskell和OCaml。几个月前,我开始在Scala中开发个人项目,这非常棒。它有真正的类型系统和所有Java支持的库。
Java和Scala混合使用的便利性意味着该语言绝对有未来。对于现有的Java项目,采用成本非常低。
不确定这些信息是否有用,但我正在为一家成功并且知名的游戏公司构建一个在线游戏服务器,使用Scala和Project Darkstar。
我们的设计规格可以扩展到50万到1000万用户(感谢Amazon EC2!),而Scala给了我五个方面额外的信心: 1. 我在编译时能够捕捉更多的问题。 2. 很容易使我的游戏数据变为不可变的。 3. 更高级别的代码意味着我不太可能犯一个琐碎的实现错误。 4. 更短、更简单的代码使我更容易审查和找到错误。隐式转换是其中的重要部分。 5. 我写代码越开心(而Scala通常会让我开心),我就能做得越好。
Scala并非万能药,它有很多缺点(即缺乏任何良好的工具支持),但对于我来说,它是我可以用于此目的的最有效的语言。
我唯一的抱怨是,我希望它能编译成C或者大量使用宏的汇编语言,因为JVM的限制经常使我感到恼火(类型擦除、缺乏堆栈类型和按值对象数组)。
我认为Scala还不是很受欢迎,2.8的转换进度严重落后并在社区中造成了分歧,而工具支持也不够完善。但如果你是一个不怕代数类型理论和缺乏自动完成功能的牛仔编程者,那么很难出错。
如果你决定使用它,请给自己带来巨大的好处,购买Odersky的书籍。我曾经试图在没有它的情况下编写Scala代码,几乎无法以“scala方式”做任何事情(尽管对此并没有共识)。
我在最近的一次会议(JavaEdge2009)中听说了Scala,每个人似乎都相信Scala是一种很棒的语言。会议的主题是Java的未来不仅仅是一个新的JVM编程语言,而是编程语言是Java的未来。由于JDK 7将内置对动态语言的支持,预言家们说几年后你将用自己的语言进行开发(DSL-领域特定语言)。
从实际角度来看,我已经下载了Scala Eclipse插件,但感到失望。自动导入功能尚未实现,这使我从一个有趣的语言变成了一个实用的语言。虽然可能听起来有点抱怨,但像古代一样需要手动添加导入太过繁琐。