Kotlin--阿里一线专家带你探索实践第三十一期
2017年09月20日--2017年09月25日 分享到:

Kotlin作为Android官方支持的开发语言越来越受到程序员的欢迎:简洁的语言、与Java的无缝互译、很棒的IDE支持、且不断进化和对其他语言的思想的借鉴,如果你刚刚从事或者一直从事Android开发,Kotlin都将成为你很好的起点或新的助手。
本期专家问答我们请来了《 Kotlin极简教程 》一书作者 陈光剑 来为大家解答相关问题。

本期问答内容
1.Kotlin 有什么特性?
2.Kotlin 在 Android 中有什么优势?
3.Kotlin 未来发展前景如何?
4.学习 Kotlin 难度怎么样?

作者简介:
陈光剑
这里写图片描述

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

为了营造更好的问答氛围,我们不欢迎一切与主题无关的讨论、灌水。欢迎大家踊跃提问,陈光剑老师会为大家解答问题,并在活动结束后抽取三位幸运用户赠送《 Kotlin极简教程 》实体书一本

这里写图片描述

已结束
本期嘉宾 1505790488 69411 陈光剑 资深开发人员,目前就职于阿里巴巴集团,参与过多种平台工具的开发,具有丰富的平台开发经验,操练过Java、Android、Scala、Groovy等语言进行领域建模、架构设计、工具开发,在工作中积累了大量经验,善于总结,乐于分享,发布过大量技术文章。
2 chen09371425151372 chen09371425151372 2017.09.20 15:58提问
Kotlin 未来发展前景如何?

Kotlin 未来发展前景如何?有人说以后的Android是kotlin的天下,您怎么看?以前GitHub上关于Android的项目都是eclipse开发的,目前听说有eclipse项目都用鄙视的眼光看待,是不是以后要是说用Java开发Android的是不是也会被鄙视啊哈哈

2 universsky2015 universsky2015 2017.09.20 16:59回答

Kotlin 语言未来发展前景一片光明。

这么说吧:

  1. Google IO(2017)大会宣布Kotlin作为Android官方语言

  2. Android Studio 3 内置支持Kotlin Android开发( 这个指向性就比较明显了)

还有Spring就不用多说了,Java生态中的企业级开发中占统治地位的框架。 在 Version 5.0.0.RC4 加入了 Kotlin support 。 官方文档:https://docs.spring.io/spring/docs/5.0.0.RC4/spring-framework-reference/kotlin.html#kotlin

IDEA就不多说了,与Kotlin都是JetBrains家的,必须内置支持。

Kotlin 依赖于一个相当不同的模型。该语言的设计部分是为了 JetBrains 的内部使用。它的设计是务实的, 旨在帮助公司降低成本, 开发其广泛的开发工具线。发展和促进 Kotlin 的好处大于其成本, 关键的是, JetBrains 从 Kotlin 以外的产品中获得收入。然而, 费用是重要的。据安德烈 Breslav 在 JetBrains, 超过二十几个专职的发展和促进 Kotlin。

在这个过程中, Kotlin 已经演变成了一个 JetBrains 的效率工具。其强烈的务实取向强烈地回响着一个重要而活跃的社区, 它加速了它跨越鸿沟的运动。Kotlin 从而使 JetBrains 能够将新的开发人员带入其工具生态系统。但是不断增长的用户群也给公司带来了成功的语言经常面临的挑战: 管理用户的需求与公司自身对语言的欲望。

Kotlin 的进化有强大的经济上的支持 和 JetBrains 对开发者的长期知识将帮助它与社区合作, 在未来几年内 Kotlin 将完全跨越鸿沟, 并成为一个-或可能是主要的非 Java JVM语言, 从而再次证明了 JVM 生态系统的健壮性。

JVM 语言的兴衰 【The Rise and Fall of JVM Languages】:http://www.jianshu.com/p/bffc212e7fc1

与Groovy、Scala或Clojure等“同门师兄弟”相比较而言,Kotlin是有诸多外部条件(JetBrains,IDEA,Android Studio,Spring 5, Gradle ,Google Android 等)优势跟语言内在优秀特性(如上所述等)的。与Java 100% 互操作

Kotlin添加了大量函数式风格,它的map、filter等等操作比Java 8 Stream的来得简洁直接。另外,涉及到集合类、反射、多线程、IO等操作时,Kotlin则直接使用了Java的特性,并在Java的基础上做了易用的扩展。这点跟Groovy一脉相承。

跟Scala,Groovy, Clojure相比,Kotlin 毫无疑问会更加流行。

2 u014682445 u014682445 2017.09.20 15:41提问
Kotlin 语言未来发展前景怎么样?

Kotlin 语言未来发展前景怎么样?

跟Scala,Groovy, Clojure相比,Kotlin 会更加流行吧?

2 universsky2015 universsky2015 2017.09.20 16:54回答

Kotlin 语言未来发展前景一片光明。

这么说吧:

  1. Google IO(2017)大会宣布Kotlin作为Android官方语言
  2. Android Studio 3 内置支持Kotlin Android开发
  3. Spring就不用多说了,Java生态中的企业级开发中占统治地位的框架。 在 Version 5.0.0.RC4 加入了 Kotlin support 。 官方文档:https://docs.spring.io/spring/docs/5.0.0.RC4/spring-framework-reference/kotlin.html#kotlin
  4. IDEA就不多说了,与Kotlin都是JetBrains家的,必须内置支持。

