bwin56必赢手机版谷歌大牛说:为什么 Kotlin 比你们用底那些垃圾语言都好

编译:伯乐在线/黄小非

谷歌大牛说:为什么 Kotlin 比你们用底那些垃圾语言都好

5月18日,安卓团队当谷歌 I/O 2017 大会上宣布 Kotlin
成为法定头等支持语言。这漫漫爆炸性消息在当天即是 Hacker News
首页热门讨论。就于同一天,谷歌技术大牛 Steve Yegge 也作了千篇一律首有关 Kotlin
的采用体会总结文章,同样为在首页热门,并吸引 200+ 讨论。

bwin56必赢手机版 1

(Steve Yegge )

胡说 Kotlin 比你们用底那些垃圾语言都好
哈哈,这个标题党的题材为您点上看了咔嚓。不要奇怪,现在标题党在网上非常广泛的。而且这首文章让闹之回答,肯定会撼动到公。
说真的,其实自己弗思量去攻击你们的言语信仰……至少不会见“大大地”想。毕竟你喜爱的言语大放异彩的时代,可能要追溯到冰川时期了,对无?如果您欣赏的语言及今天还尚无怪,那只能说明这门语言在逐渐地改进与翻新,保持与时俱进。

但改善之速度吗?好吧……假要你现在之所以底言语恰恰是 Java,并且你吗迷于 Java
曾经是一样帮派死精彩之言语的想法,那么你虽完蛋了。而且是早就完蛋了。尽管人类还无太爱思考终极命运问题,但是比叫在
20 多年前刚刚问世,Java 8
独自是开了一部分语言特征的交替,对斯而禁不住要惦记:“我实在如和这种语言来一同度过的余生么?还是说
Java 也尽管只好这么了?”
盖毕竟要起来举行 Android
开发了,我将各种老旧的语言问题又过了同一周。我写了一个老游戏
Wyvern,这个游戏已经发生一个 iOS 版本了,最近我控制再次折腾一个 Android
版本。我常有没料到电脑语言会磨到让自己“思考人生”(例如“我立即是他娘的当浪费生命么?”)如果你勾勒了
Android 程序的说话,你虽掌握在 Android
领域,语言的题目是会于您一定难熬的。
自家先是浅尝试写 Android
程序是当去年夏天,我之个老天爷,那感觉简直糟透了。其实是有人告诫过自己之。他们还说:“那些
API 可是大为难来什么。”而自己却不放任劝告。一全然孤行。
自身眷恋:这些玩具能糟糕到哪里去啊?反正不纵是 Java 么?

史代码的难
算殊不走运——因为十分复杂的史原因,并且为从来不人以一齐——造成 Android 的基本
API
实在是糟糕透顶。我是说:真的蛮潮,真的坏不好,真的坏不好。你不得不关闭参考书,深呼吸,然后下可以喝咖啡来制止压惊。人们之前为自身之规劝看来是完全正确的。

Android API 库就是一个百宝箱。很多 API 真的是异常好用。我可说,很多在
iOS 开发里异常麻烦将的业务在 Android 里面也大轻。Product
flavors、Downloads 服务、findViewById() 方法、Preferences activity
等等,这些还是那个好之例证。有极端多 Android 里面有些东西在 iOS
里面是诶有的,所以于 iOS
里面你到底能够看到:开发者自己实现之黑心的跟雅的应用库并存。
但是!注意左是一个百般写加多少的而是!在形容 Android
程序的时段,人们只关心那些糟糕的
API,就像而开车时只见面反复路上遇见了几乎个红灯一样,绿灯的数额是不曾人关心的。因为人们只会通过红灯的多寡来评论路途是否通畅。

