paint-brush
Kotlin 的崛起:下一代编程语言by@David
48,469
48,469

Kotlin 的崛起:下一代编程语言

David Smooke8m2018/07/05
Read on Terminal Reader
Read this story w/o Javascript

<em>欢迎我们的每周赞助商</em><a href="http://bit.ly/2lCXscm" target="_blank"><em>Pusher</em></a><em>加入 Hacker Noon!</em> <a href="http://bit.ly/2lCXscm" target="_blank"><em>Pusher</em></a><em>制作实时 API,让世界各地的开发人员能够快速向其应用添加通信和协作功能。其核心产品让开发人员能够轻松创建应用内通知、活动流、实时仪表板、实时跟踪器等功能。</em>

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coins Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Kotlin 的崛起:下一代编程语言
David Smooke HackerNoon profile picture

欢迎我们的每周赞助商Pusher加入 Hacker Noon! Pusher制作实时 API,让世界各地的开发人员能够快速向其应用添加通信和协作功能。其核心产品让开发人员能够轻松创建应用内通知、活动流、实时仪表板、实时跟踪器等功能。

今天,我们将会采访 Pusher 开发者布道者Zan Markan ,讨论 Kotlin 的现状、是什么驱使他做这些事情,以及是什么让太空牛仔成为太空牛仔。

David :我们先从Kotlin 的现状开始。您最近进行了一项 Kotlin 调查( 有关详细信息,请点击此处)。从 2018 年 1 月到 3 月,您调查了 2,744 人,以了解生态系统的脉搏。哪些结果与您的假设相悖?哪些结果证实了您的假设?Kotlin 的最新进展如何?

zan没错。我们注意到越来越多的开发人员在使用我们的产品构建应用程序时使用 Kotlin,因此我们决定深入挖掘并找出他们的动机。我发现了一些令人惊讶的事情。

首先,我对学生和初级开发人员对 Kotlin 的热爱感到非常惊讶。我原本以为经验丰富和缺乏经验的开发人员之间的差异会更大,但自从 Google 全力支持社区以来,新人群开始真正喜欢 Kotlin。

另一件令我感到惊讶的事情是,有多少人热衷于尝试 Kotlin 团队标记为实验性的功能,即协程和对多平台项目的支持 —— 各约占 25-30%。

调查结果或多或少证实了我对 Android 规模的怀疑——根据我们的调查数据,Android 规模约为 80%。我看到的其他一些调查显示 Android 规模略小,但仍高于 75% 大关。这种差异可能部分归因于我的网络主要关注 Android,但影响并不明显那么大。

值得一提的是,Kotlin 是一种令人兴奋的语言,是一种让开发人员感到快乐的语言。

这是相当罕见的(至少对于主流编程语言来说),并且导致围绕整个 Kotlin 生态系统形成了一个充满活力和热情的社区。

Kotlin 的主要开发团队是位于俄罗斯圣彼得堡的 JetBrains 程序员团队。您还能告诉我们关于其创立的哪些信息?您第一次使用 Kotlin 是什么时候?

据我所知,Kotlin 的历史表明 JetBrains 想要为其开发工具提供“更好的 Java”。互操作性和提高生产力是他们的主要目标,当时没有其他基于 JVM 的语言真正符合要求——Scala 满足了大多数要求,但工具却不存在,而且构建时间对于 JetBrains 的开发需求来说太慢了。

正是这种高度可互操作且更好的 Java 的理念吸引了如此多的 Android 开发人员(包括我,我从早期就开始从事 Android 工作)。

几年前,Android 生态系统基本都停留在 Java 的旧版本上 — Java 7 和 Java 6 的奇怪混合体,它没有 lambda 等好用的功能,而且相当冗长。因此,人们开始尝试这种新东西,它似乎具有很好的互操作性,并能提高生产率(尤其是在没有破坏一切的时候 😅)。

这也是吸引我加入的原因——我第一次听说 Kotlin 是在 2014 年,之后就密切关注着 Kotlin 的发展——要么在业余时间玩它,要么用它来快速制作原型。我在开发Pusher ChatkitFeeds产品时编写了第一个生产版 Kotlin 代码。

