6月份的苹果开发者大会推出了iOS平台的新编程语言Swift,用以替换陈旧的Objective-C。
尽管Google也善于创建新的语言如Go,Dart,但似乎对于Android平台并未计划有专门的语言推出。
理论上基于JVM的语言都可以被用于Android,但实际上由于Android的底层虚拟机不是标准的,
所以除Java之外的一些语言Clojure, Scala, Groovy 都需要额外多一次转换,从而引入性能弊端。
除了一个特别轻巧的语言:Xtend。
你可以把Xtend理解为CoffeeScript for Java 或者 Java 10(即Java的未来版本)。
Xtend看起来像Groovy,但是它被编译为Java代码而不是字节码。
Xtend是多范式的,支持lambdas(匿名函数、匿名内部类),函数是一级对象,具有类型推断,可选分号,运算符重载,等其他特征。
Xtend中的lambda看起来像下面这样:
button.onClickListener = [ clickedView |
Toast.make(context, "Hello world!", Toast.LENGTH_LONG).show()
]
这将生成如下Java代码:
final View.OnClickListener _function = new View.OnClickListener() {
@Override
public void onClick(final View clickedView) {
Toast.make(context, "Hello world!", Toast.LENGTH_LONG).show();
}
};
button.setOnClickListener(_function);
更多Xtend的语法,请访问其Eclipse项目官网。
Xtend语法很简洁漂亮,带来这些好处的另一面,是需要额外的一步编译,可能需要花费几秒时间来首先把它编译为Java代码。
另外在IDE的支持上(如IntelliJ IDEA )还比较薄弱,当然如果你使用Eclipse就没这个问题。
总之,这是一个值得尝试和学习的新型的、快乐编程的语言。