高手问答第 174 期 —— 阿里一线专家和你一起探索 Kotlin

局长 发布于 2017/10/24 19:57
阅读 4K+
收藏 20

OSCHINA 本期高手问答(10 月 25 日 - 10 月 31 日) 将由@陈光剑为大家解答关于 Kotlin 方面的问题。

陈光剑,资深开发人员,目前就职于阿里巴巴集团,参与过多种平台工具的开发,具有丰富的平台开发经验,操练过 Java、Android、Scala、Groovy 等语言进行领域建模、架构设计、工具开发,在工作中积累了大量经验,善于总结,乐于分享,发布过大量技术文章。

自从谷歌宣布 Kotlin 成为 Android 官方支持的开发语言后,它在开发者中的热度一直在持续爬升,凭借着其简洁的语言、与 Java 的无缝集成、优秀的 IDE 支持、且不断地改进和对其他语言的思想借鉴,使得它越来越受开发者欢迎。如果你刚刚入门或者一直从事 Android 开发,Kotlin 都可成为你值得考虑的选择。

然而对于这门新兴的语言,相信大家依然会有不少困惑。因此,本期高手问答邀请到了陈光剑老师为大家解答 Kotlin 的相关问题。

本期问答内容:

  1. Kotlin 有什么特性?
  2. Kotlin 在 Android 中有什么优势?
  3. 与 Java 比较,有什么优缺点?
  4. Kotlin 未来发展前景如何?
  5. 学习 Kotlin 难度怎么样?

或有其他关于 Kotlin 的问题,也欢迎大家积极提问!

为了鼓励踊跃提问,@华章 会在问答结束后从提问者中抽取 5 名幸运会员赠予《Kotlin极简教程》一书。

购买链接:https://item.jd.com/12181725.html

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。
下面欢迎大家就微服务方面的问题向
@陈光剑提问,请直接回帖提问。

>>>往期 Kotlin 主题高手问答:https://www.oschina.net/question/2720166_2246327

加载中
1
华章
华章

OSC 第 174 期高手问答 -- 阿里一线专家和你一起探索 Kotlin

@aruis    @jetliu1987    @myw31415926    @orpherus    @无著方知尘亦珍

恭喜以上五位网友获得Kotlin极简教程一本

请私信@华章 告知快递信息(格式:姓名+电话+地址+邮编)

1
zhaowweny
zhaowweny

@东海陈光剑 您好,我有几个疑惑想请教一下,有些可能不仅限于Kotlin:

1. Kotin乃至新的编程语言有没有出现的必要?和改进原有语言相比是否会增多成本,比如学习成本、维护成本等等,毕竟一门主流语言的普及很不容易;

2. 新语言和旧语言的应该如何区分,难道仅仅是语法上更简洁易用?如果已经熟练掌握旧语言,新语言有必要学习吗?毕竟职业生涯有限,一门流行语言的生命周期还是比较长的,而新语言的稳定性、兼容性怎么在短时间内解决;

3. 创建新语言的初衷是什么 ?是为了某个平台,还是尽量能够兼顾多个平台?如果这个平台变化了甚至淘汰了,那么这么语言的出路又怎么样?

最后想提一下swift,这个语言毕竟是苹果的,而且它的平台相对很稳定,可是推出很长时间了,感觉并不是好评如潮,而且版本更迭还不稳定,和OC相比,swift是否本就不该出现。另外现在使用web技术开发桌面、移动应用也很火热,为什么还要创造一个并不是在各个方面基本上有绝对优势的新语言呢?谢谢!

东海陈光剑
东海陈光剑
您可以关注微博: http://weibo.com/oranread PYPL PopularitY of Programming Language TIOBE INDEX 了解目前世界上最流行的编程语言。 新语言本质上都是为了解决实际的问题,或者旧语言的缺点而产生。无论是 从 BCPL ---> B ---> C --->C++/Java/C# --->Kotlin .....
1
aruis
aruis

@东海陈光剑 陈老师好,我总结了下自己的观点。希望能抛砖引玉。JVM平台支持的语言其实很多,但是除了Java,基本还是Groovy、Scala、Kotlin有分天下之势。Groovy发展很多年了,现在看些国外的数据,其实它被接受程度已经很高了。但是在国内并不火,坊间流传着Groovy作者的一句话“如果早知道会有Scala的话,我就不用发明Groovy了”,导致国内很多人对Groovy方面不看好,但其实我认为这句话只是老外对自己的幽默及谦逊的一种表达。Scala,在学术领域、数据领域的确有一席之地。而Groovy在传统Java Web领域应该是有很好的优势的。大概两年前的时间,Groovy提供了对Android开发的支持,我第一时间试用,结果效果很不理想,比Java开发出的程序要卡慢太多。Kotlin此次对安卓的支持,我还没有动手测试,但是从Google的态度和社区的热度,可以看出来,应该比Groovy在这方面强很多。

所以我的问题是这样,在Android开发方面,用Kotlin替换Java是很不错;但是在Java Web方面,如果已经对Groovy有过大量投入的项目和团队,再去想学习并替换成Kotlin,能带来哪些好处?您觉得有无必要?还望不吝赐教。

东海陈光剑
东海陈光剑
如果团队使用Groovy 没有任何问题需要寻求解决的话,那完全可以继续使用。。。 语言没有好坏,只有适合,跟爱情一样。。。
0
笨笨小锅锅
笨笨小锅锅

@东海陈光剑在web开发方面,kotlin能够取代java么?

东海陈光剑
东海陈光剑
是的。Spring 5中都在使用 Kotlin。 SpringBoot 无缝集成 Kotlin 开发: http://www.jianshu.com/p/6bff385f9c07
0
CodingNew
CodingNew
除了安卓,在企业开发中,有可能取代java吗?
东海陈光剑
东海陈光剑
有。
0
笨笨小锅锅
笨笨小锅锅

@东海陈光剑如果kotlin取代java开发web服务端的话,是不是会很大程度提高服务端开发效率

东海陈光剑
东海陈光剑
肯定的。
0
jetliu1987
jetliu1987

@东海陈光剑 初步了解了一下,Kotlin相当于扩展了Java的高级语法的功能,但是Kotlin有没有可能在大数据、机器学习领域大展拳脚?

东海陈光剑
东海陈光剑
回复 @渡世白玉 : 赞同。
渡世白玉
渡世白玉
回复 @jetliu1987 : 是的,scala的api比java的api,在一些处理上舒服多了。但是就是用java的api,用KT也比java舒服的多。
jetliu1987
jetliu1987
回复 @渡世白玉 : spark上开发最好使用scala语言吧。
渡世白玉
渡世白玉
我在spark上用过kt, 比java好用多了、、
0
归园田居
归园田居

@东海陈光剑 kotlin可以像java那样进行web开发吗?

渡世白玉
渡世白玉
回复 @东海陈光剑 : 还有vertx也直接支持kt的,还有kt的协程模块。
东海陈光剑
东海陈光剑
是的。Spring 5中都在使用 Kotlin。 SpringBoot 无缝集成 Kotlin 开发: http://www.jianshu.com/p/6bff385f9c07
0
黑色燚HOW
黑色燚HOW
@东海陈光剑 您好,我想问下本书比官方的语法文档有什么优势?谢谢
东海陈光剑
东海陈光剑
看了就知道啦。
0
东东-
东东-

@东海陈光剑 阿里为何不直接推广 Kotlin 而推广<<Java 规范手册>>. Kotlin 不就是规划的 Java 吗.

东海陈光剑
东海陈光剑
Java 是基石, Kotlin 是未来。
返回顶部
顶部