2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

虚拟座谈会:Android 开发需要新的语言吗?

  • 2015-11-23
  • 本文字数:1964 字

    阅读完需:约 6 分钟

在 Java 之外,Android 是否需要一门新的开发语言,长久以来一直都是业内茶余饭后时常提起的话题,特别是苹果推出了 Swift 语言,以及 Oracle 和 Google 关于 Java 的专利纠纷,让这一问题备受关注。恰逢国内 Google 技术社区盛事北京 GDG Devfest 2015 在北航举办,InfoQ 记者邀请到大会上的几位讲师对这一问题发表了自己的看法。

在讨论这一问题之前,先让我们了解一下问题的背景。从去年以来,Swift、Go、Dart 语言的社区都对 Android 开发表示了兴趣:

  • 今年早些时候有一个 Silver 项目致力于用 Swift 来开发跨平台的应用,不过在 Android 平台是通过将 Swift 转换为 Java 代码实现的。而另一些人则在等待 Swift 开源以便将其移植到 Android,有人已经做了一些前期的研究,在 Android 上运行 Swift 代码,表明这至少在理论上是可行的。
  • Go 语言对 Android 开发的支持更加官方,在去年发布的 Go 1.4 中就已经支持了 Android 开发,Go 语言也是在各种 Android 新语言的流言中最常出场的一位。但 Go 语言从目前的趋势来看,在服务端发展的可能性更大,它的部分特性也更适用于服务端编程。
  • Dart 语言自今年 Google 宣布 Chrome 不再内置 Dart VM 之后遭遇重大挫折,很多人认为它最终将被抛弃,但这门语言背后有多位优秀的开发者和语言设计者,自从不再将替代JavaScript 作为目标后,Dart 反而迎来了更广阔的施展空间。今年Dart 峰会上Google 宣布了用于Android 开发的 Sky 框架(现更名为 Flutter),更用 120fps 的流畅性打消了人们对这个曾被用于前端开发的脚本语言的疑虑。

除了这三门已经有一定历史积累的语言,另一个被认为可能替代 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 开发的读者如有自己的看法也欢迎讨论。

2015-11-23 13:393741
用户头像

发布了 164 篇内容, 共 117.4 次阅读, 收获喜欢 392 次。

关注

评论

发布
暂无评论
发现更多内容

LeetCode题解:189. 旋转数组,环状替换,JavaScript,详细注释

Lee Chen

大前端 LeetCode

JVM垃圾回收与秒杀系统设计

走过路过飞过

架构师训练营 week9

devfan

极客大学架构师训练营 0 期 week 09 学习笔记

chun1123

学习 性能优化 秒杀系统

架构师训练营 week9 - 学习总结

devfan

Java ThreadLocal

陈皮

【架构师训练营 - week9 -1】作业

早睡早起

JVM垃圾回收原理&秒杀系统设计见解

潜默闻雨

《架构师训练营》第9周 命题作业

【架构师训练营】第 9 周总结

花生无翼

架构师第九周

Tulane

架构师必备的那些分布式事务解决方案!!

架构师修行之路

分布式 分布式事务 架构师

架构师课作业 - 第九周

Tulane

JVM垃圾回收及秒杀系统设计

stars

week9 作业

Geek_z9dmvw

Typora 完美结合 PicGo,写作体验更佳!

逆锋起笔

程序员 写作 Typora markdown 图床

架构师训练营第9周总结

王鑫龙

极客大学架构师训练营

Android VectorDrawable系列文章Review

teoking

android SVG

第9周-作业1

seng man

垃圾回收算法及收集器介绍

考尔菲德

第 09 周 JVM & 高性能 命题作业

Jaye

第9周命题JVM回收&秒杀

慵秋

极客大学架构师训练营 0 期 week 08 作业

chun1123

hdfs 数据结构与算法

极客大学架构师训练营 0 期 week 08 学习笔记

chun1123

学习

week 9 总结 JVM原理,编程优化

Geek_z9dmvw

第9周作业

王鑫龙

JVM 垃圾回收原理

纯纯

架构师训练营第 0 期第 9 周作业

无名氏

JVM 秒杀

架构师课程第九周总结

dongge

第9周-课后练习

Dawn

Week 09 总结

鱼_XueTr

虚拟座谈会:Android开发需要新的语言吗?_移动_徐川_InfoQ精选文章