編程語言巔峯之戰,誰纔是真正的王者?

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"編程語言排名一直以來都是備受爭議的話題,當我們彼此之間討論的時間不同,角度不同,結果往往就會不同。因此,我們看到很多機構或者組織每年都會發布很多編程語言排行榜,這些排行榜的算法、角度都不盡相同。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"TOIBE編程語言排行榜就是編程語言流行趨勢的一個重要指標,它基於互聯網有經驗的開發者、課程、第三方廠商數量等數據,每個月更新排名情況。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"今年是TOIBE編程語言排行榜發佈的20週年"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":", TOIBE榜單第一次發佈時,排名前三的編程分別是Java、C和C++,而在今年7月的最新榜單中,排名前三的編程語言分別是C、Java和Python。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"TIOBE編程語言排行榜雖然是比較權威和流行的榜單,但是它的排名結果主要體現了國外開發者的喜好。而目前國內整體 IT 技術發展與國外有很大不同,因此,我們需要一個真實客觀反映各種編程語言在國內排名的榜單。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"因此,InfoQ 特別推出【InfoQ 編程語言排行榜】,徵集國內開發者、程序員對編程語言的喜愛情況。在榜單問題設置方面,我們邀請國內的技術專家與編輯同學共同擬定了八個有代表性的問題,同時精心挑選了當前最流行、最受歡迎的編程語言,誠邀您來投上"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.cn\/talk\/VPZYhxw3YpYANxYLx0QR?utm_source=infoq-webl&utm_medium=article","title":"xxx","type":null},"content":[{"type":"text","text":"寶貴一票"}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"人氣飆升的編程語言——Julia"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"近年來,"},{"type":"link","attrs":{"href":"https:\/\/s.geekbang.org\/search\/c=0\/k=Julia\/t=","title":"xxx","type":null},"content":[{"type":"text","text":"Julia"}]},{"type":"text","text":" "},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"編程語言掀起了一股新的熱潮。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"今年7月9日,由 Julia 高性能編程語言初創團隊建立的 Julia Computing 公司,宣佈完成由 Dorilton Ventures 領投的 2400 萬美元 A 輪融資(摺合人民幣約 1.6 億)。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"目前Julia編程語言在全球用戶中擁有 2900 多萬次下載量,具有 3.4 萬顆星,已經有數千位開源開發者爲 Julia 及其 6000 多個註冊軟件包貢獻力量。全球超過 1500 所高校已經在使用 Julia 並教授相關知識,包括麻省理工、斯坦福大學、加州大學伯克利分校等世界一流學府。目前全球已經有超過 1 萬家公司使用 Julia 語言,其中包括阿斯利康、貝萊德、谷歌、英特爾、微軟、Moderna、輝瑞、NASA、聯邦航空管理局以及紐約聯邦儲備銀行等重量級用戶。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"自 2012 年正式亮相以來,Julia 社區規模呈指數級增長。Julia 幫助科學家及工程師們解決各類大規模數據科學問題,消除了只能使用高級語言(例如 Python、Matlab 或 R 語言)進行測試與建模環節、並使用其他高性能低級語言(例如 C 或 C++)進行生產與擴展的割裂問題。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Julia 語言的締造者們,希望它能同時滿足計算機科學領域的專家,以及在實際應用方面使用過 R、Matlab、SAS 和 Python 等語言工具的開發者。因此在技術實現上包含了兩個核心方面:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"一是研究動態語言的哪些特徵使其難以有效地進行編譯,這些特徵可能包括任意的非局部效應。開發者進行的一些操作可能產生了持久的正面影響,但是沒有實現有效的表達。如果你對此加以限制,並且對語言的設計方式有更加巧妙的構思,就可以獲得類似動態和高效的語言,但同時也可能導致傳統動態語言出現性能問題。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"二是“動態多分派(dynamic multiple dispatch)”,它是 Julia 語言的核心範式,允許針對特定類型的參數進行動態最優算法選擇。很多年前人們就開始研究動態多分派,但是從來沒有一個系統能夠從頭到尾真正對其進行優化。所以在 Julia 出現之前,這種編程範例的優點從未在系統中真正實現過。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/74\/74c82341b3d06a96a44fdadbbae08f62.png","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"與其它編程語言相比,Julia 性能優異"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在經歷了默默無聞的十餘年耕耘積累之後,開源 Julia 終於走上了大型企業代碼現代化舞臺的中心。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"最平民化的編程語言——JavaScript"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"根據 State of the Developer Ecosystem 2021 調研結果顯示,過去五年,JavaScript是最平民化的編程語言,幾乎人人都可以隨手寫幾個"},{"type":"link","attrs":{"href":"https:\/\/s.geekbang.org\/search\/c=0\/k=JavaScript\/t=","title":"xxx","type":null},"content":[{"type":"text","text":"JavaScript"}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"語句。通過對32000名開發者的調研,該報告還披露了當前有69%的人正在使用JavaScript,39%的人將JavaScript作爲自己主要的編程語言。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"那麼全球到底有多少JavaScript開發者呢?SlashData預計全球開發者大約爲2430萬,而JavaScript在全球約有1240萬開發者,當然其中包括TypeScript 和 CoffeeScript 開發者,因爲它們都是基於相同的 ECMAScript 標準。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"開發者衆多也在一定程度上決定了JavaScript會被世界上絕大多數的網站所使用,同時主流瀏覽器Chrome、IE、Firefox、Safari、Opera等也都支持JavaScript。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"爲什麼JavaScript會成爲最平民化、流行的編程語言呢?有開發者表示,一方面是因爲硬件性能的不斷提升,JavaScript 引擎性能得到顯著緩解,讓開發者有了很大的騰挪空間;另一方面則是因爲JavaScript 學起來容易,寫起來簡單,不涉及太多底層細節。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"目前不僅是前端開發者在使用JavaScript,後端開發者也開始使用JavaScript。更重要的是,當軟件開發行業的規模擴張,企業會更專注於業務,不再更多地關注底層基礎設施,因此需要越來越簡單易用的工具,JavaScript 自然成爲最合適的選擇。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"編程語言的後起之秀——Go語言"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Go語言是Google爲解決內部問題而研發的語言,當時Google面臨的問題是C++代碼量龐大、編譯速度慢,程序維護難度大,更新成本高等等。因此,Go語言的設計目標就是消除各種緩慢和笨重、改進低效和擴展性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Go語言也被人稱爲互聯網時代的C語言。在Go語言設計者看來,最值得學習的編程語言是C語言,而C語言能盛行多年的原因是足夠簡單,在這一點上,Go語言也足夠簡單。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"自Go語言發佈之後,很多公司尤其是雲計算公司都開始使用Go語言來重構基礎架構,甚至很多項目都直接採用Go語言來開發。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"使用Go語言的公司包括Facebook、Google、Apple、亞馬遜雲科技、騰訊、百度、京東、小米、360、美團、滴滴等,而使用Go語言開發的項目更是不勝枚舉,例如我們所熟知的Kubernetes、Docker、etcd等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在InfoQ此前發佈的編程語言排行榜調查中,Go語言以19.3%的得票率成爲了開發者最想學習的編程語言。那麼,在這次調查中,Go語言是否真的會成爲後起之秀,讓我們拭目以待。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"寫在最後"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"我們爲什麼要關注編程語言的排行情況呢?其實並不是爲了區分出編程語言的優劣好壞,不同的編程語言在不同場景下都有各自的優勢。之所以關注排名,是因爲排名其實在一定程度上反映出了該語言在市場上的表現,對於開發者的職業發展會有所幫助。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"目前很多榜單反映的是全球開發者的編程語言應用情況,很多結論與國內開發環境、發展情況都有差距。因此,我們希望匯聚在InfoQ平臺上的百萬開發者能夠通過我們設置的榜單,評選出真正符合國內開發現狀的編程語言榜單。 "}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章