Kotlin 依赖于一个相当不同的模型。该语言的设计部分是为了 JetBrains 的内部使用。它的设计是务实的, 旨在帮助公司降低成本, 开发其广泛的开发工具线。发展和促进 Kotlin 的好处大于其成本, 关键的是, JetBrains 从 Kotlin 以外的产品中获得收入。然而, 费用是重要的。据安德烈 Breslav 在 JetBrains, 超过二十几个专职的发展和促进 Kotlin。

在这个过程中, Kotlin 已经演变成了一个 JetBrains 的效率工具。其强烈的务实取向强烈地回响着一个重要而活跃的社区, 它加速了它跨越鸿沟的运动。Kotlin 从而使 JetBrains 能够将新的开发人员带入其工具生态系统。但是不断增长的用户群也给公司带来了成功的语言经常面临的挑战: 管理用户的需求与公司自身对语言的欲望。

由于经济学支持 Kotlin 的进化和 JetBrains 对开发者的长期知识将帮助它与社区合作, 我希望在未来几年内 Kotlin 将完全跨越鸿沟, 并成为一个-或可能是主要的非 Java JVM语言, 从而再次证明了 JVM 生态系统的健壮性。

JVM 语言的兴衰 【The Rise and Fall of JVM Languages】:http://www.jianshu.com/p/bffc212e7fc1

与Groovy、Scala或Clojure等“同门师兄弟”相比较而言,Kotlin是有诸多外部条件(JetBrains,IDEA,Android Studio,Spring 5, Gradle ,Google Android 等)优势跟语言内在优秀特性(如上所述等)的。与Java 100% 互操作。
Kotlin添加了大量函数式风格,它的map、filter等等操作比Java 8 Stream的来得简洁直接。另外,涉及到集合类、反射、多线程、IO等操作时,Kotlin则直接使用了Java的特性,并在Java的基础上做了易用的扩展。这点跟Groovy一脉相承。

跟Scala,Groovy, Clojure相比,Kotlin 毫无疑问会更加流行。

不要犹豫,现在立刻马上赶紧去学吧!

2 weixin 38401541 weixin_38401541 2017.09.20 15:33提问
Kotlin 学习难度怎么样? 曲线平缓吗?

Kotlin 学习难度怎么样? 曲线平缓吗?

Kotlin 这门语言学习曲线陡峭吗? 没学过Java 可以直接学习Kotlin 吗?

2 universsky2015 universsky2015 2017.09.20 16:22回答

Kotlin 相当易于学习——Kotlin语法简洁直观,看上去非常像Scala,但更简单。 它不遵循特定的编程哲学,如函数式风格或面向对象风格。

以下内容摘自《Kotlin极简教程》1.2.6 小节:

1.2.6 编程语言学习小结

学习一门语言大概会经历如下几步。
1.基本语法
学习任何东西,都是一个由表及里的过程。学习一门编程语言也一样。对于一门编程语言来说,“表” 就是基本词汇和语法。对于基础语法的学习,我们可以看一些简短而又系统的教程。
2.编码实践
所谓“纸上得来终觉浅,绝知此事要躬行”是也,此处就不多说,总之,要掌握基础,持续练习。
每一门编程语言的学习内容都会涉及:
 运行环境
 数据类型(数字、字符串、数组、集合、映射字典等)
 表达式
 流程控制
 类、方法与函数

等基本内容,不同的语言还有一些不同的特性。我们可以通过对比学习来加深理解,并通过大量实践深入理解,达到熟练使用。后面还要再去深入了解面向对象编程OOP、函数式编程FP、并发、异常、文件IO、网络、标准库等内容,并辅以持续的练习,这些内容才能够让你真正进入编程领域并做出实际的软件。
相信10000小时定律,“No Pain, No Gain。”
学习一门新的语言的时候,要利用以前所学的语言的功底,但是也要保持开放的心态。这些在认知心理学中有相应的讲述。感兴趣的读者可以去了解一下。
3.技近乎道
基础语法学习,能让你快速上手,应用实践。对技巧和坑的关注,一定程度上拓展了你的知识面。系统学习,一方面会进一步拓展你的知识面。另一方面,也有利于你语言知识结构的形成。
任何一门成熟语言,都有其特有的生态。这个生态包括: 框架、扩展包、解决方案、模式、规范等。
在不断编码实践过程中,我们逐步熟练使用很多API库、框架,也不断踩坑填坑、看源代码、不断解决问题,不断加深对语言的理解,同时会看一些优秀的框架源代码。
如果还有精力,我们再去学习语言更底层的东西,而不仅仅停留在应用层面。如Java中的集合类实现的算法与数据结构,如JVM是如何执行Java代码的。如Java的线程和操作系统线程的关系。以及一些操作系统方面的知识。
最后,达到游刃有余的境界。进入这一层级,基本可入武林高手之列了。
《庖丁解牛》中说到:“臣之所好者,道也,进乎技矣。始臣之解牛之时,所见无非牛者。三年之后,未尝见全牛也。方今之时,臣以神遇而不以目视,官知止而神欲行。依乎天理,批大郤,导大窾,因其固然,技经肯綮之未尝,而况大軱乎!”可以将这里的“牛”理解为我们所说的各种编程思想、编程范式、编程方法、编程技巧等等。最后,达到“运用之妙,存乎一心”之境也。
4.创造新世界
“编程的本质就是创造世界。”达到这个境界的,基本都是世界顶尖大牛了。

共7条数据 首页 2 尾页