Scala被称为可扩展语言,该功能甚至包括在其名称中:
Scala这个名字是“可扩展”和“语言”的缩写,表示它旨在根据用户的需求进行扩展。
在Scala中,“可伸缩”是什么意思?是什么使Scala比Java更具可扩展性?
Scala被称为可扩展语言,该功能甚至包括在其名称中:
Scala这个名字是“可扩展”和“语言”的缩写,表示它旨在根据用户的需求进行扩展。
在Scala中,“可伸缩”是什么意思?是什么使Scala比Java更具可扩展性?
Answers:
当马丁·奥德斯基(Martin Odersky)谈论scala作为一种可扩展的语言选择时,他的意思是该语言本身适用于:
从性能的角度来看,他绝对不是指可伸缩性!
他可以声称scala与快速的肮脏脚本一样适用于大型企业部署,这一事实大致如下:
脚本编写
Scala非常适合脚本编写,因为它的类型推断和功能风格使其既简洁又非常适合切片和切块集合等。
应用领域
Scala非常适合编写应用程序,因为它是一种静态类型检查的语言,具有一些功能丰富的功能,可用于功能样式和命令式样式。Scala与Java兼容,因此您可以利用庞大的库生态系统。
企业部署
与(所谓的)动态类型化(即非类型化)语言相比,Scala可以编译为字节码并在Java虚拟机上运行,Java虚拟机是一种性能稳定的稳定系统。同样,它是静态类型的事实意味着在大型代码库上,重构变得更加容易。
实际上,限制Java的可伸缩性的不是JVM,而是编写正确的并发代码的难度。Scala通过对函数式编程和actor模型的支持,使此操作变得更加容易。
当易于并发时,例如在Web服务器中,Java可以非常灵活地扩展(每个请求几乎完全独立)。但是,当涉及到并行执行一个长期运行的任务时,要正确行事可能是一场真正的斗争。
Scala代表可扩展语言,它与性能特征无关。您可以在此处找到更好的解释:http : //www.artima.com/scalazine/articles/scalable-language.html
与Java相比,这种语言本身不必具有更大的可扩展性,因为您说两种语言都可以产生相同的字节码。
但是Actor模型和函数式编程样式可以增强可伸缩性(简而言之,可以简化正确的并发编程并减少同步需求)。
为了获得更好的见解,请看一下actor模型,并将其与传统的多线程Java应用程序进行比较:
您甚至可以使用Akka框架来创建高度可扩展的Java应用程序,而无需在Scala中进行编码: