QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

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

关注

评论

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

如何设计业务高性能高可用存储架构 - 作业

阿拉阿拉幽幽

千万级学生管理系统的考试试卷存储方案

joak

Java—虚拟机

武师叔

6月月更

OKALEIDO:NFT交易平台的发展趋势是什么?

股市老人

TypeScript中你可能会忽略的细节

真嗣

typescript 前端

异步任务处理系统,如何解决业务长耗时、高并发难题?

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算 FC

NFT新范式,OKALEIDO创新NFT聚合交易生态

鳄鱼视界

读书笔记之《网络是怎样连接的》

蔡农曰

开发 网络 计算机 后端开发

《网络是怎么样连接的》读书笔记 - 认识网络基础概念(一)

懒时小窝

网络编程

Java 应用压测性能问题定位经验分享

阿里巴巴云原生

阿里云 云原生 压测 性能压测

GNU/Linux知识库(3)- 命令行和包管理

冯亮

Linux DevOps GNU

网上教学 助力战疫 | 社区征文

yu

原创 原创保护 初夏征文

架构训练营模块四作业

融冰

华为云图引擎服务

程思扬

华为 华为云 云开发

列表视图——基于函数的视图 Django

海拥(haiyong.site)

Python django 6月月更

【mycat】mycat在windows环境下的安装和启动

迷彩

架构 mycat 数据库中间件 MySQL 数据库 6月月更

测试开发【Mock平台】07开发:项目管理(三)组件Modal和Form讲解,并利用其实现添加功能

MegaQi

测试平台开发教程 6月月更 测试技术干货

架构实战营|模块4

KDA

#架构实战营

Prometheus、Grafana安装配置linux服务器监控dashboard

橙子猿

golang Prometheus #Grafana

关于分布式系统一致性

Joseph295

Navicat Premium 15 永久破解激活工具及安装教程(亲测可用)

Geek甜甜

数据库 程序员 工具 navicat

vue全局守卫

小恺

6月月更

千万学生管理系统试卷存储方案

intelamd

架构实战营模块 4 作业

Naoki

架构实战营

数据洞察力

奔向架构师

数据资产 6月月更

千万级学生管理系统考试试卷存储方案

Pengfei

力扣每日一练之数组下篇Day3

京与旧铺

6月月更

简约而不简单的Kanban方法

Bruce Talk

Kanban 敏捷开发 Agile

《清单革命》:如何忙而不乱?

郭明

读书笔记

详解python的运行方式

左手の明天

Python 运行原理

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