Java开发人员Scala指南:构建计算器,Scala编程语言介绍Scala编程语言最近吸引了很多开发人员的眼球。如果粗略浏览Scala的网站,你会觉得Scala是一门纯面向对象的编程语言,无缝结合了命令式和函数式编程风格,ChristopherDiggins认为,不久前,编程语言可以毫无疑问地归类为命令式或函数式,Scala代表了一种新的方式,根据DavidRupp的博客,Scala可能是下一代Java,所以人们不禁想知道它是什么。Scala有几个显示其面向对象本质的关键特性,比如Scala中的每一个值都是一个对象,包括基本的数据类型(布尔值等,),甚至函数都是对象,其他类都可以子类化,Scala还提供了基于mixin的位置。与只支持单一继承的语言相比,Scala具有更广泛的类重用意义,Scala允许在定义新类时重用类中新成员的定义(即与其父类相比的差异),Scala称之为基于mixin的位置,Scala还包含了函数式语言的几个关键概念,包括高级函数。
总的来说,对于大多数普通程序员来说非常完美(考虑到语言本身,平台,库,\IDE等工具\背后的支持公司)。目前主要风格还是OO,如果能是FP就更好了。就像Scala和C#的结合,比Scala简单很多;比C#干净,因为没有历史包袱。我写过10多种语言,Kotlin和F#是最顺手的,Kotlin是少数几个像Go/Python一样写代码时不需要程序员动脑的语言。
Scala尝试什么都自己做,然后不够用就用javaKotlin尽量使用Java,扩展不够,尤其是两者的容器库,导致Kotlin的学习曲线极低,这对于我这样的普通码农来说是一个很大的优势,而专家可能更看重Scala强大的容器库和完整的FP函数,所以个人觉得很难吸引Scala程序员。优点:一切都是FP的表现风格,
我之前在本节回答过关于Scala的问题,但那更多的是知识普及,而不是Scala是什么,它是做什么的,它的特点是什么。Scala的可怕之处在于,每个人都可以对它说一两件事,但并不是每个人都能理解它。看这一节的帖子,有人把它当成Java的扩展版(目前住在沃顿的UPenn大学学生JustinKim在我面前说Scala是JVM上的脚本语言),有人把它当成JVM上的C ,有人认为它是面向对象语言和函数式语言的简单混合,有人认为它是Haskell,还不如Haskell。