谷歌有意用Swift取代Java作为Android开发第一语言
去年底苹果开源Swift之后,Google、Facebook和Uber三个互联网巨头就曾在伦敦召开会议讨论Swift在各自开发战略中的地位。近日业界有消息传出,谷歌有意考虑将Swift作为Android开发的第一语言,而Facebook和Uber也计划在运营中提高Swift的地位。
谷歌Android目前的第一开发语言是Java,虽然谷歌不太可能一夜之间用Swift取代Java的地位,但是随着与Oracle专利官司的持续发酵,谷歌开始认真考虑Swift的上位。
作为Apache授权协议下的开源软件,谷歌重用Swift不会破坏整体的Android开源移动架构,但是谷歌真的会用Swift取代Java吗?
自从苹果公司在2014年的WWDC上发布Swift以来,Swift以其简洁和效率赢得了大量赞誉,包括IBM的鼎力支持。Swift开发出的应用更加精干且易于维护,很多知名APP例如Lyft、Pixelmator和Vimeo都用Swift重构了各自的iOS应用。
但是向Swift迁移对于谷歌来说也并非一马平川,Swift不能直接在Android平台上使用,谷歌需要为Swift开发一个runtime,这还仅仅是麻烦的冰山一角。谷歌还需要改造所有的标准代码库适应Swift,并在API和SDK中支持Swift。一些底层的C++编写的Android API也暂时无法与Swift互通,需要重写,Java编写的上层API也不能幸免。
不过用Swift开发Android应用也并非不可能,去年就有开发者Romain Goyet试着用Android的NDK和Swift开发Android应用并取得一定成效。因此,对于谷歌来说,向Swift迁移虽然有难度,但主要取决于谷歌的意愿和决心。
其实对于谷歌来说,Swift并非唯一的Java替代品,谷歌同时也在评估新的Android和KVM开发语言Kotlin,与Swift类似,Kotlin也是面向对象语言,而且更强调安全性。与Swift不同,Kotlin可以在谷歌的IDE平台 Android Studio 上使用。但是也有媒体报道谷歌对Kotlin的编译速度并不满意。
Kotlin的特性与Java接近,相比Swift,向Kotlin迁移对谷歌来说难度要小得多,但是谷歌需要权衡的不仅仅是开发语言自身的技术问题,更要考虑开发社区和整个生态环境之间的博弈问题。
Facebook和Uber就对Swift显示了极大的兴趣,因为Swift既可以作为前端也可以作为后端语言使用,应用端和服务器端能够无缝衔接,尤其受到Facebook这样的公司青睐。甚至已经有Facebook的员工在Github上po出了“Port to Android”的代码库,目前不清楚这是否官方授意的行为,但目前可以确认的是Facebook确实在内部紧锣密鼓地推进Swift,只是进度外界不得而知。