题图:by kacozi from Instagram
上周 Java 10 发布了,对于广大程序员来说,算是个大新闻。毕竟在程序员的世界里,Java 仍然保持了一哥的地位,也就是说,这个世界上使用 Java 语言编程的程序员可能是最多的。不过最近 Java 大版本更新的速度确实让老程序员们瞠目结舌。十八年前,也就是千禧年 2000,Sun 公司像神经病一样连续在 5 月份推出了 JKD1.3 和 1.4,按照现在的版本规则,也就是 Java 3 和 4。四年以后 Java 5 发布,那是 2004 年,这种发布节奏让程序员完全找不到节奏,以至于 Java 5 发布了一年多之后,大部分程序员还在使用 4。2006年 Java 6 发布了,程序员们在抱怨 Java 语法滞重繁琐发展缓慢的同时,开始期待 Java 两年发布一次大版本,希望这货能做个正常的有节奏的编程语言。
然而并没有。
下一个版本的更新我们等了五年,那时候很多人都产生了一种错觉,以为 Java 语言就此不更新了。
就这么个更新频率,现在开始每半年发布一个大版本,迅速把 Java 拉升到 10 这个里程碑,Java 的小伙伴们都惊呆了。就像一个稳健的中年大叔,比如二爷,每隔几年有可能出来走两步,某一天悍然宣布每过半年就要跑个马拉松,谁能相信哩?
Java 语言的升级,一方面是 Oracle 的推动和现代语言的需要,另一方面也和 Java 平台上其他语言的迅猛发展带来的压力有关系。Java 发展缓慢,JVM 却是个好东西,除了 Java 跑在 JVM 上之外,还有 Scala、Groovy、JRuby、Clojure 等一系列编程语言新贵,目前看来,其中最值得重视的可能是后来居上的 Kotlin。事实上,其他小弟都是 Java 语言的补充或优化,犯上作乱的很少,人家也没这么大心思。Kotlin 不是,这位小弟是来砸场子的,它被设计出来的目的是取代 Java。
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 呢?和 Java(爪哇岛)有啥关系么? Kotlin 是俄罗斯圣彼得堡团队开发的,他们想和 Java 一样用一个岛来命名新语言,于是找到了位于圣彼得堡以西 30 公里处芬兰湾的一个科特林岛,英文就是 Kotlin,一门新的编程语言诞生了。
Kotlin 就像所有具备雄心壮志的小弟一样,目的就是取代 Java,坐上大哥的位置,现在进展如何呢?在编程排行榜上,Java 依然稳稳的坐在一哥的位置,俯视群雄,Kotlin 则以火箭般的速度从一个籍籍无名之辈进入了前四十。就像所有的黑帮片一样,想要坐上大哥的位子并不是那么容易的,Java 花了十几年的时间打败了 C,C 依然排在第二位,下一个王者是谁,没有人知道,但是这件事一定会发生,只是什么时候和由谁完成的问题。
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
卖桃者说:如果你是前端工程师或创业者,是时候关注小程序了
之前写过一篇文章「如何打造一款优秀的小程序」,那一周我们的小程序发布了。现在看来,小程序已经成了极客时间重要的一端。
微信正成为巨大的生态和商业帝国,小程序将是这个帝国强大的助推力。马化腾说:小程序已经成为中国编程者一个非常热门的编程环境和正在热情学习的语言环境,我感到非常激动和自豪。
事实上,大量的小程序案例已经证实了小程序自身所携带的巨大能量。错过了房,错过了股,错过了币,错过了链,最好别错过小程序了。
最近一直有用户在问,为什么极客时间还没有出小程序的知识产品。并不是没有,我们在等一个时间点。从年初开始,我们就在和微信合作一个小程序课程和官方大赛的活动,今天终于上线了。
我们和腾讯工程师合作推出了《9 小时搞定微信小程序开发》课程,以期帮助更多的人搭上时代快车,不要错过下一个可能的创富机会。腾讯工程师将为用户带来更为体系化的核心知识讲解,并教会你更加规范化的开发流程和理念。
微信小程序开发课程课程共 50 个小视频,现在已上线第一期(10 个视频)。
课程原价 199,限时优惠 58
每邀请一位好友加入学习,你可获得18元返现