尽管开发人员对Java及C++语言在Android上的使用已经非常熟悉,但他们仍然可以选择采用其它JVM语言,因为Android一直在大力推动Java兼容虚拟机Dalvik,开发人员Mike Burns推断道。他工作于一家名为Thoughtbot的网页及移动应用程序开发公司。“Scala如今也具备了正在蓬勃发展的[开发人员]社区,”他如是说。
举例来说,来自波士顿Android开发组的成员们已经开始利用Scala进行Android开发,Burns说道,他正是该工作组的负责人:“Scala能够让大家更快地完成编码及分享的工作,尤其是与采用Java进行开发的过程相比。”Burns即将出席今年10月于旧金山举行的Android开放式会议,会上将讨论关于Scala替代Java的各项细节。
Scala的创造者Martin Odersky进一步证实了Burns的主张:“我对他的说法深表赞同:Scala是一款独具魅力的Android开发语言。另外值得一提的是,Android插件中还具备对SBT,即Scala标准创建工具的支持。”谷歌目前拒绝对Scala在Android开发领域的相关话题发表评论。但谷歌的项目托管站点上已经设有Scala – Android页面,展示通过Scala为Android创建应用程序过程中所需的各类工具。
对于移动设备上的应用程序,Scala则比JRuby及Groovy等其它JVM语言更具优势,因为静态类型语言运行速度更快、内存占用更少、优化程度也往往好于平均水平,Burns说道。他还强调说Android系统往往运行于处理器速度缓慢且内存较小的嵌入式设备上,如此一来降低配置要求就显得尤为重要。
在今年春季的一篇博文中,Burns如此宣扬Scala的编程特点:“Scala可以被看作Java的改进版。首先,大家不再需要输入大量分号。Scala带给我们的是现代抽象科学的创造之力。添加属性、固有内容、值的类型检测以及信息块——所需的每种要素如今都以实实在在的编码成品方式摆在我们面前。”
来自Forrester公司的分析师Jeffrey Hammond表示,Dalvik虚拟机使用其自身的字节码格式来执行应用程序。谷歌将Java作为媒介语言以对.dex格式的文件进行编辑,他说:“Mike似乎在寻找一种方式,旨在将Scala作为编写应用程序以及生成.dex编码类型文件的一种后备方案。”
Burns说他已经切实用Scala为Android编写了一些程序,其中包括一款以Umbrella Today为基础的天气预报软件。他向我们列举了用Scala为Android系统进行开发工作的优势,例如速度快、编程容易以及具备充满活力的相关社区等等。不过,缺点也确实是客观存在的,其中包括以实践经验相对匮乏及缺少文档资料为主的各类未知情况。
当然,Android同时也是甲骨文与谷歌之间闹得沸沸扬扬的诉讼事件的核心角色,起因是Android被指挥存在与Java专利相关的侵权行为。但Burns却对诉讼没有太多意见。“我对这事真的不太感兴趣,”他说。