當編程語言掌握在企業手中,是生機還是危機?

2019年4月,Java 8收費時代到來了!2019年1月份,Oracle宣佈將停止Java 8更新的免費支持,未來Java的更新只適用於已付費的許可證持有者。近日,Oracle發送郵件通知用戶 Java 8 第一次、收費的季度重大修補更新將在 4 月 16 號發佈。

行業分析公司Redmonk於近日發佈了2019年第一季度編程語言排行榜,排在前十位的分別是JavaScript、Java、Python、PHP、C#、C++、CSS、Ruby、C和Objective-C。RedMonk編程語言排行榜一年發佈兩次,其主要依據編程語言在 GitHub 和 Stack Overflow 上的代碼使用情況與討論數量,經過統計分析後排序得出編程語言在未來的採用趨勢。

相信很多人在看到RedMonk的排行榜時都會有小小的疑惑,這和之前TIOBE發佈的編程語言排行榜有點不同。TIOBE 發佈的3月編程語言Top 10分別爲:Java、C、Python、Visual Basic .NET、C#、JavaScript、PHP、SQL和Objective-C。

但是,如果仔細對比這兩份編程語言排行榜就會發現它們的Top10中有7個編程語言是相同,只是排名略有不同。事實上,編程語言的頭部競爭一直都比較平穩,RedMonk的Top 5玩家JavaScript、Java、PHP、Python和C#,自2014年開始就沒有變過,就連排位順序也只是出現過幾次很小的變動。

除去頭部玩家,把觀察範圍擴大到編程語言 Top 20中,大家還會發現一個更有趣的現象,那就是上升速度很快的編程語言背後都有公司支持。以RedMonk榜單爲例,我們來看看這些“有背景”的編程語言:

  • 排在第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&T使用了C++,他在回憶這段經歷時表示:

我在開發C++時,AT&T其實正面臨着困境,AT&T 構建的系統比大多數組織要更復雜,可靠性要求更高,所以我們必須自己來影響市場,制定滿足我們自己需求的標準,否則的話,我們將沒有工具來構建系統。

在我開發C++之前,Ken Thompson 和 Dennis Ritchie 已經開發了 Unix 和 C。AT&T 可能是世界上最大的軟件工具的“民用用戶”,我們使用了更爲廣泛的系統:從最小的嵌入式處理器到最大的超級計算機和數據處理系統。所以,我們當時的想法就是這個語言要儘可能多的適用於這些技術文化和平臺。

通用性至關重要,專有特性會被視爲限制平臺和供應商的選擇。因此,AT&T 無論是過去,還是現在,一直都是是正式標準的主要支持者(例如,ISO C、ISO C++)。

換句話說,AT&T 通過推動 C++ 來成爲行業標準,而C++也通過AT&T從一個博士生心血來潮的作品成爲了一個行業規範。

但是當時間行進至21世紀,這種情況就發生了變化。如果說“互聯網+”初期是惠及了民衆,那麼當下一波浪潮移動應用到來時,主導者就變成了企業。語言規則主要由Google、Apple 和 Microsoft 主導。

很多新出現的語言一開始就是由企業贊助的,例如Microsoft 的 CNo,這些新的編程語言汲取了過去的經驗教訓,在默認情況下,每種新語言都是開源的,也不會再有一家企業試圖用專有語言來構建專有程序的情況了。當然,也有一些最初由黑客開發的語言被企業“收編”,例如Object-C。

在這一時期,網絡和應用程序的未來大部分是建立在企業的現金上,而不是基於社區動力。那麼,這種情況是好是壞呢?

從上文中不難看出,當下流行的編程語言中有很大一部分背後是有企業投資的。企業投資的好處是資金充裕,編程語言能夠持續穩定的發展,不會突然夭折。但是也有弊端,就是企業可能會從中獲取利潤,例如Swift,每有一個使用Swift構建的應用程序,App就會從中30%的費用。

更爲恐怖的是,企業主導編程語言有可能會導致生態系統鎖定,而開源編程語言則是形成這種鎖定的重要環節。一旦企業的生態系統和應用程序重度依賴於某種編程語言,且無法輕易被替換時,那麼就很可能會被該編程語言背後的公司牽着鼻子走,就像之前Oracle在數據庫領域的“廠商鎖定”和IBM在大機領域的“廠商鎖定”。

編程語言的“廠商鎖定”並不是遠在天邊,就在不久之後,Java 8更新就要開始收費了!2019年1月份,Oracle宣佈將停止Java 8更新的免費支持,未來Java的更新只適用於已付費的許可證持有者,無有效許可證的用戶不能將Java 8 的安全更新應用於商業用途。

(圖源網絡,Oracle發給用戶的關於Java 8收費的提醒郵件)

從2019年4月起,Oracle會每季度發佈一次Java 8的重大修補更新,非公開的首次重大修補更新將於4月16日發佈。在很多企業應用中,Java 8仍是主力,相信Oracle這次的收費舉動,會對衆多企業產生影響。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章