您认为 Kotlin 为何迎合缺乏经验的开发人员?如何才能阻止它成为一时的热潮?

哈!我不认为它本身适合经验不足的开发人员,事实上,我认为它与我们在StackOverflow 调查结果中看到的群体非常相似,因此就行业发展而言,这并不令人意外。

我们还发现,它最初主要是由有经验的(受雇的)开发人员采用的,并且直到最近才开始被学生和年轻的开发人员采用。

我认为 Kotlin 是一种可以快速掌握的语言。它拥有出色的工具,即使不了解大部分内容,我们也能高效工作。它可与 Java 互操作,因此任何移植或迁移都可以按照自己的节奏进行。最后,Google 和 JetBrains 都在准备支持 Kotlin 的文档和资源,做得非常出色。

您认为 Kotlin 与其他编程语言有何不同,促使其迅速普及?更广泛地说,您认为哪些编程语言可以普及,哪些编程语言难以普及?

Google 和 JetBrains 的支持无疑起到了帮助作用。另一方面,Google 是在开发者社区大力推动之后才决定在 Android 中正式支持 Kotlin,因此另一方也已经做出了巨大的推动。

实际上,我认为它是一种在正确的时间出现在正确的社区中的语言——Android 社区,随着它的成熟,人们希望新的工具能够越来越高效。Kotlin 就在那里,当然它有缺陷,但它已经存在并且足够好,人们可以正确地使用它。

您如何看待未来 5 年左右 Kotlin 与现有语言和架构的有效竞争和补充?

如果我们从显而易见的方面开始,那么 Java 相当简单,而 Kotlin 已经很好地补充了它。我相信我们肯定会看到更多这样的情况,特别是当工具整合和一些“黄金标准”工具出现时。这些工具之一是Arrow,一个用于 Kotlin 的函数式编程工具包,它是由 Funktionale 和 Kategory 团队联手开发的,旨在创建更好、更完整的东西。我认为这将成为趋势。

至于其他编程语言 — — 在 JVM 上,我们将看到 Scala 和其他语言的表现,而在 JVM 世界之外,现在下结论还为时过早,但我已经看到了一些关于 Kotlin/Native 和 Kotlin 用于多平台项目的有希望的想法 — — 两者仍处于实验阶段,但一些概念证明已经存在,正在发挥作用,而且非常令人兴奋。

Alberto Ballano的“ Kotlin Functors、Applicatives 和 Monads 图解”出现在Hacker News上时,它引发了一场有趣的讨论……您认为 Kotlin 是通往什么的入门毒品?


这听起来太邪恶了!它是现代编程语言的入门药 — — 这些语言让我们既高效又快乐。它肯定会让很多人接触到函数式编程 — — 尤其是像 Arrow 这样的东西,这可能会让一些人更容易进入更硬核的 FP 语言。

它还可能起到其他一些作用,比如激励大量 Android 开发者利用其跨平台支持进入 Web 或原生开发领域,而且,随着越来越多的开发者选择 Kotlin 作为第一门编程语言,他们必然会将 Kotlin 视为衡量其他所有语言的基准,这也是非常令人兴奋的。

在语言学中,一种语言(如英语或西班牙语)需要很长时间才能被广泛使用。虽然它们有很多方言,但一种全新口语的使用肯定不如新软件语言的使用那么突出。您认为我们会达到行业成熟点,新软件语言的出现率会下降吗?还是会继续出现更多新软件语言?

我们已经看到许多优秀的编程语言迅速获得广泛采用,近年来,Swift、Go、TypeScript 和 Rust 等语言脱颖而出。它们都得到了一个(或多个)大型工程组织的支持,这些组织拥有大量资源和现有的开发者社区。

他们每个人都能解决组织中的某个问题,如果许多其他开发人员也有同样的问题,那么就会采用,语言就会腾飞,从而达到“临界规模”。我提到的每种语言都是如此——例如,Go 的诞生源于谷歌想要做好并发性,而 Rust 的目标之一是永不崩溃。


