31
回答
高手问答第 197 期 —— Kotiln “上位”一周年,Kotlin 问答专场等你提问!

OSCHINA 本期高手问答(2018 年 5 月 15 日 — 5 月 21 日)我们邀请到了欧阳燊老师@ouyangshen 和大家一起探讨有关 Kotlin 开发的问题。

Kotlin 诞生于 2011 年,作为后起之秀的它虽然拥有代码简洁、函数式编程、更安全健壮、完全兼容 Java 等诸多特性,即便拥有诸多优秀的特性,然而 Kotlin 刚问世的前几年发展得一直不温不火。

直到近两年,在 JetBrains、Google 等巨头的大力扶持之下,Kotlin 的发展才驶上了快车道,先是在 2016 年 2 月推出 Kotlin 1.0 发布版,再是谷歌在 2017 年 5 月宣布将 Kotlin 作为 Android 的官方开发语言,然后在 2017 年 10 月推出的 Android Studio 3.0 正式集成了 Kotlin 开发环境,紧接着更完善的 Kotlin 1.2 正式版在 2017 年 11 月发布。

正如当初 Android Studio 取代 Eclipse 成为 Android 开发的主流开发工具一样,在可预见的未来,Kotlin 必将逐步取代 Java 成为主流的 App 开发语言。被寄予厚望的 Kotlin 在编程工作中给开发者带来的巨大便利毋庸置疑,大量的开发实践表明,相对于 Java,Kotlin 大大减少了编写的代码量。再加上巨头的背书,相信 Kotlin 的发展潜力无限!

Kotlin 的前景如此美好,本期的高手问答主题是 Kotlin,欢迎大家就 Kotlin 相关的任何问题进行提问。

欧阳燊老师有 14 年以上软件开发经验,熟悉 C/C++、Java 及相关软件架构,4 年 Android 开发经验,从事一款用户量超千万的 App 项目开发,对 Android 开发拥有丰富的实战经验,对于 Android 开发涉及到的编程语言都十分熟悉,本期高手问答十分有幸邀请到欧阳燊老师,欢迎大家踊跃提问。

为了鼓励踊跃提问,@局长  会在问答结束后从提问者中抽取 5 名幸运会员赠予《Kotlin从零到精通Android开发》一书。

图书购买地址:京东当当天猫

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就相关问题向欧阳燊老师提问,请直接回帖提问。

举报
局长
发帖于4个月前 31回/3K+阅
共有31个答案 最后回答: 4个月前

@ouyangshen 您怎么看 Kotlin 在服务端的发展?我们现在已经在使用 Kotlin 开发服务端了,总体体验还不错,但也有些槽点,data class,框架支持等。不管怎么样还是很看好 Kotlin,希望能够更好支持服务端开发

--- 共有 5 条评论 ---
DevidGe 回复 @hookszhang : 本来就是,语言的产生都是各有应用场景,真正的程序员没必要拘泥于一种语言,找到最适合的应用场景就是经验的体现。 4个月前 回复
hookszhang 回复 @DevidGe : Kotlin 和 Java 结合这个思路确实启发我了,有些 Kotlin 支持不好的地方用 Java 写,Kotlin 写起来方便的就用 Kotlin,不必局限于只使用一种,充分发挥各自的优点就好了 4个月前 回复
ouyangshen 回复 @DevidGe : 嗯,你说的有道理 4个月前 回复
DevidGe 回复 @ouyangshen : Kotlin是JetBrains的跟Google有啥关系,Google只是用来作为Android官方语言,安卓又不是服务端。 用Kotlin开发服务端一定要打破思维,不要局限于Kotlin,Kotlin和Java结合才是最高效的! 4个月前 回复
ouyangshen这个问题很有技术含量,服务端的Kotlin前景如何,我觉得要看谷歌的野心有多大了。 4个月前 回复