Android 确实有几只大糟糕的“红灯”API。例如 Fragments,这虽是以 Andoird
“红灯” API 中的牌子 API。这个 API
的全体生命周期的坏程度达了天怒人怨的程度,好吧其实 Activities 和
Fragments 都是这般。说词不好听的,iOS
反而却从不如此糟糕之API。去年夏季自家尝试了尝试这些API,它们是这般之糟糕以至于我及时虽放弃了。我毕竟根服了。去其的,我或者之后找个人来提携我勾勒这些程序吧。
连片下的等同年半,我就是无再接触了 Android 编程。
来自俄罗斯之恩人

自直接传闻,有雷同栽新语言叫做 Kotlin,可以据此来写基于 JVM 或者 Android
程序。发明这种语言的无是异域,正是战斗的民族俄罗斯。更现实一点儿,它是出于
JetBrains 开发。JetBrains 可是世界闻名的 IDE 开发商,代表作是 Intellij
IDEA,还有他们那么动人而大名鼎鼎的橘色,绿色,紫色和黑色混合的暗色“Darcula”主题。

bwin56必赢手机版 2

图:一个千年老妖按捺不住对 Java 8 的提神
那为什么要让这种语言起名叫 Kotlin 呢?好吧,有同一种说法是为 Java
的第一只假名是“J”,而 Kotlin 则就此了Java
的生一个假名“K”作为初始。除此之外,有人还猜测(这种猜测可能来自加州大学伯克利分校),“Kotlin”这个名字的灵感还源于“克里姆林宫”,“赫鲁晓夫”以及“克格勃”。这些还是前面苏联之耀武扬威,所以她们不怕就此了一个面前苏联寨的名字“Kotlin”来定名这种语言。总之这名字对,而且你晤面习惯她的。
伯乐在线补充:Steve Yegge 在前文关于 Kotlin
的名来自,应该错了。在外自己原文评论被,也出网友指出了。

对的该是:① JetBrains 是同一贱注册地于捷克布拉格的店,在天下共有 6
个办公点:布拉格、圣彼得堡、莫斯科、波士顿、慕尼黑以及新西伯利亚。但关键管理层及开发者是以圣彼得堡。②
芬兰湾被来只岛屿就是「Kotlin/科特林」,在圣彼得堡以西 32 公里。

bwin56必赢手机版 3

自己发觉去年业界关于 Kotlin
只是有过多“嘀咕(buzz)”。注意,只是“嘀咕”,不是天花乱坠地吹牛宣传。人们只有是低调地“嘀咕”着。好吧,总之,我这拘留了瞬间,然后就以为这语言及自己过去
15 年看罢之 50 ~ 100 栽计算机语言一样,这吗是一致家可以代表 Java
的言语,当然,我认为其他理性的语言都能够替 Java。
针对 Kotlin 的第一印象

本人首先破看 Kotlin
的时,真心觉得这种语言不可能以现实生活中因故到,真的是少数可能性都尚未。其实我呢便是走马观花。我的第一印象?这个语言也从不什么好题目。它可怜简短,也负有先进的特性。如果说其时呢实行,因为它们几乎囊括了电脑语言设计及的装有最新潮流。不过当下吗从没什么大未了,因为过剩言语也都满足这一点。比如,Rust。Rust
也是一门健壮的,名字起得格外好的,但是没关系人之所以的言语。
Kotlin
给自身之平栽奇怪的觉得是“似已相识”,后来自才反应过来,原来这是为它们跟
Swift 很像。我所以没应声反应过来,是坐自身的 iOS
程序因历史代码的缘故不得不为此 Objective-C 而非是 Swift
来写。当然现在我为整治明白了:其实 Kotlin 的历史比较 Swift
要久几年,所以对的传教该是:Swift 和 Kotlin 很像。
然而即便如此我立刻吗并未准备就此这种语言工作。Kotlin
对自身来说着实是相同栽语法优雅的言语,但是自以为自己对就宗语言还尚无掌握及足够的品位,以至于被自身可以为此其来应付残酷之切切实实工作。
从 Java 叛逃到 Kotlin

