在之前一篇備受關(guān)注的文章“Kotlin與Java之爭”中,Vasiliy Zukanov講述了發(fā)生在Kotlin與Java之間的一場沒有硝煙的戰(zhàn)爭,并認(rèn)為企業(yè)從Java轉(zhuǎn)向Kotlin可能需要付出更大的代價(jià)。最近,Vasiliy繼續(xù)發(fā)文,對JetBrains大力推廣Kotlin背后的原因進(jìn)行了深入分析。
外部一致認(rèn)為,JetBrains大力推廣Kotlin主要是出于開發(fā)效率方面的考慮。他們認(rèn)為Java在某些方面存在“不足”,所以他們要發(fā)明一門新的語言,提升開發(fā)效率。否則的話,JetBrains為什么要費(fèi)這么大勁開發(fā)Kotlin,并把它用在自己的項(xiàng)目當(dāng)中?
但事實(shí)果真如此嗎?作為開發(fā)人員,他們通常只能看到項(xiàng)目的局部,無法從全局看到整個(gè)項(xiàng)目的成本情況,他們認(rèn)為花幾年時(shí)間使用一門全新的語言來提升開發(fā)效率是理所當(dāng)然的事。而JetBrains作為一家非常成功的公司,如果說它在推出Kotlin之前沒有給投資人帶來任何回報(bào)那是不可能的。開發(fā)軟件產(chǎn)品需要花費(fèi)巨額資金,薪水、市場推廣等方面的費(fèi)用動(dòng)不動(dòng)就是上百萬甚至上千萬美金。如果說要靠開發(fā)一門新語言提升生產(chǎn)力來獲得更多回報(bào),那可能這家公司早就不復(fù)存在了。更何況,并沒有實(shí)際證據(jù)表明Kotlin給他們帶來生產(chǎn)力的提升。但不管怎樣,JetBrains作為一家成功的商業(yè)軟件公司是不爭的事實(shí)。JetBrains之所以要大力推廣Kotlin,跟它背后的商業(yè)策略不無關(guān)系。
JetBrains的主要業(yè)務(wù)是開發(fā)和銷售軟件開發(fā)工具,IDE是他們最主要的產(chǎn)品線。而編程語言對IDE來說至關(guān)重要,這就是為什么JetBrains要極力將Kotlin商業(yè)化。但編程語言的商業(yè)化太難做,因?yàn)榍袚Q編程語言對于企業(yè)來說代價(jià)巨大,所以很難說服企業(yè)改用其他編程語言。從IDE廠商的角度來看,他們需要為支持的每一種語言開發(fā)工具?,F(xiàn)在的開發(fā)語言這么多,每個(gè)開發(fā)者和企業(yè)又都有自己的偏好,所以IDE廠商必須憋足了勁開發(fā)一大堆工具。對于JetBrains來說,最重要的是想辦法把開發(fā)者籠絡(luò)到同一門易于維護(hù)的語言上,而最好維護(hù)的語言莫過于自家開發(fā)的語言了。
反過來說,IDE對于編程語言來說也是至關(guān)重要的。編程語言難以商業(yè)化,那么IDE呢?不同的IDE有不同的功能特性和外觀,開發(fā)者也會(huì)有自己的喜好,所以IDE也是難以互相替代的。不過相比編程語言,要切換IDE還是比較容易的。那些不愿意掏錢為個(gè)人項(xiàng)目購買IntelliJ許可的開發(fā)者完全可以使用開源的IDE代替,比如Eclipse、Atom等等。所以說,JetBrains可能面臨流失用戶的風(fēng)險(xiǎn),因?yàn)樗麄冇刑嗫商娲腎DE。不僅如此,如果出現(xiàn)了一門新語言,大家蜂擁而上,那么JetBrains能夠分到的市場份額可能更小了。所以,JetBrains要想在IDE大戰(zhàn)中保持市場份額,最重要的是不要讓開發(fā)者有機(jī)會(huì)切換到其他IDE,那怎樣才能做到這一點(diǎn)呢?答案就是把開發(fā)者固定在自己開發(fā)的語言上。
除了以上兩點(diǎn),推廣Kotlin對JetBrains來說還有第三個(gè)好處,那就是順便提升他們的非IDE工具的市場份額。除了IDE產(chǎn)品,JetBrains還推出了持續(xù)集成服務(wù)器產(chǎn)品TeamCity和問題跟蹤系統(tǒng)YouTrack等。一般來說,使用了Kotlin和IntelliJ的用戶也很有可能會(huì)使用他們家的其他產(chǎn)品。
綜上所述,從長遠(yuǎn)來看,自家語言加上一整套開發(fā)工具棧,極有可能讓JetBrains步微軟.NET生態(tài)系統(tǒng)的后塵。如果這是他們的終極目標(biāo),那么JetBrains極有可能會(huì)取得成功。