【异周话题 第 12 期】Android 开发中 Kotlin 最终会取代 Java 吗?(已结束)

图像说明文字

【异周话题 第 12 期】Android 开发中 Kotlin 最终会取代 Java 吗?

话题背景


Kotlin 是 JetBrains 开发的一款 JVM 静态编程语言,具有现代(也有称下一代的)静态编程语言的很多特点,如类型推断、多范式支持、可空性表达、扩展函数、DSL 支持等。另外对于安卓开发还提供了 Kotlin 安卓扩展和 Anko 库。在年初Kotlin也得到了来自Spring的大力支持,相信其在服务端的开发也将有良好的表现;Kotlin Native项目在今年面世,一旦正式发布,Kotlin将可应用于原生操作系统、乃至嵌入式系统的开发。

Kotlin 语言相对 Java 有很多优势,在今年5月18日被谷歌大会宣布为 Android 官方开发语言。你认为在 Android 开发中, Kotlin 会取代 Java 吗?本周的【异周话题】我们一起聊聊 Kotlin相关 的话题。


话题内容

大家可以围绕以下一个或多个问题展开讨论:
1. 初学者如何入门 Android 开发?有哪些书可以推荐?请举例说明。
2. 在安卓开发中遇到过哪些技术难题?请举例说明。
3. 相对 Java,你认为 Kotlin 具有哪些优势?请给出你的观点;
4. 你认为新人应当如何入门 Kotlin?请给出你的建议;
5. 你认在为 Android 开发中 Kotlin最终会取代 Java 吗?请给出你的观点。

欢迎各位同学积极在文章的底部发表评论,参与话题!很多同学喜欢去百度或者知乎寻找答案,异步君不建议大家真么做。用心思考一下,就当对自己学习的总结。思考是一种学习方式,分享也是一种学习方式。


话题时间

2017年12月12日-12月17日


话题奖励

话题结束后,我们将选取 3 位讨论精彩的同学,可以从以下 3 本书中任选 1 本作为奖品:《Kotlin程序开发入门精要》《Java和Android开发学习指南(第2版)》《Java EE核心框架实战(第2版)》。获奖的 3 位用户先到先得,先私信小编的将优先选择,每本书仅赠送一本。

重要:每个用户仅允许注册一个账号参加活动,仅社区账户绑定手机号的用户,可以参与评奖。活动的最终解释权归异步社区所有。


《Kotlin程序开发入门精要》

图书作者李宁

图书简介:基于新的Kotlin版本,分3部分讲解Kotlin,第1部分(第1~11章)是Kotlin语言的基础部分,第2部分(第12~15章)主要介绍了如何用Kotlin开发Android App,第3部分(第16章)是一个完整的案例:欧瑞天气。随书赠送近70小时视频课程,包括Kotlin和Android开发,供读者学习使用,全程视频陪伴。并且通过Kotlin开发题库提供大量的测试题以及过关系统,读者可以用通关的方式更有效地学习书中的知识,提高学习的效率。



《Java和Android开发学习指南(第2版)》

图书作者[加] Budi Kurniawan 克尼亚万
图书简介:本书是Java语言学习指南,特别针对使用Java进行Android应用程序开发展开了详细介绍。全书共50章,分为两大部分。第1部分(第1章到第22章)主要介绍Java语言基础知识及其功能特性。第2部分(第23章到第50章)主要介绍如何有效地构建Android应用程序。本书适合任何想要学习Java语言的读者阅读,特别适合想要成为Android应用程序开发人员的读者学习参考。



《Java EE核心框架实战(第2版)》

图书作者高洪岩

图书简介:《Java EE核心框架实战(第2版)》语言简洁,示例丰富,可帮助读者迅速掌握使用主流开源Java EE框架进行开发所需的各种技能。《Java EE核心框架实战(第2版)》的宗旨是提高读者学习Java EE的效率,增强其项目实战能力。为此,本书摒弃了软件公司中不常用或不实用的技术,而是采用近200个开发案例,为读者讲解了开发商业软件的必备知识,帮助读者进行“精要”式的学习,汲取Java EE的思想,正确地进行项目实战。 本书适合具有一定Java编程基础的读者,以及使用Java进行软件开发、测试的从业人员阅读。


【异周话题 第 12 期】获奖名单

图像说明文字

恭喜以上 3 位获奖的同学,请 3 位同学私信小编,并提供收件人姓名收件地址邮编联系电话书名,每本书仅赠送一本,先到先得,先私信小编的将优先选择图书!小编会尽快将赠书寄到各位同学的手中!

