你与高薪仅差一本Kotlin

举报
G-washington 发表于 2019/12/09 12:31:48 2019/12/09
【摘要】 可能很多读者看到Kotlin这个单词会感到很陌生,这很正常。就和2007年以前一样,在苹果公司推出iPhone以及相应的开发工具之前,Objective-C就鲜为人知,至少在国内是这样的。上面提到的Objective-C是一种编程语言,而本书的主题是Kotlin,那么首先要回答的是,Kotlin到底是什么呢?没错,Kotlin和Objective-C一样,是一种编程语言。

 谷歌在17年举行的I/O开发者大会上宣布,将Kotlin语言作为安卓开发的一级编程语言。于此同时,Kotlin语言一出就上了各大IT门户网站的头条,百度搜索达到300万条,招聘公司已经开始高薪找人,今天小编带你了解一下Kotlin,并推荐一本Kotlin入门书《Kotlin程序开发入门精要》



image.png


Kotlin是什么?

      可能很多读者看到Kotlin这个单词会感到很陌生,这很正常。就和2007年以前一样,在苹果公司推出iPhone以及相应的开发工具之前,Objective-C就鲜为人知,至少在国内是这样的。上面提到的Objective-C是一种编程语言,而本书的主题是Kotlin,那么首先要回答的是,Kotlin到底是什么呢?没错,Kotlin和Objective-C一样,是一种编程语言。

      Kotlin是由JetBrains创建的基于JVM的编程语言,那么JetBrains又是什么呢?我相信很多Java程序员使用过IntelliJ IDEA,这个非常棒的Java IDE(集成开发环境)就是JetBrains的杰作。如果你没听过或没用过IntelliJ IDE,那么也没有太大关系。相信阅读本书的读者或多或少都了解一些Android的知识,Android官方推荐的IDE是Android Studio,简称AS。这个IDE就是基于IntelliJ IDEA社区版开发的。JetBrains旗下不只有IntelliJ IDEA一款产品,Kotlin也是JetBrains旗下的一款产品,一种编程语言。这种编程语言运行在JVM上,也就是Kotlin编译器会将Kotlin源代码编译成Java Byte Code(Java字节码),可以直接运行在JVM上。从这一点看出,在技术层面,Java和Kotlin是同一个级别的,都以Java Byte Code形式运行在JVM上。当然,Kotlin编译器还可以将Kotlin源代码编译生成JavaScript代码,以便在没有JVM的情况下运行。在未来,Kotlin编译器还可以将Kotlin源代码编译生成本地代码,完全脱离任何虚拟机运行,也就是说,Kotlin相对Java的优势之一是多目标编译语言,而Java只能编译生成Java Byte Code(.class文件)。

为什么Kotlin突然成为热门?

      尽管Kotlin已经推出有很长一段时间了,但并不怎么出名,可能是因为JetBrains对它的推广力度不够,加之现在的编程语言实在太多了,所以Kotlin就像一块石头扔进了大海,不见了踪影。

      那么为什么现在Kotlin突然成为热门了呢?原因也很简单,Kotlin可以开发Android App,而且被Google公司选为开发Android App的一级语言,即在Android Studio 3.0及以上版本中会支持利用Kotlin语言开发Android App。这也就意味着,到目前为止,开发Android 本地App可以使用Java和Kotlin两种编程语言。这就很像开发iOS App的场景了,可以使用Objective-C和Swift两种语言开发iOS App。因此,很多人把Kotlin比作Android世界的Swift。而且Kotlin和Swift的确都是很棒的编程语言,都加入了很多“语法糖”,可以大幅提高程序开发的效率。

Kotlin相对于Java有哪些优势?

      可能很多读者会问,既然有了Java,为什么Google公司还要选择Kotlin来开发Android App呢?Kotlin相比Java有哪些优势呢?

      在这一节我们来简单了解一下Kotlin的特点,通过这些介绍,我们可以体会到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还有很多语法层面的特性,如数据模型类、空类型安全、扩展函数等,这些技术将会在后面的章节介绍中展开。

Kotlin能做什么?

      从前面的内容可以知道,Kotlin可以用来开发Android App,那么除了Android App,Kotlin还可以做什么呢?在本节我们就来一窥究竟。

1.服务端开发

      既然Kotlin是基于JVM的编程语言,那么自然而然就可以使用所有基于JVM的服务端框架。下面是几个Kotlin官方文档推荐的框架。

  • Spring:一种开源框架,是为了解决企业应用程序开发复杂性问题而创建的。从Spring 5开始,Spring就已经支持Kotlin的新特性了,并可以使用Spring在线生成器(https://start.spring.io)生成基于Kotlin的工程。

  • Vert.x:用于建立基于JVM的响应式Web应用的框架。

  • Ktor:由JetBrains发布的一款基于Kotlin的本地Web框架

  • kotlinx.html:是一种DSL(领域专用语言),用于在Web应用中生成HTML。Kotlin服务端框架和kotlinx.html的关系就像JSP和FreeMarker的关系一样,FreeMarker是基于Java的模板引擎。使用FreeMarker,可以不依赖于HTML或其他技术,可以根据需要生成HTML或其他东西,也就是一种与具体渲染技术无关的技术。

2.以JavaScript方式运行

     Kotlin提供了生成JavaScript源代码的能力,也就是将Kotlin代码直接转换为JavaScript代码。目前,支持ECMAScript 5.1标准,未来会支持ECMAScript 6。

      注意,如果将Kotlin代码转换为JavaScript代码,在Kotlin代码中只能包含Kotlin标准库,不能包含任何JDK API以及任何第三方的Java Library API,任何不属于Kotlin本身(Kotlin语句和标准库)的部分在转换的过程中将被忽略。

3.开发Android App

       这一部分在上文提到过,Kotlin和Java一样,都可以开发Android App,而且Kotlin和Java源代码文件可以在同一个工程中,可以联合进行调试。

      尽管Kotlin能做很多事(Java能做的,Kotlin都能做),但本书的主要关注点是开发Android App,因此,在本书后续部分将着重介绍如何利用Kotlin开发Android App。

Kotlin入门,怎么学?

一本全程视频陪伴贴心跟踪初学者学习效果的Kotlin开发书

《Kotlin程序开发入门精要》


image.png

点击图片查看详情)

编辑推荐

1基于最新的Kotlin版本

2本书分为三部分:Kotlin基础、Android开发和项目实战,读者通过对本书的学习,不仅可以掌握Kotlin的知识,还可以将Kotlin用于项目实战。

3赠送近70小时视频课程,包括Kotlin和Android,供初学者学习使用

4通过极客题库提供大量的测试题以及过关斩将系统,读者可以用通关的方式更有效地学习书中的知识

5随书赠送价值300元优惠卡,可以用于购买李宁老师其他视频课程以及现在及未来提供的其他服务

6有问题的学员可以通过欧瑞科技(创始人是李宁)的问答社区区(https://geekori.com提问,会有专人回答读者提出的问题,以及通过博客系统总结书中学到的知识,同时,提出问题、回答问题以及撰写的博客越多,就会增加读者的积分,以后学习李宁老师其他的课程和获取其他资源,会有更大的优惠。

仅仅一本书怎么行?海量视频、海量习题快速入门


image.pngimage.pngimage.png



更多Android类好书,扫码查看


20170901082344634


20170901082433815


本文转载自异步社区

原文链接:https://www.epubit.com/articleDetails?id=NC7E3EF9519000001FAF61220C2447640

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。