為什麼你應該學習 Go

為什麼你應該學習 Go
圖片來源

Go 是一種相對年輕但流行的程式語言。經過 調查數據 在 Stack Overflow 上,Golang 在開發者希望掌握的程式語言排名中名列第三。在這篇文章中,我們將嘗試了解 Go 流行的原因,並研究這種語言的用途以及為什麼它值得學習。

歷史上的位

Go 程式語言是由 Google 創建的。實際上,它的全名Golang是「Google語言」的衍生詞。儘管該語言在公告中被稱為“年輕”,但今年它已經十歲了。

Go 的創建者的目標是開發一種簡單而高效的程式語言,可用於創建高品質的軟體。 Go 的創作者之一 Rob Pike 表示,Go 是為公司的程式設計師設計的,這些程式設計師是相對應屆畢業生,了解 Java、C、C++ 或 Python。對他們來說,Go 是一種可以快速理解並習慣的語言。

最初,它是谷歌內部的工具,但隨著時間的推移,它從公司深處出現並成為公眾知識。

語言優勢

Golang 有很多優點,既有廣為人知的,也有不那麼知名的。

簡單。 實際上,這是創建該語言的主要目標,並且它已經實現了。 Go 具有相當簡單的語法(帶有某些假設),因此應用程式的開發速度比某些其他語言更快。這裡有兩點很有趣。

首先,對於一個完全不懂任何語言並且只是計劃成為開發人員的程式設計初學者來說,Golang 可以相當快地學習。人們可以說 Go 幾乎和 PHP 甚至 Pascal 一樣簡單(當然相對而言),但和 C++ 一樣強大。

其次,Go 可以由「高級程式設計師」(已經了解一種或多種語言的人)學習。大多數情況下,開發人員在掌握 Python 或 PHP 後才學習 Go。接下來,一些程式設計師成功地使用了 Python/Go 或 PHP/Go 對。

大量的圖書館。 如果您缺少 Go 中的某個功能,您可以使用眾多庫之一併執行所需的任務。 Go還有另一個優點-你可以輕鬆地與C函式庫互動。甚至有一種觀點認為 Go 函式庫是 C 函式庫的包裝。

代碼清潔度。 Go 編譯器可讓您保持程式碼「乾淨」。例如,未使用的變數被視為編譯錯誤。 Go 解決了大多數格式化問題。例如,可以在儲存或編譯時使用 gofmt 程式來完成此操作。格式會自動更正。您可以在本教程中了解有關這一切的更多資訊。 有效.

靜態類型。 Go 的另一個優點是它減少了開發人員犯錯的機會。是的,習慣動態類型的程式設計師在頭幾天會因為必須為每個變數和函數以及其他所有內容聲明類型而感到惱火。但隨後我們會發現這裡有很多優點。

戈多克。一個大大簡化記錄程式碼的實用程式。 GoDoc 的一大優點是它不使用 JavaDoc、PHPDoc 或 JSDoc 等額外語言。該實用程式使用從記錄的程式碼中提取的最大量的資訊。

代碼維護。 由於其簡單而簡潔的語法,它很容易維護。這一切都是谷歌的遺產。由於公司擁有大量各種軟體產品的程式碼,以及數以萬計的開發人員對其進行整理,因此出現了維護問題。程式碼應該是每個使用它的人都可以理解的、文檔齊全且簡潔的。這一切都可以透過 Go 實現。

同時,Golang沒有類別(有結構體、struct),也不支援繼承,這使得更改程式碼變得更加容易。另外,沒有例外、註釋等。

你能用 Go 寫什麼?

幾乎所有內容,除了某些點(例如,與機器學習相關的開發 - 在 C/C++ 和 CUDA 中進行低階優化的 Python 更適合這裡)。

其他一切都可以寫,對於 Web 服務尤其如此。此外,Go 值得為最終用戶和開發守護進程、UI 開發應用程序,並且適合跨平台應用程式和服務。

對Golang的需求

為什麼你應該學習 Go
隨著時間的推移,該語言變得越來越流行。除了上圖中出現的公司外,Mail.ru Group、Avito、Ozon、Lamoda、BBC、Canonical 等也與 Golang 合作。

「我們決定擴大業務;建立一個全新的技術平台以確保產品的快速開發對我們來說非常重要。我們依賴 Go 是因為它的速度和可靠性,最重要的是,使用它的程式設計師的受眾,」Ozon 代表在 2018 年公司決定轉向 Golang 後表示。

那麼收入呢?去年 Go 開發者的平均薪資為 60-140 萬盧布。 根據 《我的圈子》與2017年相比,這一數字成長了8,3%。 2019 年可能會繼續成長,因為很多公司都需要 Golang 開發人員。

接下來是什麼?

Golang的發展絕對不會停止。對懂得這種語言的優秀專家的需求只會增加,因此專家(初學者或專業人士)找到工作並不困難。原則上,這個說法在今天仍然適用,因為 IT 市場上開發人員持續短缺。

Go 對於初學者程式設計師和已經了解一種或多種程式語言的專業人士都有好處。幾乎任何程式設計師都可以學習或重新學習它。

文章是與老師共同寫的 Golang課程 在 Sergei Kruchinin 的 GeekBrains 上,非常感謝他!

來源: www.habr.com

添加評論