Java 10 发布,是时候关注 Kotlin 了

Kotlin 发布

Kotlin 是一门运行在 JVM(Java 虚拟机)上的现代编程语言,静态语言,因为目标是取代 Java,所以,Java 可以做的事情,可以待的地方,Kotlin 都能做,都能去。Java 不能做的事情,Kotlin 也能做。

Kotlin 并不是一门新语言,它诞生于2011年,是 JetBrains 公司开发的。写过 Java 程序的程序员有可能不知道 JetBrains,但是没听过 IntelliJ IDEA 的应该不多。IDEA 是 Java 领域最杰出的开发工具,一出道就与 Eclipse 并驾齐驱,深得 Java 程序员喜爱。IDEA 的特点是什么呢?效率高,入门简单,支持的开发框架范围极广,快捷键堪比 Vim,小白与大师级程序员的主要区别是用 IDEA 的时候碰不碰鼠标。和 Eclipse 不同,IDEA 一出生就充满了贵族的气息……嗯,主要是贵,一年差不多一千多人民币,还不打折。

这么贵会有人买吗?有啊,还年年买,因为在程序员的世界里,我们认为,贵就是好。

IDEA 为 JetBrains 带来了巨大的现金流,于是该公司令人发指的为每一个热门语言开发了一套 IDE,比如 PyCharm,Golang,Clion,PhpStorm,RubyMine,WebStorm……IDE 们立功了,它们一网打尽天下喜欢花钱的程序员,没有给 Eclipse 任何机会。

终于,JetBrains 开始不满足研发 IDE……因为给 Java 做 IDE 年头最久,Jet 的工程师们对 Java 语言的理解可谓丝丝入扣,知道哪里有问题,哪里有缺陷,哪里需要改进……有多少爱就有多少恨,于是他们决定开发一门语言替代 Java —— 别惹程序员现代版本:)

说干就干,2011年 Kotlin 发布,2012年开源,2016 发布1.0,迅速赢得之前不得不热爱 Java 的程序员响应,可谓振臂一呼,应者云集。2017年,Goolge I/O 大会宣布,Kotlin 语言成为 Android 平台开发一级语言。至此,Kotlin 完成了丑小鸭到公主的蜕变,开始突飞猛进,最新版本是 1.2。

Kotlin 命名

为什么这门语言叫 Kotlin 呢?和 Java(爪哇岛)有啥关系么? Kotlin 是俄罗斯圣彼得堡团队开发的,他们想和 Java 一样用一个岛来命名新语言,于是找到了位于圣彼得堡以西 30 公里处芬兰湾的一个科特林岛,英文就是 Kotlin,一门新的编程语言诞生了。

Kotlin 就像所有具备雄心壮志的小弟一样,目的就是取代 Java,坐上大哥的位置,现在进展如何呢?在编程排行榜上,Java 依然稳稳的坐在一哥的位置,俯视群雄,Kotlin 则以火箭般的速度从一个籍籍无名之辈进入了前四十。就像所有的黑帮片一样,想要坐上大哥的位子并不是那么容易的,Java 花了十几年的时间打败了 C,C 依然排在第二位,下一个王者是谁,没有人知道,但是这件事一定会发生,只是什么时候和由谁完成的问题。

Kotlin 具备这样的素质。

Kotlin 的应用场景和特点

Kotlin 可以开发强大的服务器端应用。简明和表现力强的代码,与 Java 的完全兼容和平滑的学习曲线足以让程序员选择 Kotlin 在服务器端编程。Kotlin 支持安全类型推断和委托属性,引入了协程的概念可以编写高可用服务,还有大量的第三方框架可用,比如 Spring、Vert.x、Ktor、kotlinx.html 等。最后,Kotlin 是 JetBrains 的亲儿子,自然有强大的 IDE 支持。

Kotlin 还可以进行 Android 开发,JavaScript 开发(将 Kotlin 转化为 JavaScript),Kotlin 还可以开发完全的原生应用,也就是把 Kotlin 语言编译成没有虚拟机的原生二进制程序,支持的平台包括 Windows、Linux、macOS、iOS、Android 等,从这一点,基本上可以看出 Kotlin 的雄心有多大了。