本人未绝记得我是现实怎么好上 Kotlin
的了。但是自敢于肯定之凡当下绝对不是蓄意为之。
我拼命回忆了瞬间,事情是这样的,我做的那个游戏的玩家与自家说了长远,让自身出一个
Android 版本。这个娱乐是 12 月份在 Apple Store
上架的,然后几乎全面内,大量粉丝就同自家说,他们是 Andorid
用户,所以不得已打到此游乐。所以,尽管自己曾经“发誓”再为不碰Android
编程了,但是用户就上帝,所以我以起尝试了。不过当下同样次于而更换个玩儿法——不能够还把胃口好在
Android 的 Java
语言及了。我急需发个现成的框架,或者什么像样之物,来叫劳作转移得简单少。
在 1 月中旬,我做了一个概括评估,然后就是决定就此 Kotlin 来开了,Kotlin
当时可同时支持 Dalvik 和 Art 两种植 Android
虚拟机。我以为自家之评估是根据以下几独因:

  1. Kotlin 已经小有名气;

  2. 立刻本人写 iOS 版的早晚就是想就此 Swift(但是没用成);

  3. Kotlin有同样种植十分对的 Android DSL 叫做
    Anko,这招起了自家之兴,虽然最后自己连从未真正采取它。

因而自己就是就此 Kotlin 开始开了。在交接下的 4-5 周内,我于是 Kotlin
重写了打之服务平台。要明之平台之前都闹 20
经年累月史了。用了一个月的 Kotlin,我就是叫全然征服了。我无是若说 Scala
或者其它语言的坏话,但是针对自我这种平凡码农来说,Koltin
是两全的。我之求未强,给人饭吃就是实行,知道不?Scala
固然很好,但是它吓得过于了,就比如牛蛙\牛脑\松露蜗牛这些高档菜那么好。要掌握自己便是单蓝领,Clojure、Scala
这看似的言语对本人来说无比高大上了。

本人大约花了 3 天时间来修 Kotlin
的各种语法,然后就开始专业编程了,虽然自己要么那个不懂行,但是自掌握这种语言及
IDE 工具得以被自己解决各种劳动。
当自己对这种语言稍微熟悉了一些之后,我就算懂得,我应该不会见又夺爱上另外一种语言了,因为
Kotlin
实在是极端讨人喜欢了。你以代码写出来的事物叫您以为很可怜。当然我原先用外的言语编程的时段也体验过类似的痛感,但是那些语言的读曲线一般还特别陡峭。Kotlin呢,它便是大救星:当
Java 程序员为了 Java 8 弄出来的同样坏堆新定义挠头的时段,Kotlin
出现了。Kotlin 能实现 Java 8 的各种新特色,并且经过对 coroutines
的支持,其实能兑现再强大的机能,而且语法表现力更精简。Java 8
确实也克发挥好风趣的逻辑,但是老烦,感觉就是比如于您提之前如果事先为你嘴里塞沙子。
自我想 Kotlin 上亲手很易之原由太强烈了,要归功给它们的 IDE
支持。现在几乎所有的 JVM 语言或者 Android 语言的 IDE
支持且是由于社区的几乎独志愿者在保护(当然 Java 除外)。而 Kotlin
则是缘于世界级的 IDE 厂商(Jetbrains),所以 Kotlin 打一始发即是从带 IDE
支持的。有微微语言会就打发明伊始就是能够发生 IDE
支持也?编程语言的前进过程一般做不顶及时一点。况且有的编程语言从平开始就是一旦回避
IDE 这个元素的(Hi!Rob)另外一个能够同开始就是好 IDE 支持之言语就是
C#,当然 C# 毫无疑问是海内外最好好之编程语言之一。

伯乐在线/程序员的那些事补注:上面立段受到的 Rob,应该是因 Go 语言的发明者
Rob Pike,作者在此地恐怕是懵懂讽 Go 语言从表到如今犹并未一个乘谱的 IDE
支持吧。