@ouyangshen 自己一直也在关注Kotlin. 在google宣布官方支持它之前的一段时间, 偶然看到这个语言的介绍. 后面有小的项目机会也试了一下. 与Java比确实有优势, 毕竟属于现代语言的范畴, 各种新的功能特性都有. 不过感觉现在Kotlin在自身还不太稳定的情况下, 四处出击, 把摊子铺的有点大, 对语言后面发展不一定是好事呀? 语言更新迭代太快(1.x好很多了), 功能增加也比较频繁, 各种关键库和生态还没有成熟, 却想一心想搞个大一统的语言(Java/JavaScript/WebAssemble/Native). 希望您谈谈语言发展方面的看法. 谢谢.

--- 共有 5 条评论 ---
JarvanMo 回复 @xiaoaiwhc1 : 按部就班的swift就是swift3升级到swift4一片红。 4个月前 回复
DevidGe 回复 @SuShine : 有啥不稳定的,一路从1.0.6,每次升级都升,很稳定! JetBrains可是号称最严谨的公司,不是微软、苹果之流! 4个月前 回复
xiaoaiwhc1我这里所讲的"稳定"是一种总体的观感. 比如版本迭代太快会导致兼容性问题, 一些库的更新可能引入break change, 代码质量不够高, 不太关注性能问题 等等. 可以类比一下 Swift, 同样是苹果强推, 但给人一种按部就班的感觉, 路线图很清晰. 当然, 这些也只是我个人见解了. 4个月前 回复
SuShine没感觉到不稳定 4个月前 回复
ouyangshen你想到的这些东西,谷歌公司肯定也想到了。既然谷歌力挺Kotlin,说明这些都不是什么问题,前不久的谷歌开发者大会,其中提到“在过去一年里,有35%的专业Android开发者在使用Kotlin,其中95%的开发者都对Kotlin非常满意”,里面的态度倾向不言而喻。 4个月前 回复

@ouyangshen 自从去年接触kotlin一来,公司中所有新开发的android项目基本都用kotlin了,对kotlin还是蛮期待的,想请问一下老师对kotlin native和android-ktx未来发展的前景。

--- 共有 1 条评论 ---
ouyangshen按照kotlin native和android-ktx的发展趋势,以后开发App的效率要高了不少。试想,有人用Kotlin好比骑电动车,有人用Java好比骑自行车,谁办事更利索? 4个月前 回复

@ouyangshen 请问一下,对于Android开发来说,kotlin相对java的优势有哪些?就只有一些语法上的优势嘛?例如语法糖这些,如果只有这些优势,替代java还任重道远啊

--- 共有 2 条评论 ---
张伟斌卍空指针安全是蛮重要的一个优势 4个月前 回复
ouyangshenKotlin的下述语法是java不支持的:空安全、扩展函数、默认参数、代理属性、委托方法等等。 4个月前 回复

@ouyangshen kotlin native 可以编译为原生二进制文件,那么是否可以代替go这样的语言呢,是否有自动gc功能呢?

--- 共有 4 条评论 ---
大王来巡山 回复 @xiaoaiwhc1 : 也就是说短期来说,运行效率是比不上的? 4个月前 回复
xiaoaiwhc1kotlin native 用的是ARC技术,目前还没到1.0。但估计native所带来的效率与 go/java/swift相比,那估计短期无望了,只能从开发效率和语言适用性上来弥补。 4个月前 回复
卖爷爷的老红薯 回复 @ouyangshen : Go能做的东西,kotlin都能做。Kotlin能做的一些工作,例如安卓/IOS,Go还真做不了。 4个月前 回复
ouyangshenkotlin跟go语言应该井水不犯河水,二者的设计目标就不一样。 4个月前 回复

@ouyangshen 从java,换到kotlin 开始不是很习惯,代码量是减少很多,

目前java也不断升级,很多kotlin的语法糖,java也都在实现,

未来java与kotlin两者您是怎么看待呢?

--- 共有 3 条评论 ---
张伟斌卍再加糖也没法补救空指针异常 4个月前 回复
Raphael_gohAndroid的java版本不是想升就升的,需要系统支持,Kotlin支持编译到指定的java版本这个功能哦,server端可以无视 4个月前 回复
ouyangshenJava是甲骨文公司的,谷歌在官司上吃了大亏,断然不可能继续被甲骨文抓住小辫子。 4个月前 回复
顶部