Kotlin 的语言有什么特点呢?

1、简洁,同样的功能实现比 Java 的代码要少很多。 2、原生支持函数式编程和面向对象编程。支持协程。 3、安全,可以有效防止程序员疏忽导致的类型错误。大部分错误都会在编译时发现,而不是在运行时。 4、类型推导,和 Swift 一样,Kotlin 的编译器可以根据变量在上下文的环境中推导出它的数据类型,而不是强制声明。 5、与 Java 100% 的互操作性,不需要任何转化和包装就可以调用 Java 对象,反之亦然。 ……

Kotlin 比我之前见过的任何一个 JVM 编程语言都更具王者之气,应用范围和语法稳健并且实用。如果你是个 Java 程序员,是时候关注并使用 Kotlin 了,无论是公司还是个人。

关于 Kotlin,我也在学习过程中,未来还会写一些学习笔记,希望大家喜欢。

资源推荐

1、Kotlin 中文站: https://www.kotlincn.net

2、Kotlin 心印 —— 交互式编程练习: https://www.kotlincn.net/docs/tutorials/koans.html

3、电子书: https://gitbook.com/book/hltj/kotlin-reference-chinese

原文发布于微信公众号 - java工会(javagonghui)

原文发表时间:2018-04-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏游戏杂谈

两道函数式编程题

Winter出的题,有些我也答不上来,题目难度并不是很高,但还考的比较深入。例如:

322
来自专栏我就是马云飞

优秀程序员写代码一定会用的 11 条经验!

我已经写了20年代码了,在此期间曾与17个团队共事过,使用不同的语言做过数百个项目。

661
来自专栏ThoughtWorks

写了这么多年代码,你真的了解SOLID吗?| 洞见

尽管大家都认为SOLID是非常重要的设计原则,并且对每一条原则都耳熟能详,但我发现大部分开发者并没有真正理解。要获得最大收益,就必须理解它们之间的关系,并综合应...

801
来自专栏Golang语言社区

厚土Go学习笔记 | 01. Hello World开篇

Go语言的众多特性,是我很长时间以来一直寻找的集合体。一直想在服务器编程方面有一个更舒适的语言。想舒适的实现跨平台,想舒适的实现并发,想舒适的实现纯代码解决问题...

3478
来自专栏Java架构师进阶

从内到外的实现JVM

在社会化分工、软件行业细分专业化的趋势下,会真的参与到底层系统实现的人肯定是越来越少(比例上说)。真的会参与到JVM实现的人肯定是少数。

763
来自专栏web前端教室

JS原型,a和b是不是失散多年的兄弟?

面试题这种东西真的是反人类的设计,我觉得它的最大的作用就是用来打击我的信心。每当我觉得自己js水平还可以,的时候,它就会在不经意间跳出来,给我一耳光。例如这个,...

1878
来自专栏怀英的自我修炼

Java漫谈1

对于接触编程的人来说,Java更多地代表了一门编程语言。 Java是一门通用的计算机编程语言,它是并行的,基于类的,面向对象的,可以一次编写到处运行的一门语言。...

35614
来自专栏大宽宽的碎碎念

程序里怎么表达“没有”

最近忙着调研gRPC做服务治理,尝试用protobuf3重写现有的接口逻辑,发现了一个问题:protobuf3的基本类型不支持nullable。如果想表达“没有...

592
来自专栏java一日一条

关于 Unicode 每个程序员应该知道的 5 件事

上周末,曝出了山寨WhatsApp Android应用程序的新闻,看似由相同的开发者提供作为了官方应用程序。欺诈分子通过在开发者名字中包含unicode非输出空...

612
来自专栏IT大咖说

关于 Unicode 每个程序员应该知道的 5 件事

摘要 Unicode是一个令人难以置信的有用标准,它能使全世界的计算机、智能手机和智能手表以同样的方式显示相同的信息。不幸的是,它的复杂性使它成为了欺诈分子和恶...

2677

扫码关注云+社区