作者:Antonio Leiva

时间:Jul, 11, 2017

原文链接:https://antonioleiva.com/reasons-kotlin-android/

这组文章已到最后了,它们是非常实用的。今天我想谈谈为什么我认为学习Kotlin是非常有趣的。

虽然, Kotlin现在已是官方支持的开发Android APP的编程语言,而你仍可能觉得没有足够的理由进行改变。在这些年以来,Java已经证明其能力,为什么要改变?

这是我认为转换到Kotlin不是一个冒险的赌注,而是你可以做的最好的事情之一。

Tweet 上的相关文章:

Here are my reasons why I think that moving to #Kotlin is one of the best things you can do.

1. 语言及开发环境成熟

与其他开发语言不同(如:Swift),Kotlin发行版历经了许多阶段,然后才发布最终的1.0版本

这就意味着在使用Kotlin时几乎没有任何问题,一切都符合你的期望。

IDE的Kotlin插件运行顺畅,并且允许你使用Java以及你的喜欢许多Java特性。因此,在这个层面上说,使用Kotlin是非常棒的。

了解其最终版本之前的历程很有趣。它的Alpha和Beta版用了几年的时间。即使在Beta版本出来之前,已有开发者在实际项目中使用它了。

Tweet 上的相关文章:

#Kotlin is a mature language, been through several years of alphas and betas until its final release.

2.它使Android开发更容易

如果你一直在阅读这一系列关于Kotlin的文章,那么你已经非常清楚这一点。

Kotlin融入了许多简单的能力,如果你是从Java转来,就有种进入一个新的世界。这在Java中,你是不能想象到道。

老实说这是替代用Java开发Android优秀应用程序的唯一可行的方案。而其他替代产品(如:Scala)都非常沉重,且在编译时间和工具方面都无法与其比拟。

今天Kotlin的编译时间已经和Java类似了(在某些测试中它视乎更快),用Kotlin编写应用程序所需的库非常小,所以不会增加你的方法数量。

Tweet 上的相关文章:

#Kotlin is simplicity mixed with power. You have a new world of possibilities if you're coming from Java

3.它与Android Studio无缝集成

这听起来可能傻乎乎的,但是从第一分钟开始,一切都工作的很好,这是一个很大的优势。

您已经读过,若尝试建立一个Kotlin项目,不用10分钟就能完成了,即使你不了解Kotlin。

Tweet 上的相关文章:

You can have a project set up and ready to work in less than 10 minutes in your first use of #Kotlin

若使用Android 2.3,你只需要安装一个插件,而在3.0中,整个过程是无缝集成。

(译者注:这里Android 2.3 和 3.0 应该是指 Android Studio。)

从此所有的工作就如同使用Java一样:你能IDE运行,调试是否有问题,做重构,使用即时运行等等… 你能够想到的一切都可以使用。

4. 它的演变得到很好的覆盖

Kotlin背后是Jetbrains公司,他们在自己的项目中使用它,所以他们会更积极开发它。

另外,关于Android,它是由Google支持的,有两个大公司共同合作,能为我们提供最好的开发语言和工具。

从特性(如:Kotlin Android Extensions)到库(如:Anko),持续对库大小和构建时间的优化,都表明Jetbrains正在向Android投入大量精力。

5.如果你是Android开发人员,则需要不断学习

让我们来面对它:继续使用Java 6使我们成为“过时”的程序员

直到我开始学习Kotlin才明白了。一旦你使用现代开发语言,你就会开始以不同的方式思考。

即使你不改变开发语言,也应该将这些新知识应用到你的代码中。在Java中,现在我以不同的方式解决问题,这只是因为我在学习它们之前,我已经学到了许多以前不知道的概念。

此外,你会变得更加多才多艺。后来,我看过(甚至使用)了Swift,Groovy,Ruby等一些语言,由于它们都使用非常相似的概念,因此更容易理解它们。

诸如lambdas、扩展函数、集合函数操作、密封类、数据类等概念虽然可能有不同的名称,但是你可以在大多数现代语言中找到它们。这样在思考中,你只需要将一种语言的转换映射到另一种语言,你可以轻松地切换开发语言了。

虽然我们喜欢Android,如果准备转换到另一种语言或平台,则会为我们这类开发人员带来巨大的价值。

Tweet 上相关文章:

If you are an #AndroidDev, you need to recycle: Java 6 makes us obsolete programmers

6. 它比Java更安全

你不能想象在处理Java中的NullPointerException,我有多么累了。其实每当看到我一个人时,我觉得真的很沮丧,因为这是语言设计的一个主要的问题。

我不否认如今我们有一些工具,如注释或设计模式,可以帮助我们避免其中一部分工作。但是,像以往一样,需要额外的工作量是需要时间和资金的问题。

