JetBrains 用 Kotlin 布了一個大局

Tom8300 7年前發布 | 11K 次閱讀 Kotlin

 

2011年,在經過了一年精心開發之后,JetBrains發布了他們的JVM編程語言Kotlin。2016年2月15日,Kotlin 1.0發布,這是第一個正式穩定版。在2017年5月的Google IO開發者大會上,谷歌宣布Android平臺正式支持Kotlin,Kotlin從此成為Android的一等開發語言。

Kotlin也被戲稱為Android上的Swift,并與Java之間展開了一場沒有硝煙的角逐戰。很多人認為,JetBrains之所以推出Kotlin,主要是想開發出一門比Java更好的編程語言。因為他們覺得Java難以為他們帶來更高的開發效率,Java既笨重又啰嗦,開發同一個功能通常需要寫更多的代碼。

有人說Kotlin可讀性比Java好,語法也比Java更勝一籌。但可讀性和語法體驗都是很主觀的東西,我們又如何從客觀角度去衡量一門語言的“可讀性”呢?既然沒有人做過此類實驗,那么就沒有任何客觀的數據可以支撐這一觀點。而語法會影響可讀性的說法也是站不住腳的。相信每個人都學過幾門編程語言,在開始學習一門新語言時,確實會有一段時間難以看懂代碼,但隨著閱讀代碼量的增加,逐漸熟悉了這門語言之后,就不會被語法方面的東西牽絆住了。即使學的是Lisp,一旦熟悉了它的語法,適應了Lisp的括號之后,也就感覺不到它們的存在了。所以,Kotlin提供的語法糖對可讀性產生的影響也是微乎其微的。

相反,在閱讀了大量別人的代碼之后,我們似乎可以得出這樣的結論:如果開發人員可以使用某一門語言寫出可讀性很高的代碼,那么他們也完全可以使用其他語言寫出具備同樣可讀性的代碼。換句話說,代碼的可讀性和語言無關,它完全取決于開發者的編碼能力和代碼閱讀者的理解能力。

現在讓我們回過頭來,思考一下JetBrains所說的要提高生產效率是為了什么?對于一家企業來說,提升生產效率當然是為了節約成本,賺取更多的利潤。JetBrains是一家非常成功的軟件公司,這一點是不可否認的。但要說如此成功的一家公司居然要靠一門編程語言提升生產效率來提升競爭力,那自然是說不過去的。更何況,他們從2011年開始就持續投入資源開發Kotlin,如此大費周章,難道只是為了要開發一門看似會帶來更“高”生產力的編程語言?對于JetBrains這樣的公司來說,投入研發的資金動不動就要幾百上千萬美元,員工薪水、市場推廣等方面的費用都不是小數目。而且這么多年了,如果他們沒有給股東賺到錢,恐怕到現在已經不復存在了。再則,Kotlin是不是實實在在給他們帶來了生產力的提升還是個很大的未知數。

JetBrains是一家靠出售開發工具為生的公司,在商言商,如果我們從他們的商業策略角度來分析問題,或許能夠找到更恰當的理由來解釋為什么JetBrains要極力推廣Kotlin。

IDE是JetBrains最主要的產品線,而編程語言對IDE來說至關重要。但編程語言的商業化太難做,因為切換編程語言對于企業來說代價巨大,所以很難說服企業改用其他編程語言。從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所說的提升生產力只不過是個幌子,他們的終極目標是鎖定用戶,牢牢地釘住市場份額。

 

來自:http://mp.weixin.qq.com/s/sVD95crd7K1pIdGQ3JKTOw

 

 本文由用戶 Tom8300 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!