【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

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

关注

评论

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

🏆【Alibaba中间件技术系列】「RocketMQ技术专题」系统服务底层原理以及高性能存储设计分析

洛神灬殇

RocketMQ 阿里巴巴‘ Alibaba技术 Apache RocketMQ 1月日更

微信业务架构图 & 学生管理系统架构设计

阿卷

架构实战营

Linux之cal命令

入门小站

(1-18/18)推播式营销vs.集客式营销

mtfelix

300天创作 2022Y300P

低代码实现探索(二十九)混合式低代码

零道云-混合式低代码平台

ShardingSphere JDBC 分库实现多数据库源

Java 数据库 分库分表 Apache ShardingSphere

kali权限提升之本地提权

喀拉峻

网络安全 信息安全 提权

测试工程师的职场发展二三谈

老张

自动化测试 解决方案 职场发展

🏆【Alibaba中间件技术系列】「Nacos技术专题」服务注册与发现相关的原理分析

洛神灬殇

微服务 nacos 注册中心 Alibaba技术 1月日更

用明道云落地高校业务之优秀网站评选

明道云

音视频开发学习:HLS 协议详解

赖猫

c++ 音视频 ffmpeg HLS 音视频开发

C/C++开发方向如何选择?坚持C++还有意义吗?

赖猫

c++ Linux 服务器

构建多架构镜像的最佳实践

xcbeyond

Docker arm docker image xcbeyond 1月月更

在springboot中,如何读取配置文件中的属性

华为云开发者联盟

springboot value 映射 配置文件 RequiredArgsConstructor

零代码平台——业务人员的知识变现工具

明道云

PDF 文件如何转成 markdown 格式

Jerry Wang

markdown PDF pdf.js 1月日更 1月月更

JavaScript 基本数据类型转换

编程三昧

JavaScript 前端 1月月更

《腾讯云原生在线技术工坊》实践体会

穿过生命散发芬芳

腾讯云 云原生 1月月更 实践体会

用Java实现线段树

CRMEB

【网络安全】详细记录一道简单面试题的思路和方法

H

网络安全

Go len() 函数是如何计算长度的?

宇宙之一粟

Go Go 语言 1月月更

(1-19/19)市场和销售分别该怎么干

mtfelix

300天创作 2022Y300P

明道云帮助外贸行业实现数字化管理

明道云

使用 React 和 Next.js 构建博客

devpoint

React nextjs 1月月更

ReactNative进阶(二十八):ES6 Symbol 用法

No Silver Bullet

React Native symbol 1月月更

冬奥探秘:那些隐匿在冬奥中的“绿科技”

脑极体

在线XML转CSV工具

入门小站

工具

22 Prometheus之Docker监控简述

穿过生命散发芬芳

Prometheus 1月月更

减少技术债务的系统方法

俞凡

技术管理 大厂实践 技术债务 Zalando

大白话讲解JDK源码系列:从头到尾再讲一遍ThreadLocal

慕枫技术笔记

后端 1月月更

第七周作业

lv

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