当一个自带 IDE 支持的语言,你以 Kotlin buffer
敲代码的早晚,打字基本对即使可了。IDE
会帮您补充全而无写了的一对。你懂为,你还是可拿Java代码复制到IDE里面,然后
IDE 会帮你活动转换成Kotlin代码。如果您以为 Java 的 IDE
都还不易,那么自己得以非常光荣地报您,Kotlin IDE
会把这种“不错”推进到前所未有的境地。甚至闹一个面前微软工程师和自身说:“我论以为微软的
Visual Studio 是 IDE 界的标杆,是不足过的。但是自己以为 IntelliJ IDEA
的确如重新好。”在我看来,因为我对 Visual Studio
不熟悉,所以我以此只有是引用他说的讲话。不过我当 IntelliJ IDEA 至少与 VS
是一致水平。
委,在现实工作面临自我要么如常常切换到 Emacs 的。IntelliJ
在你打字很快的时候还是发生点儿反应无东山再起。如果您打字总是独自从一半儿的语,那么自动补全动能的运行压力还是蛮充分。况且对纯文本的处理呢殊不好,这是颇具
IDE 的毛病。所以 IDE 和 Emacs 你都是内需用的。不幸的凡,目前 Emcacs 对
Kotlin
的支撑现在呢尽管那么回事儿,不过相信以后会越好。我本左右就是是当 Emacs
和 IntelliJ 之间来回切换。目前尚算 OK。
就算是这样了。我早就花了约 10 年的日子,来找一种语言来替
Java。我真找得深努力充分麻烦。讽刺之是,在自割舍了后,这种事物还是出了。去探访吧。Kudos
对 JetBrains 来说,是一个惊艳的成就。

Android:Kotlin 的绝活
旋即年头新杀编程语言几乎很不便发生什么了不起影响力。不是说现在不曾初语言有了,相反是历年都来质量对的新语言有,但是然并卵,没人就此!要让“不容许”划定界限非常麻烦。但是电脑语言的市场早就大饱和了。如果要于一个初的语言会大火(而且以此原理在过去
10 到 20
年还建立),那么这个语言就得有一个“杀手级”的使。这宗语言需要绑定一个平台,让大家还分外迫切地区下这平台,这才会促进大家学习就宗语言以便在此平台及编程。
不怕目前看来,我们地方所说的杀手级应用——也就是是我们地方拉了这般多的物——却是
Android 恶心之 API。每当你沿 Android 路线为下移动,一遇到 API
就会见卡壳,这只见面吃你错过诅咒 Android 这个平台。Android 不论有微微优秀的
API 都任用,重要之是,Android 糟糕之 API
太多了,所以您不得不终止下来去寻觅”现成”的措施(solution)。

可是兄弟,Android
里面解决问题之“现成办法”可是多。对于新手来说,有同样老堆 Java annotation
processors可用,这便为语言的题目埋下伏笔。更不要提一堆迷你的框架(比如
Lyft 的 Scoop)。还有那些与 Android(Java)完全独立的框架:React
Native、Cordova、Xamarin、Flutter等等。
假设以上说之技艺你都未欣赏,那么你还可由言语的角度来解决问题。当然,那些完全独立的框架是基于特定语言的,而连无是Java。

Kotlin 的竞争优势在她并无是一点一滴隔离于 Java 语言。它基本上是 100% 可及
Java 相互翻译转换的。这挺像C++ 与 C 的干一样(但其做不交 100%
)。Kotlin 也是在时时刻刻进步的。所以您得一直将您勾勒的 Kotlin 代码扔到
Android
工程中,连目录都无须转,然后程序即使能够正常运行了,方便得眼睛都无用眨一产。
另外品种的 Android
平台还支持于迫使你错过学学一种植新的语言和相应之平台,其编程范式,理念以及特性还各不相同。Kotlin
则是被您一直写起 Android 可运行的类,就同其余 Android 程序员用 Java
写出来的同样。其实那底层的 API 都是同一的,但是 Kotlin
组织得要好多。
尚记自己去年夏把 Android 编程书扔了然后又为非打算看了吗。现在 Kotlin
则受我备感:Android 编程是喜欢的?我还看可能 Android 那些糟糕之 API
很可能连无是那么糟,只是 Java 把它们搞得太恶心了罢了。
Kotlin 致力为受大家绕了 Android API
那些恶心的事物,并且能被您充分发挥你的更,这一点居然比 iOS
做得还要好。好吧,至少来说比 Objective-C 做得好,因为自身看 Swift
肯定为无见面不同。知道为何也?因为
Swift 和 Kotlin 很像啊。