至于未来,我认为肯定会有新的计算范式、新的想法被开发(谁知道呢,也许区块链有一天会真正成为现实)——这对于我们现有的工具来说并不是很有用。其他一些例子是量子计算或人工智能。

虽然如今大多数语言都声称是通用语言,但这并不意味着它们同样适用于所有用途。我们将看到新的用途需要新的语言。

让我们谈谈 Zan 这个人。你个人网站上的个人简介的前两个词是“太空牛仔”。有人叫你“爱情匪徒”吗?还有人叫你莫里斯吗?你是爱情庞帕图斯的化身吗?

哈,我喜欢那首歌!也许是爱情的流氓,因为我认为没有人会把 Zan 拼错成 Maurice,就连星巴克的员工也没有。我也喜欢火箭,仍然为 Firefly 的消失而哀悼,所以这也是一种太空牛仔主题。

这个“头衔”背后的真实故事是几年前,当时我还在经营一家由大学毕业生和几个朋友创办的初创公司。为了在向陌生人借钱(即筹集投资)时显得更合法一些,我们每个人都制作了名片。

我不太喜欢标题,尤其是当每个人都在做几乎所有事情的时候,C 级标题,所以我决定反其道而行之,选择了 Space Cowboy,它几乎和任何东西一样(不)准确。至少我觉得这会是一个很好的谈话开端。

你问到这个问题恰恰证明了它确实是一个多么好的谈话开场白。

有人说你喜欢西海岸风格的 IPA。我现在在科罗拉多州,很想念 Laguinatis。你最喜欢的 3/5 种西海岸 IPA 是什么?

我喜欢它们强烈而又无情的酒花味。

每次我去西海岸,我都会喝一瓶 Russian River 的 Pliny the Elder,当然还有 Stone IPA——当然,都是生啤酒。离家近的话,我会喝 Brewdog 的 Jack Hammer。

怎样才能成为一名优秀的开发者宣传者?你是如何让自己的工作变得更好的?是什么让 Pusher 技术值得宣传?

对于一名开发者布道者(一般开发者关系人员)来说,最重要的是对教学和分享知识的真正热情。实际上,真诚可能更为重要。句号。开发者天生就是 BS 检测器,他们讨厌被推销东西。

当你知道自己帮助某人成为更好的开发人员时,也会感到很棒。

我首先要改进的事情之一就是时间管理。作为一名开发人员,分配大量时间用于某些任务是很常见的。我现在的工作比那份工作更有活力,一开始我没有预料到会有这种变化或调整,所以感觉很吃力。Paul Graham 关于制造商和经理的日程安排的优秀文章给了我很大的帮助。

我学到的另一项有用技能是项目管理——以 State of Kotlin 为例,我的大部分工作首先是围绕设置调查和创建内容,然后转向更传统的项目管理,比如与其他相关团队进行协调,比如设计和开发(他们做了这项工作,不是我,再次感谢——你知道你是谁),最后在各种出版物上传播消息,在网络上进行采访。

Pusher 的技术因其集成速度快和“有效”而闻名。

因此,宣传变得轻而易举。在一次移动开发会议上,甚至有人来找我,告诉我,他们在使用 Pusher 的网络团队的同事让他们告诉我我们的 Channels 产品有多棒——这太令人兴奋了 😁

总而言之,Kotlin 在实现 Pusher 的长期愿景中扮演着什么角色?

我们已经确定 Kotlin 将成为我们 Android SDK 的主要开发语言。我们从新产品BeamsChatkitFeeds 的SDK 开始,目前我们对此非常满意。

我们还相信 Kotlin 拥有最令人兴奋和参与度最高的社区之一,这也是我们决定创建 Kotlin 现状调查和报告的部分原因。我们当然希望 Kotlin 能够继续让开发人员感到快乐和高效,而Kotlin 现状调查有助于进一步推动其采用!

Pusher是我们的每周赞助商,它开发了通信和协作 API,为世界各地的应用程序提供支持,并由易于集成的 Web、移动 SDK 以及最流行的后端堆栈提供支持。立即开始。