Scala是一门现代的多范式编程语言,志在以简练、优雅及类型安全的方式来表达常用编程模式。它平滑地集成了面向对象和函数语言的特性。

Scala是面向对象的:Scala是一个纯面向对象语言,在某种意义上来讲所有数值都是对象。对象的类型和行为是由class和trait来描述的。Class的抽象可由子类化和一种灵活的基于mixin的组合机制(它可作为多重继承的简单替代方案)来扩展。

Scala是函数式的: Scala还是一个函数式语言,在某种意义上来讲所有函数都是数值。Scala为定义匿名函数提供了一种轻量级的语法,它支持高阶(higher-order)函数、允许函数嵌套、支持局部套用(currying)。Scala的case类及其内置支持的模式匹配模型代数类型在许多函数式编程语言中都被使用。

Scala是静态类型的:Scala配备了一套富有表现力的类型系统,该抽象概念以一种安全的和一致的方式被使用。

Scala是可扩展的:Scala的设计承认了实践事实,领域特定应用开发通常需要领域特定语言扩展。Scala提供了一个独特的语言组合机制,这可以更加容易地以类库的形式增加新的语言结构: 
任何方式可以被用作中缀(infix)或后缀(postfix)操作符 
闭包按照所期望的类型(目标类型)自动地被构造 
两者结合使用可方便地定义新语句,无需扩展语法,也无需使用类似宏的元编程工具。

Scala可与Java和.NET进行互操作:Scala设计时就考虑了与流行编程环境良好交互,如Java 2运行时环境(JRE)和 .NET框架(CLR)。特别是与主流面向对象语言,如Java和C#尽量无缝交互。Scala有像Java和C#一样的编译模型(独立编译,动态装载类),允许访问成千上万的高质量类库。

 

Java盛行之后,逐渐显示了它的弊端: 静态语言编程会导致大量的固定写法的代码。通常认为我们应该避免静态类型从而消除这种代码,于是人们对动态语言如Python,Rubby和Groovy的兴趣开发增加,这种认知被马丁最近的作品--Scala的出现打破。

Scala是一种很有品味的类型语言,它是 静态类型的,但仅需必要的地方显式定义类型。Scala从 面向对象和函数式语言两方面获得了强大的特性,然后用一些新奇的点子把他们优美地整合到一起。它的语法非常 轻量级,而原语义又有丰富的表达力,以至于根本可以认为 API的使用不需负担语法开销。

之所以kafka使用了Scala进行开发

A:为什么kafka使用了Scala进行开发?
B:因为当年主R正在学习Scala,所以就用Scala开发了。并且这是他的第一个Scala项目。也正是因为他也在学习阶段,所以写出来的代码都是按照Java的写法实现的,这也是为什么Java开发者也能很容易读懂源码的原因。
A:为什么kafka叫kafka?
B:因为主R在开发kafka的时候正在看卡夫卡的《变形记》,所以没有多想就用了kafka这个名字。同时,因为kafka实际上是以日志的形式记录消息的,属于一个书写者,所以用一位作家的名字命名也是很契合的。

实际的原因是

kafka : 分布式消息队列 内部代码经常用来处理并发的问题 用scala可以大大简化其代码。

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