2 推荐
  • Lucky小智 2017-12-17 16:50

    1. 初学者如何入门 Android 开发?有哪些书可以推荐?请举例说明。

    初学者从事Android开发,可以去看书(如杨丰富教师的《android应用开发揭秘》,自己感觉不错,还有这本《Google Android开发入门与实战》也适合初学者)、看视频、逛技术论坛,看Android大牛们的博客、多看代码,也可以从应用开发作为切入点,逐渐熟悉其整个体系,并慢慢渗透,从而做到软硬兼备,从学习上来说,先熟悉Java SE编程,能熟练的使用Java语言进行编程,熟悉Java语言语法特点,熟悉Java IO、Java线程等。Android应用开发学习不是轻松听课看书就可以,而是必须要动手操作,达到熟练生巧的效果,因此前面所有知识的巩固都是为了后面进行操作实战,只有将理论和实践相结合,才能更好,更快地学会android应用开发入门。

    2. 在安卓开发中遇到过哪些技术难题?请举例说明。

    1. 根据http/https的漏洞,设计检测流氓Wi-Fi SSLStrip和SSLSplit的方法。

    2.  Lottile 动画不支持硬件加速绘制。采用离线软件绘制,再使用硬件加速解决问题。

    3. 智能定时器根据电量,充电,屏幕以及当前的手机扫描记录。选择触发或者延期到条件满足再触发。这种触发条件和触发事件(插拔充电器或者熄屏)是可以配置的。设计难度较大。 最终框架由trigger,condition 和action组成。

    4. 病毒弹出框,后弹出的弹出框要优先显示。使用栈而不是列表。同时需要优雅地处理home键以及activity回收。

    5. 文件信息服务需要同时满足3个tab页面的需求。使用引用计数管理生命周期。

    3. 相对 Java,你认为 Kotlin 具有哪些优势?请给出你的观点;

    Kotlin是一门包含很多函数式编程思想的面向对象编程语言,而且相比Scala语言更容易学习。

    轻量级:相比其他编程语言,Kotlin函数库更小。由于Android存在65K方法数限制,使得这一点显得更为重要。虽然使用ProGuard或者打包成多个dex能够解决这个问题,但是所有这些解决方案都会提高复杂性,并增加调试的时间。Kotlin函数库方法数小于7000个,相当于support-v4(Android 1.6)的大小。

    高度可互操作性:Kotlin可以和其他Java类库友好且简单地进行互操作。Kotlin团队在开发这门新语言时正是秉承了这个中心思想。他们希望可以使用Kotlin继续开发现有的使用Java语言编写的工程,而不是重写所有代码。因此,Kotlin需要能够和Java很好地进行互操作。

    非常好地集成Android Studio及Gradle:Kotlin有一个专门用于Android Studio的插件,以及另一个专门用于Gradle的插件。而且即将推出的Android Studio 3.0已经集成了Kotlin,因此在Android工程中开始使用Kotlin并不困难。

    当然,Kotlin还有很多语法层面的特性,如数据模型类、扩展函数等。

    4. 你认为新人应当如何入门 Kotlin?请给出你的建议;

    多看一些关于kotlin的教学视频,网上找一些kotlin的相关资料了解一下,找一些kotlin的书籍如《kotlin实战》《kotlin程序开发入门精要》等,最好有些数学和编程基础,学起来更快,

    5. 你认在为 Android 开发中 Kotlin最终会取代 Java 吗?请给出你的观点。

    Java 是最贴近 JVM 的语言,只要在对性能还有要求的情况下,Java 依旧是 JVM 上的首选。事实上在对任何语言进行选择时,都是基于对运行效率和开发效率之间的权衡。在我看来 Kotlin 是不可能取代 Java 的(官方也从未立意过要取代),但表达能力更强的 Kotlin 在一些地方肯定会比 Java 更适合,例如一些更高层的逻辑。我觉得就会像 Unity3D 引擎用 C/C++ 来写,但是游戏逻辑会选择用 C# 一样。



    1
  • 东风玖哥 2017-12-16 20:37

    1. 初学者如何入门 Android 开发?有哪些书可以推荐?请举例说明。

    初学者想入门Android开发,应该打好Java基础。然后从简单的项目入手,由浅入深。推荐阅读《爱上Android》

    2. 在安卓开发中遇到过哪些技术难题?请举例说明。

    Java语言的设计模式在Android中有广泛的应用,但与J2EE有较大区别,这是一个比较明显的难点。推荐阅读《Android 源码设计模式解析与实战(第2版)》

    3. 相对 Java,你认为 Kotlin 具有哪些优势?请给出你的观点。

    Kotlin具有简洁性,也具有安全性。

    4. 你认为新人应当如何入门 Kotlin?请给出你的建议。

    入门Kotlin不需要Java基础,纯粹的编程新手也可以通过小项目由浅入深。建议阅读《Kotlin程序开发入门精要》

    5. 你认在为 Android 开发中 Kotlin最终会取代 Java 吗?请给出你的观点。

    Android的内核使用Java写的,所以Kotlin只能在较浅的层次代替Java,并不能在深层次代替Java。如果通读《深入理解Android内核设计思想(第2版)(上下册)》,你也会这么认为的。

    0
  • 小瑞瑞0809 2017-12-15 21:28

    1. 初学者如何入门 Android 开发?有哪些书可以推荐?请举例说明。

    答:首先对Android有一定的了解,然后根据书籍和视频进行基础学习,在这的基础上深入学习。我所学的书籍有《第一行代码》和《疯狂讲义Android》等。《第一行代码》更加的适合入门学子,书中内容比较基础。

    2. 在安卓开发中遇到过哪些技术难题?请举例说明。

    答:自己在学习过程中遇到了好多的难题,比如:UI、页面布局以及更新、数据库知识、Binder、Handle机制、IPC、运行异常等等。但这些问题都在自己的努力下一步步解决了。

    3. 相对 Java,你认为 Kotlin 具有哪些优势?请给出你的观点;

    答:它与java100%相通,可以在java虚拟机上运行,具备java尚不支持的新特性,代码编写舒适简洁,有自己独特的风格。

    4. 你认为新人应当如何入门 Kotlin?请给出你的建议;

    答:首先对Kotlin这门语言有一定的了解,然后根据书籍和视频进行基础学习。我的建议是:买一本Kotlin入门级的书, 先进行入门学习同时根据像慕课网等网站上的视频进行学习。

    5. 你认在为 Android 开发中 Kotlin最终会取代 Java 吗?请给出你的观点。

    答:我认为Android 开发中 Kotlin最终会取代 Java,因为新语言的出现使得Android开发更加的便捷,所以最终Kotlin会 成为Android开发官方语言。Kotlin与java100%相通,可以在java虚拟机上运行,具备java尚不支持的新特性,代码编写舒适简洁,有自己独特的风格。

    1
  • mywjch 2017-12-15 15:04

    1. 初学者如何入门 Android 开发?有哪些书可以推荐?请举例说明。

    《第一行代码》和《Android编程权威指南》两本书籍📚入门就够了,异步里的一些实践书也值得一看。后面去经常翻一下Android developer Reference和官网的博文,现在域名都在国内了,可以直接阅览。😊

    2. 在安卓开发中遇到过哪些技术难题?请举例说明。

    主要是自定义View,还有AIDL和NDK。不过自定义View精华掌握后感觉步入了一个新天地。🦊

    3. 相对 Java,你认为 Kotlin 具有哪些优势?请给出你的观点;

    更具实践和拓展性,毕竟是google钦定的官方开发语言,又有JetBrains的全力支持。很多特性极具现代化,函数式表达独具一格,又可以与Java最大化的和谐共处。最关键的是,作为一枚JVM语言,官方开发计划的蓝图是跨平台,带来了更多的可能。

    4. 你认为新人应当如何入门 Kotlin?请给出你的建议;

    kotlin官方的文档超级棒,可以直接在网页运行kotlin代码,所以可以直接上手学习啦。android studio也有官方的EDU插件支持,里面会有对应的练习让你入门更进一步。推荐🎉。然后就可以用android尝试啦!

    5. 你认在为 Android 开发中 Kotlin最终会取代 Java 吗?请给出你的观点。

    会的,很多大公司已经开始实践了,在我学习的过程中也感觉代码写起来确实更加舒适,不过毕竟是新语言,各种坑遇到了也是不好解决,stackoverflow的问题也比较少,对我这种面向stackoverflow编程的人来说有时候还是很难受的😂。

    1
  • Rwing 2017-12-15 12:28

    不参与活动啊,只是发现个问题,从首页“异步会议与活动”那里点进来的连接是错误的,还是上一期的连接,连接文字是本期的。

    0
    • 异步君
      异步君 2017-12-15 12:46

      感谢您的反馈,已经更新了~

异步君
异步君 V6

北京 丰台

4.4K经验值

相关技术

相关图书

相关文章