我正在阅读马丁奥德斯基的Scala书。
它指出Scala语言具有高度可扩展性,因为它允许用户添加可用作本机语言支持的新功能。
它让我对“可扩展性”一词感到困惑。
我知道可扩展性意味着软件处理大量数据的能力。
那么这里的区别是什么?
在Scala的上下文中,Odersky通常意味着它可以扩展,因为它可以用于从简单的脚本到大型库到庞大的企业应用程序的各种任务。
它有利于脚本编写,因为它的类型推断,相对较低的冗长(与Java相比)和功能样式(通常适用于更简洁的代码)。
它适用于中型应用程序和库,因为它具有强大的类型系统,这意味着可以编写大部分或仅在编译时而不是运行时(在可能的范围内)产生错误的代码。表演!特别是框架建立在这一理念之上。此外,Scala在JVM上运行,因此可以利用许多Java库中的任何一个。
它对企业软件很有用,因为它编译成JVM字节码,已经在企业软件中有很好的记录;此外,它的静态类型使得维护非常大的代码库变得更加容易。
Scala也适用于许多其他领域,使其更具“可扩展性”:并发/并行和特定于域的语言浮现在脑海中。
Odersky的Here is a presentation,如果你从幻灯片6开始前进,你会看到他解释Scala的其他用途。