2019年4月,Java的收費時代來臨了!
Java是由Sun微系統公司在1995年推出的編程語言,2010年Oracle收購了Sun之后,Java的所有者也就自然變成了Oracle。2019年,Oracle宣布將停止Java 8更新的免費支持,未來Java的更新只適用于已付費的許可證持有者。
Java收費的消息讓人不得不聯想到這些問題,其它語言是否會和Java一樣也加入到“收費大軍”呢?當編程語言掌握在企業手中時,是生機還是危機?
近日,RedMonk發布了2019年第一季度編程語言排行榜,排在前十位的分別是JavaScript、Java、Python、PHP、C#、C++、CSS、Ruby、C和Objective-C。RedMonk編程語言排行榜一年發布兩次,其主要的排行依據是編程語言在 GitHub 和 Stack Overflow 上的代碼使用情況與討論數量,經過統計分析后排序得出編程語言在未來的采用趨勢。
上圖是RedMonk統計的從2012年到2019年,各個編程語言的排名變化情況。如果仔細觀察分析這張圖片中我們可以發現兩個很有趣的現象。
第一是編程語言的頭部競爭一直都比較平穩,RedMonk的Top 5玩家JavaScript、Java、PHP、Python和C#,自2014年開始就沒有變過,就連排位順序也只是出現過幾次很小的變動。
第二是RedMonk榜單排在第10位到第20位的編程語言中,很多上升速度比較快的編程語言背后都有公司支持。
- 排在第10位的Objecr-C:Object-C最初是由Brad Cox 和 Tom Love 開發的,但是后來被Apple“收編”了。
- 排在第11位的Swift:Swift是Apple 2014年發布的新開發語言,易學易用。
- 排在第12位的TypeScript:TypeScript最初是微軟的一個內部項目,2014年微軟正式發布該語言。
- 排在第15位的Go:Go是由 Google 員工 Robert Griesemer、Rob Pike 和 Ken Thompson 于 2007 年開發的,2009 年開源,并快速成為了構建云應用程序的核心語言。
- 排在第20位的Kotlin:Kotlin最初是由 JetBrains 開發的,2017年被Google“收編”用于Android開發。
其實,早前的Web語言基本是由黑客個人編寫的,例如 PHP是Rasmus Lerdorf編寫的, Python是Guido Van Rossum編寫的。20世紀90年代末是互聯網發展的黃金時代,當時涌現出的大量草根項目和小型項目都在后來發展稱了大型項目。以編程語言為例,當時人們不再使用C語言來構建CGI Web應用,而是在積極采用PHP、JavaScript等其它語言。
“C++之父” Bjarne Stroustrup在攻讀博士學位時就開始研究 C++,然而直到1983年,他才在AT\u0026amp;T使用了C++,他在回憶這段經歷時表示:
我在開發C++時,AT\u0026amp;T其實正面臨著困境,AT\u0026amp;T 構建的系統比大多數組織要更復雜,可靠性要求更高,所以我們必須自己來影響市場,制定滿足我們自己需求的標準,否則的話,我們將沒有工具來構建系統。
在我開發C++之前,Ken Thompson 和 Dennis Ritchie 已經開發了 Unix 和 C。AT\u0026amp;T 可能是世界上最大的軟件工具的“民用用戶”,我們使用了更為廣泛的系統:從最小的嵌入式處理器到最大的超級計算機和數據處理系統。所以,我們當時的想法就是這個語言要盡可能多的適用于這些技術文化和平臺。
通用性至關重要,專有特性會被視為限制平臺和供應商的選擇。因此,AT\u0026amp;T 無論是過去,還是現在,一直都是是正式標準的主要支持者(例如,ISO C、ISO C++)。
換句話說,AT\u0026amp;T 通過推動 C++ 來成為行業標準,而C++也通過AT\u0026amp;T從一個博士生心血來潮的作品成為了一個行業規范。
但是當時間行進至21世紀,這種情況就發生了變化。如果說“互聯網+”初期是惠及了民眾,那么當下一波浪潮移動應用到來時,主導者就變成了企業。語言規則主要由Google、Apple 和 Microsoft 主導。
很多新出現的語言一開始就是由企業贊助的,例如Microsoft 的 CNo,這些新的編程語言汲取了過去的經驗教訓,在默認情況下,每種新語言都是開源的,也不會再有一家企業試圖用專有語言來構建專有程序的情況了。當然,也有一些最初由黑客開發的語言被企業“收編”,例如Object-C。
在這一時期,網絡和應用程序的未來大部分是建立在企業的現金上,而不是基于社區動力。那么,這種情況是好是壞呢?
從上文中不難看出,當下流行的編程語言中有很大一部分背后是有企業投資的。企業投資的好處是資金充裕,編程語言能夠持續穩定的發展,不會突然夭折。但是也有弊端,就是企業可能會從中獲取利潤,例如Swift,每有一個使用Swift構建的應用程序,Apple就會從中30%的費用。
更為恐怖的是,企業主導編程語言有可能會導致生態系統鎖定,而開源編程語言則是形成這種鎖定的重要環節。一旦企業的生態系統和應用程序重度依賴于某種編程語言,且無法輕易被替換時,那么就很可能會被該編程語言背后的公司牽著鼻子走,就像之前Oracle在數據庫領域的“廠商鎖定”和IBM在大機領域的“廠商鎖定”。
編程語言的“廠商鎖定”并不是遠在天邊,就在不久之后,Java 8更新就要開始收費了!2019年1月份,Oracle宣布將停止Java 8更新的免費支持,未來Java的更新只適用于已付費的許可證持有者,無有效許可證的用戶不能將Java 8 的安全更新應用于商業用途。
從2019年4月起,Oracle會每季度發布一次Java 8的重大修補更新,非公開的首次重大修補更新將于4月16日發布。在很多企業應用中,Java 8仍是主力,相信Oracle這次的收費舉動,會對眾多企業產生影響。