2021年2月, 程式語言的七國集團峰會在風景優美的Linux莊園如期召開。
C, Java, Python, JavaScript , C++ , C#, PHP 相繼入座。
C語言作為主持人,在大螢幕上用一幅圖總結了一下近二十年各國的沉浮。
各國代表對C語言的工作紛紛表示讚賞。
C語言說道:我們七國集團已經統治IT界20多年了,歷經桌面時代,網際網路時代,大資料時代,人工智慧時代而不倒,這次會議就是爭取把大好局面再維持20年!
C語言隨後介紹了本次G7峰會的兩大議題。
1. 解決內部爭端
2. 應對新程式語言的威脅
第一個議題剛剛開始各方就吵成了一鍋粥。
Java率先向JavaScript發難, 指責它不遵守約定,用Node.js向後端發起進攻的惡劣行為。
C#憤怒地舉報JavaScript 用Electron 對桌面開發的蠶食。
JavaScript則辯解說C/C++/C#也可以寫程式碼執行在瀏覽器端中,不信你們去看WebAssembly,還有Java也做桌面開發例如IDEA和Eclipse.....
眼瞅著第一個議題就要打起來,C老大趕緊呼籲各方冷靜,要約束各方行為,為了大局不要內訌。
經過一番脣槍舌戰, 各方再次確立了自己的勢力範圍:
桌面開發:C#
前端開發:JavaScript
系統級軟體:C/C++
後端開發:Java/C#
大資料:Java/ Python
人工智慧:C++/Python
然後大會轉入第二個議題,C語言給每個人發了一份報告, 上面列舉了最近10年出現的程式設計新秀。
Go : 2009
Rust : 2010
Kotlin : 2011
Elixir : 2011
Julia : 2012
TypeScript : 2012
Swift : 2014
Python代表立刻建議把Elixir和Swift劃掉, 因為前者結合了Erlang和RoR,太小眾了。後者只在蘋果的生態系統中折騰,對G7沒啥威脅。
JavaScript則建議劃掉TypeScript, 畢竟和自己師出同門,最終還得編譯成JavaScript才能執行。
大家紛紛表示同意。
Java 也不甘示弱地要求把Kotlin從列表中劃掉,因為那只是一堆語法糖而已,對他沒啥威脅。
C#提醒Java不可大意,畢竟Kotlin有Google這麼一個大腿, Google 為了擺脫Java API的束縛,和Oracle大打出手,正在力推Kotlin。
Java則堅定地認為Kotlin只是一點點改良,不是革命,成不了氣候。
C語言表達了對Julia的擔憂,因為他號稱將 C 語言的速度、Ruby 的靈活、Python 的通用性、Matlab的數學符號結合在一起,支援並行處理!
Python則不屑一顧,說野心越大失望越大,一個人不可能把所有的好都得了去, 再說了,它主要是面向科學計算的,不用擔心。
C腦子中突然閃過一句名言:弱小不是生存的障礙,傲慢才是。
名單上只剩下了Go、Rust。
Go : 2009
Rust : 2010
Kotlin : 2011
Elixir : 2011
Julia : 2012
TypeScript : 2012
Swift : 2014
剩下的這兩位不可小覷, Rust和C一樣貼近硬體,還能解決野指標問題,微軟已經表態支援。
Go語言號稱網際網路時代的C語言,這些年藉著雲端計算的東風,發展迅速, 後端已經有很多系統用它開發了。
剛才熱鬧的氣氛一下子緊張下來,大家都在盤算他們對自己利益的侵犯有多大。
良久以後,Python放了一個大招:“他們侵犯了程式設計師的人權!”
原因是Go語言把型別定義放到變數名的後面,程式設計師很不適應,甚至真氣逆行。
Rust的概念奇葩,所有權和借用難以被常人所理解,一段簡單的程式碼都編譯不過。
(碼農翻身注:參見文章《我中了美人計》《自從我學了Rust,就開始了受虐之旅》)
大家都覺得可行,G7控制著主流輿論,佔據道德制高點, 打人權牌輕而易舉,這個招數屢試不爽。
Java則持保留意見,因為本家兄弟Scala和Go一樣,也是把型別放到後面。
C語言則表示他和Ken Thompson很熟,如果實在不行就考慮招安Go,把G7變成G8。
只不過新人加入會觸動現有的利益,需要從長計議。
為期半天的G7峰會勝利閉幕了,參會各方再次劃分了各自勢力範圍,發表了一個重要的宣言。
宣言強調,G7經過多年的發展,非常穩定、成熟、強大,並且已經積累了海量的類庫,擁有龐大的生態系統,採用新語言的成本極其高昂,風險極大。
宣言譴責了Go和Rust對程式設計師人權的侵犯,決定對他們實施為期一年的制裁,希望他們幡然悔悟,及時懸崖勒馬。
宣言最後委婉地指出:G7的大門始終對任何人敞開,只要符合G7價值觀的語言都歡迎加入。
(完)