在Java之外,Android是否需要一门新的开发语言,长久以来一直都是业内茶余饭后时常提起的话题,特别是苹果推出了Swift语言,以及Oracle和Google关于Java的专利纠纷,让这一问题备受关注。恰逢国内Google技术社区盛事 北京GDG Devfest 2015 在北航举办,InfoQ记者邀请到大会上的几位讲师对这一问题发表了自己的看法。
在讨论这一问题之前,先让我们了解一下问题的背景。从去年以来,Swift、Go、Dart语言的社区都对Android开发表示了兴趣:
除了这三门已经有一定历史积累的语言,另一个被认为可能替代Java的是Kotlin语言。Kotlin是开发工具公司JetBrains设计的一门新语言,旨在替代Java,其风格更加贴近现代语言,一经推出便受到Android开发社区的注意,声势也越来越大。
最近Kotlin语言刚刚发布1.0的rc版,我们正好从这个话题入手来看看国内Android开发社区是如何看上面的问题的。
InfoQ:Kotlin最近发布1.0rc版,是否研究过,感觉如何? Swift、 Go、Dart语言社区都对Android开发感兴趣,Android开发是否需要另一门语言,如果有,最看好哪个?
朱凯(Flipboard Android工程师):Kotlin我尝试过,没有做过深入研究。它给我的感觉就像是一个除了没有动态语言特性之外应有尽有的Java,很爽。我觉得 Kotlin目前可以作为Java的一种补充应用于Android开发(例如用于POJO),而且就相互兼容性来看,Kotlin是最适合做这种事的。但 要说替代Java,目前还没有能够做到的语言,包括Kotlin。未来我不知道,如果有的话我最看好Kotlin,但我觉得 Kotlin最终行不行还得看Google怎么决定。
韩国恺(北京GDG社区组织者、开发者):没研究过Kotlin。每个人都有自己喜爱的编程语言,但特定的系统或框架决定了它所采用的主语言,其它语言想加入就比较难。以Web为例,所有浏览器都只支持一种语言(JavaScript),其它语言想成为浏览器的主力语言就很难或者会很受限。而服务器端由于没有这种限制,而呈现百花齐放的景象,Java、Go、PHP、Ruby都可以。再说Android,我感觉Android系统的语言环境介于 Web和服务器端之间。JVM本身可以支持多种语言,使用NDK可以进行C/C++开发,同时又包含Web环境以及与系统的交互,所以Android比Web环境的语言选择余地要大。不过应用层还是以Java为主的,其它语言的使用多少会受到一些影响。另外,语言的开发成本也选择一个语言很重要的方面,新语言都要走很长的路。
段建华(遨游浏览器Android工程师):Kotlin有过关注和简单了解。Kotlin和Java很类似,使用起来也比Java轻巧很多,同时也可以规避了Java中的一些坑。使用Swift开发Android程序的听到的较少,使用Go语言开发Android应用是已经可以实现的。
个人觉得Android需要一门新的语言的需求有,但是不够迫切。Android一开始选定Java,目的就是利用庞大的Java程序员群可以快速的低成本地创造出丰富的Android应用。曾经的Oracle和Google就Android侵权官司,弃用Java炒的沸沸扬扬,议论纷纷。然而 现在Java依旧是Android的官方语言,地位没有动摇。
而Kotlin在Android界开始有名气,应该是来自DroidCon NYC 2015,目前国内使用的据我了解,都是少数个别开发者在使用。因而我觉得Kotlin挑战Java的地位,推广和宣传必不可少。
如果真的需要一们新的语言,论实力来说Go很强,当然Kotlin有着Jetbrains支持也不错。就个人而言,我更倾向于Kotlin,因为我觉得它与Java相近,转换成本较低。
Android开发到底是否需要新语言,这个新语言到底会是什么,在Google没有正式发布之前没有正确的答案,但这不妨碍我们站的角度稍微高一点,来挑选出我们心目中最适合的新语言。各位Android开发的读者如有自己的看法也欢迎讨论。