[关闭]
@pockry 2017-11-18T12:27:46.000000Z 字数 2199 阅读 1418

专访Hadi Hariri:Kotlin为Web开发带来更多机会

移动


今年以来,Kotlin的形势非常好,不是小好,而是大好。

从谷歌在I/O大会上宣布Kotlin成为Android一等开发语言,到现在已经有六个月时间了。Google宣称,在这段时间里,Google Play中使用Kotlin开发的应用数量翻了一翻,使用Android Studio 3.0开发的项目当中有17%使用了Kotlin。

最近发布的Android Studio 3.0有了内建支持Kotlin的稳定版。Support Library 27增加了可空注解,让Kotlin API变得更友好。最近发布在GitHub上的Anroid Kotlin指南提供了Android Kotlin风格和互操作方面的指导。同时,官方还提供了一些应用示例,并在官方文档中添加了Kotlin的内容。

Android Studio 3.0 for Kotlin

Android Studio 3.0是第一个内建支持Kotlin的稳定版。基于IntelliJ对Kotlin的大力支持,很多IDE特性都表现良好,如代码自动完成和语法高亮。可以通过Code->Convert Java File to Kotlin File菜单将Java代码转成Kotlin代码,或者直接将Java代码片段黏贴到Kotlin文件里也能实现代码转换。

项目和代码模板也支持Kotlin。在创建新项目或代码文件时,可以选择Kotlin作为编程语言。

Kotlin相关工具的用户体验已经十分完美。不过还存在一些已知的问题,这些问题在未来的版本中将会得到解决。

Android Kotlin官方指南

Android Kotlin指南分为两个部分,一个是风格指南——在使用Kotlin进行Android开发时,谷歌建议了一组规则和代码标准,涵盖了命名约定、格式化、代码结构等方面的内容。另一个是互操作指南——为使用Java和Kotlin创建API提供了一组规则,让不同语言之间的交互更通畅。

前段时间,第一届KotlinConf也召开了,发布的消息更惊人,Kotlin要支持iOS和Web开发了,InfoQ记者就此消息,联系到Kotlin负责开发者支持的副总裁Hadi Hariri,了解到了一些进一步信息。

InfoQ:目前Kotlin开发团队有多少人,来自外部的贡献多吗?

Hadi:JetBrains上的Kotlin团队中有将近50人,这些人被分成多个小团队,包括编译和工具团队。就核心工作而言,因为Kotlin是一个合作性的项目,其中也包括很多来自社区的贡献,所以并没有什么特别之处。

InfoQ:到底有谁在使用Kotlin进行开发了,能给我们列举一些公司吗?

Hadi:现在无论是在Android内还是Android外,都有很多的公司正在使用Kotlin。就在上个星期,Stephanie Cuthbertson在KotlinConf上提到了其中一些用于Android应用的公司,例如Pinterest,Square,Expedia,Basecamp等。

InfoQ:Kotlin的梦想如此之大,是否有计划支持其他代码编译器或IDE(如Visual Studio Code)?

Hadi:我们没有计划在Visual Studio Code中支持Kotlin,但是我相信社区可能有一些语法高亮显示的插件。但是,除了IntelliJ IDEA,我们也已经支持Eclipse和NetBeans。我们最近还宣布了基于我们C/C++ IDE CLion的Kotlin/Native IDE的早期计划。

InfoQ:针对跨平台开发,我们已经有Xamarin,就像Kotlin/Native一样,Xamarin也为不同的平台生成原生代码,但Xamarin并未成为主流,为什么Kotlin仍选择相似的策略?

Hadi:要这么说,人们可能会在React Native 上问同样的问题,我们希望把Kotlin带到多平台上,这已经是我们这段时间以来战略的一部分了。我认为一个关键的区别是,我们通过互操作性和共享针对与平台无关的代码来拥抱平台,即在iOS上,您将直接使用iOS框架,而不是其上的抽象层。这可以使平台充分发挥其潜力。

InfoQ:对于前端开发者来说,将Kotlin应用于React app听起来有些奇怪,JavaScript有一些特殊特性如原型链,对其它语言来说需要做思维转换,对于协作开发我们也有TypeScript和Flow,所以为什么要让Kotlin支持Web开发?

Hadi:我相信对于喜欢和享受Kotlin的人来说,使用Kotlin开发React应用是一个有吸引力的选择,因为这不仅允许他们使用相同的语言,而且还可以重用和共享代码,并获得一些额外的好处,如使用Kotlin DSL而不是JSX来开发React组件。我们已经可以在(几乎)纯粹的Kotlin中构建复杂的Web应用程序,并且通过WebAssembly支持,JS互操作以及Kotlin自己的前端开发库,未来将有很多机会。

InfoQ:感谢您接收采访。

受访嘉宾介绍:

Hadi Hariri,众多开源项目的创建者和参与者,专注于Web开发和软件架构领域。著作了一系列技术书籍、教程以及有长达十五年的演讲经验。他还组织了Talking Kotlin技术会议,目前他在JetBrains带领开发者支持团队,并仍然花大量时间实际编写代码。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注