在之前一篇備受關注的文章“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極有可能會取得成功。