為何 Go 的人氣正在飛漲

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。#### 僅僅兩年時間,在最流行的程式設計語言中,Go 語言從第 65 名飆升至第 17 名。以下是其快速增長的原因。![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/build_structure_tech_program_code_construction.png?itok=nVsiLuag) 映像來自於 _opensource.com_[Go 語言](https://golang.org/) ,也被稱為Google的 Go 語言,人氣正在強勁增長。 雖然諸如 Java 和 C 這樣的語言繼續主導編程,但新編程模型已經出現,它們更適合現代計算,特別是雲端運算領域。 Go 越來越多的被使用,部分原因在於它是一種輕量級的開源語言,適合當今的微服務架構。 容器技術寵兒 Docker 和Google的容器編排產品 [Kubernetes](https://opensource.com/sitewide-search?search_apiviews_fulltext=Kubernetes) 都是使用 Go 構建的。 Go 在資料科學領域也佔有一席之地,它具有資料科學家正在尋求的整體效能和從“分析師的筆記本到全面生產”的能力。作為一種工程語言(而不是隨著時間的推移而演變的東西),Go 以多種方式使開發人員受益,其中包括垃圾收集,原生並發以及許多其他原生功能,這些功能可減少開發人員編寫代碼以處理記憶體流失或網路應用程式的需求。 Go 還提供了很多更適合微服務架構和資料科學的其他特性。正因為如此,Go 才被很多感興趣的公司和項目所採用。 最近新添加的 [Tensorflow](https://www.tensorflow.org/) 的 API ,以及像 [Pachyderm](http://www.pachyderm.io/)(下一代資料處理、版本控制和儲存)都正在使用 Go 構建。 Heroku 的 [Force.com](https://github.com/heroku/force) 和 [Cloud Foundry](https://www.cloudfoundry.org/) 的部分內容也是使用 Go 進行編寫的。 而這個名單也正日益添加更多的名字。## 增長的人氣和應用在 2017 年 9 月的 TIOBE 的 GO 語言指數,可以清楚地看到 2016 年以來受歡迎程度令人難以置信的跳躍,更做為一年中評分上升最高的程式設計語言,被冠名為 TIOBE 的程式設計語言 2016 名人堂冠軍。 目前它在月度熱門排行榜上排名第 17 位,一年前排名第 19 位,兩年前排名第 65 位。![tiobe_index_for_go.png](https://opensource.com/sites/default/files/u128651/tiobe_index_for_go.png) TIOBE的 GO 語言指數 [TIOBE](https://www.tiobe.com/tiobe-index/go/)“2017年 Stack Overflow 調查”也顯示了 Go 的受歡迎程度的提升。 Stack Overflow 對 64,000 名開發人員的綜合調查試圖通過詢問“最受歡迎,最令人生厭,最期待的語言”來獲得開發人員的偏好。 這個清單是由較新的語言,例如 Mozilla 的 Rust、SmalltalkTypescript、蘋果的 Swift 和 Google 的 Go 等構成。 然而,連續三年以來,Rust、Swift 和 Go 都能成為排名前五的“最受喜愛”的程式設計語言。![stackoverflow_most_loved.png](https://opensource.com/sites/default/files/u128651/stackoverflow_most_loved.png) 最受歡迎,最令人生厭,最期待的語言, [Stackoverflow.com](https://insights.stackoverflow.com/survey/2017#most-loved-dreaded-and-wanted)## Go 的優勢一些程式設計語言是從實踐中結合優點而設計的,而有些的則是基於學術理論而創造的。 還有一些是在不同的計算時代設計的,以解決不同的問題、硬體或需求。 Go 是一個工程語言,旨在利用現代硬體體繫結構解決現有語言和工具的問題。 它設計時不僅要考慮到了團隊開發,還考慮到了長期可維護性。作為核心思想,Go 是務實的。 在真實的 IT 世界中,複雜的大型軟體是由大型Team Dev編寫的。 這些團隊開發人員從青少年到成年人,通常具有不同的技能水平。 Go 可以很容易實現具體功能,適合初級開發人員使用。而且,作為促進了可讀性和易理解的語言,是非常有用的。 鴨子類型(通過 interface )和方便特性(如 “:=” )的簡短變數聲明的混合,賦予 Go 一種動態類型語言的感覺,與此同時還保留強型別語言的優勢。Go 的原生垃圾收集讓開發人員不需要再進行記憶體管理,這有助於消除兩個常見問題:* 首先,許多程式員已生理期望記憶體管理自動完成。* 其次,記憶體管理需要不同的常式用於不同的處理核心。 手動嘗試安排每個配置會顯著增加引入記憶體流失的風險。Go 的原生並發是經常發起和登出並發的網路應用程式的一個福音。 從 API 到 Web 服務器到 Web 應用程式架構,Go 語言的 Goroutine 和 Channels 十分適合於將注意力更多投注於網路、分布式功能和(或)服務的項目。## 適合於資料科學領域從大資料中提取商業價值正快速的成為企業的競爭優勢,而這也是編程領域非常活躍的部分,涵蓋了人工智慧、機器學習等專業領域。 Go 在這些資料科學領域擁有多個優勢,這正在增加其使用和普及度。* 出色的錯誤處理和更易於調試正在從 Python 和 R 這兩種最常用的資料科學語言獲得關注度。* 資料科學家通常不是程式員。 Go 有助於原型和生產,所以它最終成為將資料科學解決方案投入生產的更強大的語言。* 效能非常棒,考慮到大資料的爆炸式增長以及 GPU 資料庫的興起,這一點至關重要。 Go 也無需通過調用 C / C++ 來效能調優,但是保留了讓使用者這樣做的能力。## Go 的擴張之源軟體交付和部署發生了巨大變化。 微服務體繫結構已成為解鎖應用程式敏捷性的關鍵。 現代應用程式設計為雲與本地結合,可以利用雲平台提供的松耦合雲端服務。Go 是一個工程的程式設計語言,專門為這些新的需求而設計。 由於特意為雲端運算而編寫,Go 正因為它的並行作業和優美設計而日益流行。不僅 Google 支援 Go,還有其他公司也在協助 Go 擴大市場。 例如, [ActiveState's ActiveGo](https://www.activestate.com/activego) 就支援 Go 並進行了擴充同時進行了企業層級的分發。作為開源活動,通過 [golang.org](https://golang.org/) 網站和 [GopherCon](https://www.gophercon.com/) 年會共同構成了一個強大的現代開源社區的基礎,促使將新思路和新動力納入 Go 開發進程中。

via: https://opensource.com/article/17/11/why-go-grows

作者:Jeff Rouse 譯者:mosliu 校對:polaris1119

本文由 GCTT 原創編譯,Go語言中文網 榮譽推出

本文由 GCTT 原創翻譯,Go語言中文網 首發。也想加入譯者行列,為開源做一些自己的貢獻嗎?歡迎加入 GCTT!
翻譯工作和譯文發表僅用於學習和交流目的,翻譯工作遵照 CC-BY-NC-SA 協議規定,如果我們的工作有侵犯到您的權益,請及時聯絡我們。
歡迎遵照 CC-BY-NC-SA 協議規定 轉載,敬請在本文中標註並保留原文/譯文連結和作者/譯者等資訊。
文章僅代表作者的知識和看法,如有不同觀點,請樓下排隊吐槽

3758 次點擊  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.