然而,我们不能仅谈论null。我们要全部的Kotlin代码能够:

  • 较少的错误:如果代码较少,则代码出差的几率就小,因此更加稳定。
  • 在编译时,编译器帮助你检测到错误,它们就不会在运行时发生(这是真实地显而易见)
  • 代码可读性更高、更容易理解,更难出现新的错误。
  • 因为我们避免了任何只能克服语言不足的样板,代码功能的更清晰(而不是如何)。

而且,它能够用更少的时间完成更多的工作、且更加稳定、修复Bug时间更短。

Tweet 上相关文章:

#Kotlin features translate into more work done in less time, and less time spent in fixing bugs.

7. 已有知名公司使用它开发其产品

例如,Pinterest已经在Android应用的新功能中使用它了。你可以听Christina Lee谈论,她在Pinterest上使用它的经验。

另一个是Basecamp,它们Android应用程序已经100%的Kotlin编写了。Dan Kim写道:

%ANDROID的正式开发语言。— Dan Kim (@dankim) May 17, 2017

你还可以在这几篇文章中阅读他们的经验:和。

Trello的代码也包括一些Kotlin代码:

数据点(对Kotlin好奇的Android开发人员):@trello现在很高兴地在开发中使用@kotlin。— Dan Lew (@danlew42) December 14, 2016

Kotlin网站上,你可以查看到已经有越来越多的公司在其产品中使用Kotlin来开发,且没有遇到麻烦。

8. 各家公司在其提供工作机会中正要求会使用Kotlin

不仅仅已有公司使用Kotlin,而且开发开始对Kotlin很感兴趣了。我已经在西班牙培训了一些大公司,兴趣不断增长。

企业在员工Kotlin培训方面增加资金,这是个好兆头。

9. Kotlin是多平台的

你学习Kotlin不只是为了编写Android应用程序。 Kotlin首先创建在JVM中,所以它可以在任何可以运行JVM的设备上使用

但在Kotlin 1.1中,Kotlin JS(那时只是实验性的)终于被发布,所以你也可以使用Kotlin进行前端开发

但是它并不止于此,由于感谢Gradle的支持,你将能够Kotlin中编写你的Gradle文件,并且多亏Kotlin Native,未来它将是开放平台

编写Android应用程序只是冰山一角。

Tweet 上相关文章:

With #Kotlin, you can write #AndroidDev, server, frontend, Gradle scripts and even native Apps.

10. “微小众(Micro-niches)”是非常有利可图

尽管在大多数公司中并没有采纳Kotlin,但已经有一些人正在使用它。如果这些公司要成长,他们将需要Kotlin专家

有些人掌握了几乎没有使用过的超级奇怪的语言,但是由于他们是世界上少数语言专家之一,所以他们赚了很多钱。

在Google公布后,Kotlin将不久便成为微小众,但你要脱颖而出还有一段时间。

11. 它很容易学习

Kotlin的一大优点是,Java开发人员即使没有编写过一行Kotlin代码,也能理解大多数代码

这是因为Jetbrains人非常关注由Java过渡简单性,其语言非常类似你已知的。

由于语言的简单性和IDE及编译器的帮助,你可以很快地处理语言的基础知识。

而唯一较复杂的部分是了解Java缺少的概念,而不是Kotlin语法本身。

我不认为任何人需要两个多星期的时间就能感受用Kotlin编写代码的舒适性。

Tweet 上相关文章:

An #AndroiDev can understand most of the code without ever having written a line of #Kotlin

12. 使用起来非常有趣

总之(虽然这有些主观),但我发现Kotlin真的很有趣。

对我来说,因为Java的特征限制,它的样板,和设计问题导致的错误等等,它越来越多麻烦。

然而,Kotlin为你的创意开辟了一个可能的新世界,让你以非常不同的方式解决相同的问题。

我在电脑前找到了几个小时,寻找方法来简化Android开发中的日常任务,并在此过程中享受很多。

Tweet 上相关文章:

#Kotlin opens up a new world of possibilities for you to be creative in #AndroidDev

结论

在我看来,Kotlin的开始非常友好,真的很有趣,它会扩展你的思路,让你以不同的方式思考,最重要的是,它已经准备好用于产品开发。

它现在是Android开发的官方语言!

这是30篇文章的最后一篇,为向Android开发人员介绍Kotlin,我已经发布了最近7个月了。

自那之后,发生很多事情(Kotlin 1.1和Google公布等),希望它们成为人们开始学习Kotlin并提升学习的一个很好的工具。

但是,如果您想要更快速地学习,请通过示例学习,我建议你获取书籍:Kotlin for Android Developers,通过这本书你可以学习到用Kotlin如何从头开始创建一个完整的应用程序过程。