bwin56必赢手机版 4

自专门欣赏 Kotlin 的地方发生怎样?
啊,这个话题实在如细致说即使好充分了,我看自家最为好还起来平首文章来形容是。这里我就算领一下那些高级(high-level)且共性的点。
Kotlin 很像 Java。它助长得无像 Clojure 或者 Scala
那么奇怪(承认现实把,这片种植语言就是格外奇怪的)。所以您模仿 Kotlin
应该很快。这门语言简明就是是描写为 Java 开发者来用的。

它比较 Java 更安全。Java 很多亟待 annotation processors 来做的作业在
Kotlin 里虽然是放开的,例如 overriding,nullability等等。而且 Kotlin
对数值转换的条条框框吧再安全,虽然自己弗太好 Kotlin
的处理方式,但是自或生谢谢这宗语言强制自己失去考虑自己之数值表现形式。

Kotlin 和 Java 是可彼此译的。真的是负无缝互译。我表现了许多 JVM
语言最后挂掉,就是为那非支持子类继承机制。我弗明了啊时候便会就此到静态内部类,非静态内部类,或者什么破玩意儿类。Kotlin
在计划时即管与Java互译的属性在第一个,也就是说,把 Java 翻译到 Kotlin
可以慢慢展开,一糟糕可一直换一个文件。

Kotlin
很简洁
。你如掌握我啊毕竟个高尔夫球手,所以自己实话实说。如果在全体都一模一样之情景下,我重新爱短的主次,只要它形容的逻辑清楚。Kotlin
对自我吧就是像是自了一致轮子好局。平均下来自己发现 Kotlin 的代码长度比平逻辑的
Jython 代码短了
5%-10%(这可是我于是某种“黄金标准”测出来的),而且还会管程序的可读性和路安全。

Kotlin 更近实际。Kotlin
支持于一个文本里定义多只八九不离十,支持一相当方式,操作符重载,扩展方法,类型别名,字符串模板,还有同堆看上去没什么创意的言语特色它都支持。而自就是勿知晓怎么
Java 什么都未支持,连人们需要的言语特色它都非开。

Kotlin 进化很快。例如刚刚发表启动的指向 coroutine 的支撑,将会见成为提供
asyn/await, geneator 以及有其他无锁并发特性的底蕴设备。

Kotlin 很善于“拿来主义”。Kotlin
经常打另外的计算机语言设计着抄袭点子,并且也毫不避讳。他们说:“我们非常欢喜
C# 的处理方式,所以我们就是自己按在撸了一个。”

Kotlin 支持 DSL。DSL
不至深思熟虑万不得已的话千万不要引入,但是只能承认 DSL
威力巨大。例如你看 Gradle 的 DSL 和 Maven 比,在典型的 Maven
项目里,配置代码肯定使跨越上千执行。所以 Kotlin 是来吃你退工作压力之。

Kotlin 的 IDE 是当凡最好硬了。刚才赶快己才当 Emacs 里描写程序文件,结果
Emacs 报了平等针对性错。而我把同的代码拷贝到 IntelliJ 里面,然后照 Alt-Enter
逐一自行修复了 50 多久,然后所有的荒唐就是还搞定了。这不失为帮了老大忙啊。

Kotlin 很有趣。我和你们说,Kotlin
就是幽默。也许这是自身现潜意识地当做广告。Kolint
的要字与道名都分外有意思。Kotlin
把自己由一个单独见面大编程的码农转变以一个处理器语言的发烧友。

