Scala怎么学习


王宏江

问题1:请问初始学习Scala,看那些书比较好?

先推荐这本《Scala程序设计:Java虚拟机多核编程实战 》,面向初学者。然后 Martin自己写的《Programming in Scala》内容非常充实,是最好的一本教材需要细读,现在可能有第三版了,中文版只有第一版。还有《快学Scala》也值得一看。

最后《Scala函数式编程》这本书面向高阶特性,介绍了包括fuctor, monad 等函数式概念

问题2:C 语言工程师要想 转做 Scala 继续学习补充哪些知识呢?

对于 C 的人,转Scala的话,可能先把 Java 的特性弄熟更有利,Scala基于JVM平台,能先用起来解决实际问题,自然就能不断进步了。

问题3:Scala究竟是简单还是困难呢?和C++相比的优点和缺点在哪了?

如果你把Scala 当作 Java来用,并不复杂,不需要消化它的高阶特性,可以很快上手。有很多人将Scala和 C++相比,我没有C++方面的背景,很难回答。

Scala的复杂度主要是类型系统层面的,可以说是 Haskell 的影响,主要在思维方式的差异性上,对程序员有较大冲击。

问题4:Scala在程序排行榜中所占比例不太好的原因是什么呢?

很多理论都是从学院界逐渐转入工业界的,大众程序员对函数式的理解现在也不够普及,这需要一个过程。

问题5:请问在推广使用Scala方面有什么好的建议?

先解决实际问题,业务用起来了自然就推动了。

问题6:Scala的闭包和Node.js的闭包差异在什么地方呢?

在上下文绑定问题上没有差异。至于各种语言/平台,闭包在底层用什么方式来承载,我不好说。在Scala里闭包就是一个FunctionN 的类型,背后还是用对象来承载的。

问题7:命令式编程和函数式编程之间各有什么利弊?

看场景,命令式程序比较直接,容易理解。

函数式在并发场景更有用武之地

参考:

http://www.vmfor.com/p/101046740458.html