Kotlin发布10周年,JetBrains的Roman Elizarov专访

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "},{"type":"link","attrs":{"href":"https:\/\/kotlinlang.org\/lp\/10yearsofkotlin","title":null,"type":null},"content":[{"type":"text","text":"JetBrains在2011年7月发布了Kotlin"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",旨在创建一种在JVM和Web上运行的现代通用编程语言。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Kotlin是一种跨平台的静态类型语言,具有现代简洁的语法,旨在克服"},{"type":"link","attrs":{"href":"https:\/\/en.wikipedia.org\/wiki\/Java_version_history","title":null,"type":null},"content":[{"type":"text","text":"Java开发停滞时期"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"的Java缺陷。Kotlin的关键特性包括null安全性、协程、数据类型、扩展函数等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在2011年发布后,Kotlin花了一年时间"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/news\/2012\/02\/kotlin-opensourced\/","title":null,"type":null},"content":[{"type":"text","text":"实现了开源"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",又花了四年时间才在"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/news\/2016\/02\/kotlin-10-released\/","title":null,"type":null},"content":[{"type":"text","text":"2016年1.0版本"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"中实现了稳定。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"仅仅三年之后,谷歌就将其作为Android开发的首选语言,这很快导致"},{"type":"link","attrs":{"href":"https:\/\/developer.android.com\/kotlin\/","title":null,"type":null},"content":[{"type":"text","text":"超过60%的专业Android开发者采用了它"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。最近,"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/news\/2021\/08\/jetpack-compose-1-0\/","title":null,"type":null},"content":[{"type":"text","text":"Jetpack Compose 1.0"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"的发布再次证实了谷歌对Kotlin的承诺。Jetpack Compose 1.0完全使用该语言开发,并充分利用了其语法功能。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Kotlin不仅仅是一种用于移动应用程序开发的语言,尽管它在这个领域取得了巨大的成功,"},{"type":"link","attrs":{"href":"https:\/\/developer.android.com\/kotlin\/stories","title":null,"type":null},"content":[{"type":"text","text":"在Play Store的前1000个应用程序中有80%以上使用Kotlin"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。事实上,据JetBrains称,超过"},{"type":"link","attrs":{"href":"https:\/\/kotlinlang.org\/lp\/10yearsofkotlin\/present\/","title":null,"type":null},"content":[{"type":"text","text":"480万名开发者"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"已经将Kotlin用于服务器端、移动多平台、Android和前端开发。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"《"},{"type":"link","attrs":{"href":"https:\/\/insights.stackoverflow.com\/survey\/2020#technology-programming-scripting-and-markup-languages","title":null,"type":null},"content":[{"type":"text","text":"Stack Overflow Developer Survey 2020"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"》也证实了Kotlin的日益普及,该调查发现JetBrains的语言仅次于Go和C\/C++。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"InfoQ借此机会,与JetBrains的Kotlin项目负责人Roman Elizarov进行了交谈,以了解更多关于其过去、现在和未来的信息。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"InfoQ: Kotlin很快就取得了巨大的成功,最引人注目的是在Android平台上,它几乎取代了Java。你怎么看待这些?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Roman Elizarov"},{"type":"text","text":": 我们从最初发布的时间算起已经有10年了。如果你仔细考虑一下,就会发现它并没有迅速取得巨大的成功。事实上,你会看到一种不同的模式,它极大地促进了Kotlin后来的成功。Kotlin并不是闭门开发的。在Kotlin 1.0于2016年发布之前,其一半以上的时间都是在根据早期采用者的真实反馈不断进行测试和调整。2016年曝光的稳定语言与2011年提出的最初想法大不相同。这是Kotlin成功的第一个组成部分——Kotlin是务实的。它不是一种基于一小部分设计者的理论、哲学或假设的语言,而是一种基于实际使用数据的语言,旨在简化从事大型项目的专业开发人员的日常工作。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"使Kotlin脱颖而出的不是单一功能,而是它们的结合。从null安全和不变量的友好性,到对集合进行简洁高效的功能操作,它们都是为了解决Java开发人员当时所遭受的具体痛苦而设计的。然而,尽管当前的目标是设计更好的Java,但"},{"type":"link","attrs":{"href":"https:\/\/www.youtube.com\/watch?v=Ljr66Bg--1M","title":null,"type":null},"content":[{"type":"text","text":"灵感"}]},{"type":"text","text":"来自各种语言,包括生产型语言和实验型语言。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"自2016年Kotlin稳定发布以来,团队非常重视向后兼容性,这也是Kotlin真正增长和采用的开始。这是Kotlin之所以获得成功的第二部分。作为一种行业语言,团队对确保向后兼容性的强烈关注随着时间的推移获得了回报。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"事后看来,Kotlin在Android的快速增长是合乎逻辑的,尽管它从未被计划过。2017年,当谷歌正式采用Kotlin时,它已经是一种成熟、稳定且经过战斗考验的编程语言。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"InfoQ: 展望现在和不久的将来,Kotlin的进一步发展似乎与它作为服务器端或全栈语言的采用有关。在这些环境中,Kotlin达到了什么成熟度级别?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Elizarov"},{"type":"text","text":": Kotlin在服务器端的前景是光明的。这是Kotlin的主场——这个语言最初就是为服务器端开发而设计的。服务器端相当复杂,需要维护大量现有代码。这就是为什么Kotlin设计优先考虑并将继续优先考虑与现有Java代码和库的良好互操作性。我们高兴地看到我们的努力得到了回报。根据"},{"type":"link","attrs":{"href":"https:\/\/snyk.io\/jvm-ecosystem-report-2021\/","title":null,"type":null},"content":[{"type":"text","text":"Snyk最近的JVM生态系统报告"}]},{"type":"text","text":",18%的Java开发人员已经使用了Kotlin。我们预计这一数字将稳步增长。当然,由于领域的特殊性,服务器端的增长不会像Android那样快,但Kotlin会长期坚持,我们并不着急。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"作为一种全栈、多平台的语言,Kotlin才刚刚起步。整个Kotlin multiplatform于2017年发布,目前仍处于试验阶段。然而,我们看到我们的社区产生了巨大的兴趣和参与度,这与我们在Kotlin 1.0之前得到的反馈非常相似。因此,我们再次采取了一种慎重的方法,在它们通过时间考验并获得现实反馈之前,我们不会急于稳定任何东西。基于过去的历史,随着我们从"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/articles\/kotlin-multiplatform-ios-developers\/","title":null,"type":null},"content":[{"type":"text","text":"Kotlin Multiplatform Mobile"}]},{"type":"text","text":" (KMM)开始稳定Kotlin multiplatform的各个部分,我们预计对Kotlin multiplatform的采用会大大加快步伐。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"InfoQ: Kotlin没有像JVM那样在不同的虚拟机实现上运行相同的字节码,而是通过编译到不同的平台来实现跨平台支持。你认为,随着Kotlin和其它语言采用相同的方法,Java对“一次编写,到处运行”的理解现在是否已经过时?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Elizarov"},{"type":"text","text":": Java的“一次编写,到处运行”的思想在服务器端取得了成功,但在前端——无论是Web端还是移动设备端——都没有成功。有太多特定于平台的东西是Java太慢而无法适应的。即使在技术上可以运行JVM字节码的Android上,也不是每个JVM库都能开箱即用。因此,你可以在任何地方运行任何东西的想法确实已经过时,但在平台之间共享源代码的愿望仍然存在。这是一个不同的目标。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在我看来,Java的主要错误是变得太大了,试图将太多东西标准化并嵌入到平台中,比如动态代码加载、XML解析、甚至UI库,这些东西经不起时间的考验,结果只是昙花一现的时尚,而不是基本的东西。Java模块化来的太晚了。在Kotlin,我们正采取一种更为慎重的方法来扩展核心语言和核心库。我们正在确保Kotlin在未来几十年内保持相关性。此外,我们并不会幻想任何代码都可以在任何地方运行。我们的愿景是,开发人员将明确地在脑海中保留他们希望代码运行的平台列表,并且平台之间总会存在一些需要偶尔考虑的差异。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"InfoQ: 作为一种服务器端语言或全栈语言,Kotlin必须面对更激烈的竞争,(比它在Android平台上赢得的竞争更激烈),包括最近引入的Rust和Swift等语言。你如何看待Kotlin在这个竞技场上的表现?它的相对优点是什么?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Elizarov"},{"type":"text","text":": Rust和Swift在各自的方面都是伟大的语言,但我不认为Kotlin在正面直接与它们竞争,只是在某些领域。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在我看来,Rust更像是一种系统语言,更安全地替代了C和C++。在Rust中,你可以精确地控制内存和其它资源,并且与Kotlin相比,具有更多的低级别代码性能调优能力。你可以用Rust编写出色的应用程序软件,但它将为开发人员带来更陡峭的学习曲线、需要更多的努力和更详细的代码,来告诉Rust编译器你到底想做什么。Kotlin的做法完全相反。Kotlin的目标是从代码中完全删除任何仪式,包括内存管理,并让应用程序开发人员专注于他们代码的实质——他们正在编写的业务逻辑,即使这意味着牺牲一些运行时性能。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Swift则不同。Swift拥有现代的外观和感觉,但它仍然延续了苹果Objective-C的传统,拥有许多苹果生态系统之外的现代语言很少具有的功能和独特的设计选择。仅凭这一点,它就成为一种特殊市场定位的语言。此外,作为Swift的创造者,苹果似乎对Swift在其它平台上的未来并不感兴趣,或者在外部观察者看来是如此。对于Kotlin来说,这意味着在苹果平台上与Swift激烈竞争开发者们的意愿,但几乎不担心Kotlin瞄准的所有其它平台。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"InfoQ: 你希望看到Kotlin在未来10年内如何发展?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Elizarov"},{"type":"text","text":": 我们未来10年的主要重点是多平台生态系统。我们仍然需要稳定它的核心部分,包括编译器和工具,然后帮助社区提供生态系统繁荣所需的所有领域特定的库。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"就语言本身而言,这一切都是为了保持相关性,跟上所有现代趋势和创新。我们目前正在经历一场UI革命。响应式框架处于领先地位,Kotlin正追赶潮流,全面采用Jetpack Compose作为Kotlin的现代UI范式。随着响应式编程在开发人员中流行,处理不可变数据的工效学成为该语言的首要关注点,这也是我们计划在未来10年大力投入的领域之一。我个人确实可以预计,在这10年的晚些时候,服务器端也会发生类似的变化,重点将从可变数据转移到不可变数据,从命令式代码转移到更具功能性的响应式代码。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"处理数据是这里的总体趋势。随着我们的信息系统变得越来越复杂,我们经常发现自己不得不处理更不结构化的变化更大的数据结构。到目前为止,像Python和JS这样的动态语言通过为开发人员提供一种任意数据的更简单的方法而获得了这种转换的好处,但代价是生成在工业规模和复杂度上更难扩展和支持的代码。我们正在寻找将其中一些方法与Kotlin强大的静态类型相结合的方法,以便为开发人员提供更好的工具来满足他们所有的数据操作需求。我们对不断增长的数据科学领域特别感兴趣,并将在这一领域继续改进。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"随着Kotlin扩展到服务器端和移动设备及其之外的更多领域,我们不能忽视支持更好的元编程功能的需求。许多领域都希望有自己独特的特定领域的调整或扩展,这些调整或扩展根本不适用于常用库的严格框架。Kotlin最初被设计为非常适合领域特定语言(DSL),具有接收器、构建器和内联函数。但我们现在正在超越这一点。既扩展了Kotlin的内联函数的功能,又为编译时计算提供了便利,还开发了编译器插件API,用于对该语言进行更激进的领域特定扩展。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"几个月前,"},{"type":"link","attrs":{"href":"https:\/\/blog.jetbrains.com\/kotlin\/2021\/05\/kotlin-1-5-0-released\/","title":null,"type":null},"content":[{"type":"text","text":"Kotlin达到了1.5版本"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",引入了对一些最新Java特性的互操作支持,包括记录类、密封接口、内联类。此外,Kotlin编译器切换到一个新的JVM中间表示,目的是提高性能,并为新的语言特性提供基础。Kotlin可以作为"},{"type":"link","attrs":{"href":"https:\/\/www.jetbrains.com\/idea\/download","title":null,"type":null},"content":[{"type":"text","text":"IntelliJ IDEA"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"和"},{"type":"link","attrs":{"href":"https:\/\/developer.android.com\/studio\/","title":null,"type":null},"content":[{"type":"text","text":"Android Studio"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"的一部分安装,也可以通过克隆它的"},{"type":"link","attrs":{"href":"https:\/\/github.com\/JetBrains\/kotlin","title":null,"type":null},"content":[{"type":"text","text":"GitHub仓库"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"安装。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":5},"content":[{"type":"text","text":"嘉宾简介:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"Roman Elizarov "},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"是JetBrains的Kotlin项目负责人,目前以首席语言设计师的身份专注于Kotlin语言设计。在2000年,Roman Elizarov从圣彼得堡ITMO毕业,开始了专业软件开发生涯。在本科学习期间,他参加了国际大学生编程竞赛(ICPC)。自1997年至今,Roman担任ICPC北欧地区首席法官。他还保持学术联系,并在ITMO教授并发和分布式编程课程。Roman Elizarov的职业生涯的大部分时间都在Devexperts工作,他在那里为领先的经纪公司和市场数据交付服务设计和开发了高性能的交易软件,这些服务通常每秒处理数百万个事件。他是Java和JVM方面的专家,特别是在并发、实时数据处理、算法和现代架构的性能优化方面。自2016年以来,他一直在JetBrains从事Kotlin方面的工作,并为Kotlin协程的设计和Kotlin协程库的开发做出了贡献。"}]},{"type":"heading","attrs":{"align":null,"level":5},"content":[{"type":"text","text":"作者简介:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"Sergio De Simone"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 是一名软件工程师。Sergio在一系列不同的项目和公司担任软件工程师超过15年,包括西门子、惠普和小型初创企业等不同的工作环境。在过去的几年中,他一直专注于移动平台和相关技术的开发。他目前在BigML,Inc.工作,负责iOS和OS X开发。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":5},"content":[{"type":"text","text":"原文链接"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/articles\/kotlin-ten-years-qa\/","title":null,"type":null},"content":[{"type":"text","text":"Kotlin at Ten. Interview with JetBrains’ Roman Elizarov"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章