写点什么

虚拟座谈会: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:393558
用户头像

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

关注

评论

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

完全兼容DynamoDB协议!GaussDB(for Cassandra)为NoSQL注入新活力

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

​阻抗计算,真的没有那么难!

华秋PCB

工具 电路 阻抗 PCB PCB设计

分享6款常用的开源工具(白嫖党入)

树上有只程序猿

【直播预告】HarmonyOS极客松赋能直播第四期:HarmonyOS开发经验分享

HarmonyOS开发者

HarmonyOS

九章云极发布大模型时代下全新产品系列 ,逐浪算力x软件万亿级市场|TE洞察

TE智库

开源 大模型 AIGC

互联网高可用架构探讨 | 京东云技术团队

京东科技开发者

高可用 架构设计 硬件架构 网络架构 企业号 7 月 PK 榜

聊聊Excel解析:如何处理百万行EXCEL文件? | 京东云技术团队

京东科技开发者

POI 内存优化 企业号 7 月 PK 榜 excel解析

Jmeter压测实战:Jmeter二次开发之自定义函数 | 京东云技术团队

京东科技开发者

测试 Jmeter 压测 企业号 7 月 PK 榜 插件化机制

关于序列化与反序列化MessagePack的实践 | 京东云技术团队

京东科技开发者

序列化 反序列化 企业号 7 月 PK 榜 MessagePack 字节序列

MAYA 2024和之前版本相比有哪些变化?

Finovy Cloud

自动化流行于虚拟制作行业,Perforce推出免费API助力

龙智—DevSecOps解决方案

ci API Helix Core 虚拟制作

数据库中用户删除不掉总是报错,依赖如何处理干净?

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

一文了解AppSec,以及如何通过Perforce工具保障应用程序防护

龙智—DevSecOps解决方案

APP开发 应用程序安全 AppSec

与 TDengine 性能直接相关——3.0 的落盘机制优化及使用原则

爱倒腾的程序员

涛思数据 tdengine 时序数据库

单色和彩色LED显示屏

Dylan

场景 使用技巧 显示器 LED显示屏 全彩LED显示屏

NFTScan | 06.26~07.02 NFT 市场热点汇总

NFT Research

热点 NFT\

《golong入门教程📚》,从零开始入门❤️(建议收藏⭐️)

不在线第一只蜗牛

教程 Go 语言

云原生实力再获认可!腾讯云云原生拿下重量级奖项

极客天地

哪家好用?四款国内外远程桌面软件横测:ToDesk、向日葵、TeamViewer、AnyDesk

热爱编程的小白白

华为云专家出品《字节码编程指南》电子书上线

华为云PaaS服务小智

云计算 字节码编程 华为云

推荐6款开源免费工具

伤感汤姆布利柏

万字血书Vue—Vue语法

不在线第一只蜗牛

Vue 教程 语法

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