一言以蔽之,你就是这样想:我办东西搬家,然后碰到了邻里
Kotlin。我事先也算见过的一样堆放计算机语言,但是只有
Kotlin,能够被我在那么差的日内再写我之戏服务器代码。而自现则是以就此
Kotlin 重写我事先写过的全部。

本人为领略还有好多旁的程序员也对 Kotlin 感觉蛮好,打算成为 Kotlin
程序员。其中绝大多数的人头相应于 1-2
年之内水平就是会超越本人了。我们私下里讨论了,互相都说“Kotlin
让编程感觉美好的感觉又回去了。”还不易,再我们没对编程全部失去兴趣之前,Kotlin
来了。就恍如你要是拿语言的语法学会了。这反过来将您带来回到那种第一不好法编程的觉得,无论写啊都看好很牛逼。
再也同糟糕,向 JetBrains
致敬。他们针对计算机语言做出了英雄的贡献!我脱帽致敬。
那 Kotlin
比你用底其他其他编程语言都吓与否?我思念对自来就是的。因为,如果你刚好是于于是
Java 的言语。如果你一整天即令是泡在椅面前勾画 Java,那么您见面发觉 Kotlin
简直就是是一样股清流。所以啊吃自身知你们是怎想的吧。
免责声明:本文就是阐述自己个人对 Android
开发的观点,并无意味着我之农奴主(谷歌)或者 JetBrains 的见。

伯乐在线/程序员的那些事 摘录原文的片评:
Igor Tovstopyat-Nelip
好文章!

JetBrains
不以捷克。虽然她是当(捷克)布拉格成立的,但主要以圣彼得堡。他们多管理层和开发者都是俄罗斯总人口,很多是从圣彼得堡大学毕业的

关于命名,Java 语言是源于印尼群岛被之 Java 岛。Kotlin
是芬兰湾遭受之均等栋岛屿,离圣彼得堡非常靠近。彼得大帝在 18
世纪初从瑞典那里抢了了圣彼得堡。此后,一直是俄国波罗的海舰队之海军基地。圣彼得堡生北国风光之美,海军神庙(Naval
Temple)令人记忆深刻。
咱们局(位于亚特兰大)也试过多种 JVM 语言,Java 是首先。现在咱们再度针对性
Kotlin 感兴趣了。大家还挺喜爱。并且 Kotlin 和 Java 是无缝互通的。
Kotlin 也会编译成 JS,并且值得一提的是,Kotlin Native
也处于火热发展被,看起会是 Rust 的精对手。

匿名网友:
自己过去吧并就此了 Eamcs 和 JetBrains 的 IDE(PyCharm 和
Webstorm)。虽然这种做很酷,但特之好。Emacs
适合心灵控制级别的文本编辑,IDE 适合面向鼠标的游和有些修改。

Stephen French:
我喜欢 C#,对 Java 落后太多委失望极,因为自己的劳作支持 JVM。Kotlin
看起特别有意思!

初稿链接:http://mp.weixin.qq.com/s?\_\_biz=MzA3MDMyMjkzNg==&mid=2652262391&idx=1&sn=47c8d4834df6a6643dc64c008c61b6c4&chksm=84dc7060b3abf976ad4711116e54c7a0ceb48b8ac46f5994e0a36e008ddf82073a413e4f28fa&mpshare=1&scene=23&srcid=0525NidEaeLlL1cnkvxGgvJg\#\#

ps:

Kotlin可以编译成Java字节码,也得编译成JavaScript,方便在从来不JVM的设施上运行,最近颁了Kotlin/Native能把Kotlin编译成机器码,也就是是C/C++一样的力量。本专题专注Kotlin,Kotlin/Native,KotlinJS与Kotlin_Android的那些从事,让咱一齐学习Kotlin壮大Kotlin~

加盟专题吧Kotlin-Android-KotlinJS-Kotlin/Native:http://www.jianshu.com/c/e88f0f9356a8

admin

网站地图xml地图