当然,我会继续写关于Kotlin和Android的更多文章。请以保持联系!

即刻开始使用Kotlin开发Android的12个原因(KAD 30)的更多相关文章

  1. 使用Kotlin开发Android应用 - 环境搭建 (1)

    一. 在Android Studio上安装Kotlin插件 按快捷键Command+, -> 在Preferences界面找到Plugins -> 点击Browse repositorie ...

  2. 使用Kotlin开发Android

    查看我的所有开源项目[开源实验室] 欢迎增加我的QQ群:[201055521],本博客client源代码下载[请点击] 摘要 我首先声明我并没有使用Kotlin非常长时间,我差点儿是在学习的同一时候写 ...

  3. 用Kotlin开发Android应用(II):创建新项目

    这是关于Kotlin的第二篇.各位高手发现问题,请继续“拍砖”. 原文标题:Kotlin for Android(II): Create a new project 原文链接:http://anton ...

  4. 用Kotlin开发Android应用(I):介绍

    关于Kotlin,网上已有一些介绍的文章,包括Antonio Leiva的这组blog翻译稿.不过,我还是想跟进它们.翻译它们,以锻炼自己的英文翻译.各位高手发现问题,请及时“拍砖”. 原文题目:Ko ...

  5. 使用Kotlin开发Android应用(I):简单介绍

    使用Kotlin开发Android应用(I):简单介绍 @author ASCE1885的 Github 简书 微博 CSDN 原文链接 Kotlin是一门基于JVM的编程语言.它正成长为Androi ...

  6. 让你的代码量减少3倍!使用kotlin开发Android(二) --秘笈!扩展函数

    本文承接上一篇文章:让你的代码量减少3倍!使用kotlin开发Android(一) 创建Kotlin工程 本文同步自博主的私人博客wing的地方酒馆 上一节说到,kotlin可以省去getter,se ...

  7. 让你的代码量减少3倍!使用kotlin开发Android(一)

    让你的代码量减少3倍!使用kotlin开发Android(一) 创建Kotlin工程 本文同步自博主的私人博客:wing的地方酒馆 写在前面 使用kotlin开发android已经两周多了.得到的好处 ...

  8. 使用Kotlin开发Android应用(II):创建新工程

    在基本了解什么是Kotlin以及Kotlin可以做什么之后,接下来就到了配置Android Studio并使用Kotlin开发Android apps的时候了.首次配置Android Studio需要 ...

  9. [Android]使用Kotlin开发Android(二)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4829007.html [TOC] 使用Kotlin+OkHtt ...

随机推荐

  1. XXE攻防——XML外部实体注入

    XXE攻防——XML外部实体注入 转自腾讯安全应急响应中心 一.XML基础知识 XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的 ...

  2. mac终端terminal快捷键

    mac终端terminal快捷键: Command + K 清屏 Command + T 新建标签 Command +W  关闭当前标签页 Command + S  保存终端输出 Command + ...

  3. 极光IM简单接入步骤

    最近生接触了一下android,尝试导入极光的demo到android study 各种错误,然后下载极光生成的项目也是各种错误,感觉好像有点脱离时代了,记得以前用eclipse写android只需要 ...

  4. SimpleProfile_GetParameter && SimpleProfile_SetParameter

    /********************************************************************* * @fn SimpleProfile_GetParame ...

  5. Spring MVC 框架

    一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 <!--conf ...

  6. VS 2017 + EF6 + MySQL5.7 建立实体模型闪退问题

    具体环境是:VS2017 ..NET Framework 4.6 .MySql.Data.Entity 6.9.12 在这个环境下总是不成功,具体是在这一步闪退,也不报错: 在点击“下一步”后,没有进 ...

  7. 在js中获取request域中的内容

    1.可以使用小脚本<%%>实现: var pro_id=<%request.getPro_id()%>; 2.使用隐藏域实现: <input type="hid ...

  8. ElasticSearch搜索服务技术

    ElasticSearch 基于的lucene开发的搜索服务技术;天生支持分布式; Es的结构 gatway:存储层,所有的数据可以存储在本地(多个es节点形成分布式存储),hdfs输出位置,共享文件 ...

  9. 『ACM C++』 PTA 天梯赛练习集L1 | 042-43

    记录刷题情况 ------------------------------------------------L1-042--------------------------------------- ...

  10. 【usaco】1.1

    你的飞碟在这儿Your Ride Is Here(难度:入门难度) 题目链接 题目大意 emmmm 输入两个字符串,问他们每个字母的asco码相乘后字符串是否相等. 思路 一道水题?(雾) 错误代码: ...