关于KotLin,在学习的过程中还需要思考的问题

背景

  Google I/O 2017已经结束了几天了,除了狂拽酷炫吊炸天的AI技术,吸引万千少女的Google Lens等等一系列的产品更新之外,不得不提的一个是——Kotlin
  Kotlin,代替了Java成为了开发Android的第一语言(也许这样说法不是很严谨,但是或许事实就是这样)。Kotlin的兴起不是一朝一夕的。对于这门语言我不需要做太多的介绍,因为你很有可能已经在很多其他的资料中对这个语言的来历有了非常多的了解。
  我没有在第一时间写关于Kotlin的文章,是因为我在学习这门语言。并且用Kotlin重构了一下自己以前的一些项目,尽管新的Android Studio 3.0已经有了将java代码转换为Kotlin代码的功能。我觉得这是有必要的。接下来我想说一下我这几天学习的体会以及自己对这门语言的一些看法。

如何学习Kotlin

  这个问题我想是很多查找关于Kotlin相关资料最想了解。我该怎么学?目前不仅国内,连国外的没有非常权威的教材。有的只是Antonio Leiva的关于Kotlin的PDF(其实这一本PDF还是使用的Android Studio 2.3 来开发的,那时候Kotlin只是一个插件)。我想说的是,这本电子书是一个非常好的学习材料。中文版下载
  跟着PDF里面的知识一步一脚印去学是一种上手非常快的方法。但是值得注意的是,PDF中存在着一些坑。这些坑我在文章的最后补充。
  在这里我极力推荐非常想学好Kotlin的去这个网站。这是练习Kotlin最好的地方,没有之一。这里不仅有Example,还有Task。我后期学习Kotlin的大部分时间都花在了这个地方,对我的帮助是极大的。
  

技术之外,我们可能还需要去思考的一些事情

  关于Kotlin的技术方面的话我真的不想说太多,关于它,我表现的与以前不同,不想去聊技术,因为就是一门语言。再怎么装饰它就是一门语言。一个有基础的程序员如何在极短的时间内掌握一门语言并且不断地去深入了解,也许并不是难事。
  但是有一些事,我们可能要花许许多多的时间去了解、去思考。除了技术之外可能这些事情要显得更为重要。
  

  1. Android的Swift?IOS开发有OC与Swift,苹果如今推崇使用Swift,简洁、优雅。Swift如今越来越成熟。如今Android有Java与Kotlin。Kotlin成为开发Android的第一语言除了有Google与Oracle的官司因素之外,我想更多原因可能是Google在为许多的混合开发者提供一种学习代价最小的原生平台。Kotlin与JavaScript的很多习惯极其的相似。当然Kotlin相对于Java or JavaScript来的更加凶猛,更加强大。开发者团队的壮大,必然使得一门学科发展更为迅速。Android的市场垄断会越来越强。我想这是Google推崇Kotlin的重要原因。

  2. 对于Kotlin到底是应该欣然接受还是保留态度?Swift推出了几个年头,虽然被完善的非常的强大。但是不得不承认,大部分的应用主体还是OC来写的。虽然很多项目在慢慢的使用Swift去重构,抛开优胜略汰不说,若干年之后,OC在哪里?也许以后没有人会再去写OC。回到Kotlin,Google通常的风格是说到做到,放弃Eclipse改用Android Studio的决定不到两年,github,大小公司。都基本普及了Android Studio。IDE的更换是小事。但是可以看出Google的态度。Kotlin以后成为主流是必然的。但是Java绝对不可能给埋没。我对Java是情有独钟。我非常的欣赏这门语言。尽管以前学C的时候非常的抗拒它。如今各大网站,博客对Kotlin更是疼爱有加,好声音基本是一面倒。当所有人都认为是好事的时候,其实需要反思的事情就很多。Kotlin简化了Android开发人员的工作,但是对后来者是否真的是一件好事?以前很多复杂的事情一条语句就能搞定,固然对于工作来说是好事,毕竟没有谁想天天加班。但是这对于开发者深入理解机制、底层是否真的还像以前一样容易?以前做的复杂的事多了,项目经验的积累,对底层有了很大的理解。但开发流程变得简易之后,了解底层的机会是否还和以前一样的多?

  3. 为何要了解底层?作为一个想要进步的程序员,如果一直只是停留在高层软件开发,终究有一天你会因为技术更新而疲于学习。当你了解一个新事物的原理的时候,它的难度会降低许多 ,学习的代价也会相对降低。

  4. 再遇Android皆Kotlin,从此Java是路人。我不是顽固的保守派,也不是一面说好的激进派。如果有人要说我不了解Kotlin,了解了之后就不会抗拒,我想和你说,我了解的Kotlin可能不比你少,我花在Kotlin的时间也是非常多的,我接受它。但同时我保留我思考的权利。

  5. 以上言辞仅代表我个人思想,好坏参半。每个有都有独自思考的权利,言有过失,就当看戏。

Kotlin-pdf中的一些坑

   Antonio Leiva的Pdf中有一些数据类已经过时,会导致Gson无法解析数据。原因是因为api返回的json已经改变了,下面贴出自己修改过的数据类(只贴出一部分。因为只有那一部分出错)

Forecast.kt pdf中的temp字段已经改为main

package org.hades.weather_kotlin.bean

/**
 * Created by Hades on 17/5/23.
 */
data class Forecast(val dt : Long,val main : Temperature,val weather : List<Weather>) {
}

Temperature.kt 同上也是字段出错。

package org.hades.weather_kotlin.bean

/**
 * Created by Hades on 17/5/23.
 */
data class Temperature(val temp : Float,val temp_min : Float , val temp_max : Float,
                       val pressure : Float , val sea_level : Float, val grnd_level : Float,
                       val humidity : Float, val temp_kf : Float){
}

Coordinates.kt

package org.hades.weather_kotlin.bean

/**
 * Created by Hades on 17/5/23.
 */
data class Coordinates(val lat : Float , val lon : Float){
}

以上是我的一些体会,好坏参半。
kotlin项目的地址:https://github.com/GeekHades1/weather_kotlin
最后祝大家,工作学习顺利。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值