写点什么

JetBrains 大力推广 Kotlin 为哪般?

  • 2017-12-25
  • 本文字数:1335 字

    阅读完需:约 4 分钟

在之前一篇备受关注的文章“ Kotlin 与 Java 之争”中,Vasiliy Zukanov 讲述了发生在 Kotlin 与 Java 之间的一场没有硝烟的战争,并认为企业从 Java 转向 Kotlin 可能需要付出更大的代价。最近,Vasiliy 继续发文,对 JetBrains 大力推广 Kotlin 背后的原因进行了深入分析。

外部一致认为,JetBrains 大力推广 Kotlin 主要是出于开发效率方面的考虑。他们认为 Java 在某些方面存在“不足”,所以他们要发明一门新的语言,提升开发效率。否则的话,JetBrains 为什么要费这么大劲开发 Kotlin,并把它用在自己的项目当中?

但事实果真如此吗?作为开发人员,他们通常只能看到项目的局部,无法从全局看到整个项目的成本情况,他们认为花几年时间使用一门全新的语言来提升开发效率是理所当然的事。而 JetBrains 作为一家非常成功的公司,如果说它在推出 Kotlin 之前没有给投资人带来任何回报那是不可能的。开发软件产品需要花费巨额资金,薪水、市场推广等方面的费用动不动就是上百万甚至上千万美金。如果说要靠开发一门新语言提升生产力来获得更多回报,那可能这家公司早就不复存在了。更何况,并没有实际证据表明 Kotlin 给他们带来生产力的提升。但不管怎样,JetBrains 作为一家成功的商业软件公司是不争的事实。JetBrains 之所以要大力推广 Kotlin,跟它背后的商业策略不无关系。

JetBrains 的主要业务是开发和销售软件开发工具,IDE 是他们最主要的产品线。而编程语言对 IDE 来说至关重要,这就是为什么 JetBrains 要极力将 Kotlin 商业化。但编程语言的商业化太难做,因为切换编程语言对于企业来说代价巨大,所以很难说服企业改用其他编程语言。从 IDE 厂商的角度来看,他们需要为支持的每一种语言开发工具。现在的开发语言这么多,每个开发者和企业又都有自己的偏好,所以 IDE 厂商必须憋足了劲开发一大堆工具。对于 JetBrains 来说,最重要的是想办法把开发者笼络到同一门易于维护的语言上,而最好维护的语言莫过于自家开发的语言了。

反过来说,IDE 对于编程语言来说也是至关重要的。编程语言难以商业化,那么 IDE 呢?不同的 IDE 有不同的功能特性和外观,开发者也会有自己的喜好,所以 IDE 也是难以互相替代的。不过相比编程语言,要切换 IDE 还是比较容易的。那些不愿意掏钱为个人项目购买 IntelliJ 许可的开发者完全可以使用开源的 IDE 代替,比如 Eclipse、Atom 等等。所以说,JetBrains 可能面临流失用户的风险,因为他们有太多可替代的 IDE。不仅如此,如果出现了一门新语言,大家蜂拥而上,那么 JetBrains 能够分到的市场份额可能更小了。所以,JetBrains 要想在 IDE 大战中保持市场份额,最重要的是不要让开发者有机会切换到其他 IDE,那怎样才能做到这一点呢?答案就是把开发者固定在自己开发的语言上。

除了以上两点,推广 Kotlin 对 JetBrains 来说还有第三个好处,那就是顺便提升他们的非 IDE 工具的市场份额。除了 IDE 产品,JetBrains 还推出了持续集成服务器产品 TeamCity 和问题跟踪系统 YouTrack 等。一般来说,使用了 Kotlin 和 IntelliJ 的用户也很有可能会使用他们家的其他产品。

综上所述,从长远来看,自家语言加上一整套开发工具栈,极有可能让 JetBrains 步微软.NET 生态系统的后尘。如果这是他们的终极目标,那么 JetBrains 极有可能会取得成功。

2017-12-25 18:0011796
用户头像

发布了 322 篇内容, 共 147.6 次阅读, 收获喜欢 148 次。

关注

评论

发布
暂无评论
发现更多内容

Supervisor 基础配置

耳东@Erdong

Supervisor 9月日更

雪花算法,什么情况下发生 ID 冲突?

马丁玩编程

Java lua redis 雪花算法

【Vuex 源码学习】第二篇 - vuex 插件安装 install 逻辑

Brave

源码 vuex 9月日更

架构实战训练营|作业|模块3

Frode

架构实战

网络攻防学习笔记 Day136

穿过生命散发芬芳

vpn 9月日更 恶意代码

在线JSON转sarcastic工具

入门小站

工具

内网渗透攻击技术的利用

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

算法裁员,释放出了哪些“恶之花”?

脑极体

WEB全屏API简介及示例

devpoint

web api 9月日更

“妈我不想去上课!”“不行你是老师!”

梦想橡皮擦

9月日更

从特岗教师的需求金字塔,重新理解乡村、教育和科技

脑极体

链路压测中如何记录每一个耗时的请求

FunTester

性能测试 接口测试 测试框架 FunTester 链路压测

深入剖析 | XLSX海量数据复杂填充解决方案

九叔(高翔龙)

中间件 EasyExcel Apache POI java核心

【LeetCode】寻找峰值Java题解

Albert

算法 LeetCode 9月日更

17. 关于超人工智能来临,霍金的忧虑

Databri_AI

人工智能

架构实战营模块三作业

michael

#架构实战营

linux系列之:告诉他,他根本不懂kill

程序那些事

Linux 命令 程序那些事 kill

微前端拆分实践

Teobler

大前端 服务拆分

怎样才能写好前端页面,css书写顺序和布局真的有那么重要吗

你好bk

CSS html 大前端 结构

JavaScript 进阶(下)

Augus

JavaScript 9月日更

聊一聊芯片上电复位和掉电检测

不脱发的程序猿

嵌入式 硬件开发 芯片上电 上电复位 掉电检测

MySQL事务学习笔记

风翱

MySQL 9月日更

产品设计的几个原则

石云升

产品思维 产品思考 9月日更

枚举在 Golang 中的实现

baiyutang

Go 语言 9月日更

Sentinel 常用流控算法

Z

sentinel 流控算法 服务监控 服务降级 流控

【Flutter 专题】46 图解新的状态管理 Provider (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

☕【JVM 技术指南】「理论总结笔记」Java 虚拟机垃圾回收认知和调优的"思南(司南)"【下部】

码界西柚

ZGC JVM G1垃圾回收器 9月日更

【架构实战营作业】模块三:学生管理系统架构设计文档

聆息

推荐一个Mac端的截图工具

IT蜗壳-Tango

9月日更

hutool如何实现数据导出到Excel

卢卡多多

hutool 数据导出 9月日更

linux之iconv命令

入门小站

Linux

JetBrains大力推广Kotlin为哪般?_移动_薛命灯_InfoQ精选文章