首頁  >  文章  >  後端開發  >  什麼是golang

什麼是golang

青灯夜游
青灯夜游原創
2022-11-22 10:33:0916397瀏覽

golang是一種靜態強型別、編譯型、並髮型,並具有垃圾回收功能的程式語言;它可以在不損失應用程式效能的情況下極大的降低程式碼的複雜性,還可發揮多核心處理器同步多工的優點,並可解決物件導向程式設計的麻煩,並幫助程式設計師處理瑣碎但重要的記憶體管理問題。

什麼是golang

本教學操作環境:windows10系統、GO 1.11.2、thinkpad t480電腦。

Go語言

Go語言是Google公司在2007發展一種靜態強型別、編譯型語言,並在2009 年正式對外發布。

golang(又稱go語言)是Google開發的靜態強型別、編譯型、並髮型,並具有垃圾回收功能的程式語言。它是一款簡單的開源程式語言,它能讓建構簡單、可靠且有效率的軟體變得容易。

Go語言可以在不損失應用程式效能的情況下極大的降低程式碼的複雜性,還可以發揮多核心處理器同步多工的優點,並可解決物件導向程式設計的麻煩,並幫助程式設計師處理瑣碎但重要的記憶體管理問題,相較於其他程式語言,簡潔、快速、安全、並行、有趣、開源、記憶體管理、陣列安全、編譯迅速是其特色。

Go語言以其近C的執行性能和近解析型語言的開發效率,以及近乎於完美的編譯速度,已經風靡全球。許多人將Go語言稱為21世紀的C語言,因為Go不僅擁有C的簡潔和性能,而且針對多處理器系統應用程式的程式設計進行了最佳化,很好的提供了21世紀互聯網環境下服務端開發的各種實用特性。

什麼是golang

Go語言的誕生

事件起源於2007年9月,當時C 委員會正在Google 對C 語言新增加的35個新的特性進行一場分享演講。

Google 的科技大神們也在認真聽講座,其中就有Go語言的三個創作者,分別是: Robert Griesemer(羅伯特.格利茨默),Rob Pike(羅伯.派克) ,Ken Thompson(肯.湯普森)。

什麼是golang

  • Rob Pike(羅伯.派克)

    羅布·派克是Unix的先驅,是貝爾實驗室最早和Ken Thompson以及Dennis M. Ritche(C語言之父) 開發Unix的猛人,UTF-8的設計人。讓人佩服不已的是,羅伯伯還是1980年奧運射箭的銀牌得主。

  • Ken Thompson(肯.湯普森)

    Ken Thompson,C語言前身B語言的作者,與Dennis Ritchie是Unix的原創者。 1983年圖靈獎得主以及1998年美國國家技術獎(National Medal of Technology)得主。

  • Robert Griesemer(羅伯特.格利茨默)

    參與製作了Java的HotSpot編譯器以及Chrome瀏覽器的javascript的搜尋引擎V8。

隨著會議的中場休息,大家開始了對這些 C 語言新特性是否帶來更多的價值進行吐槽。 Rob Pike他們認為:簡化語言的成就遠大於添加功能。於是,一門新的語言,Go,在這個思路下應運而生。

2007 年9 月25 號,Rob Pike在回家的路上得到關於新語言名字的靈感,於是給另外兩人發了郵件:

2-什麼是golang

郵件正文大意為:

在開車回家的路上我得到了些靈感。

1.將這門程式語言命名為“go”,它很簡短,容易書寫。工具類別可以命名為:goc、 gol、goa。

互動式的偵錯工具也可以直接命名為「go」。語言檔案後綴名為.go 等等

這就是Go 語言名字的來源,自此之後Robert、Rob 和Ken 三個人開始在Google 內部進行了研發,一直到了2009 年,Go正式開源了,Go 專案團隊將2009 年11 月10 日,即該語言正式對外開源的日字作為其官方生日。原始碼最初託管在 http://code.google.com 上,之後幾年才逐步的遷移到 GitHub 上。

什麼是golang

Go語言的版本

Go 1.0 — 2012 年 3 月:Go 的第一個版本,帶著一份相容性說明文件來保證與未來發布版本的兼容性,進而不會破壞現有的程式。

Go 1.1 — 2013 年 5 月:這個 Go 版本專注於最佳化語言(編譯器,gc,map,go 調度器)和提升它的效能。

Go 1.3 — 2014 年 6 月:這個版本對堆疊管理做了重要的改進。棧可以申請[連續的記憶體片段,提高了分配的效率

Go 1.4 — 2014 年12 月:此版本帶來了官方對Android 的支持,讓我們可以只用Go 程式碼就能寫出簡單的Android 程式。

Go 1.7 — 2016 年 8 月: 這個版本發布了context 包,為使用者提供了處理逾時和任務取消的方法。

Go 1.11 — 2018 年 8 月: Go 1.11 帶來了一個重要的新功能:Go modules。

Go語言的優點

什麼是golang

什麼是golang

Go語言的應用領域

什麼是golang

#使用Go的大型網路公司

什麼是golang

Go語言的強項在於它適合用來開發網路並發方面的服務,例如訊息推送、監控、容器等,所以在高並發的專案上大多數公司會優先選擇Golang 作為開發語言。另外一個應用就是對一些python,php或java專案進行重構。 【相關推薦:Go影片教學

#擴充知識:

#什麼是程式設計語言

程式語言是用來控制電腦的一系列指令(Instruction),它有固定的格式和詞彙(不同程式語言的格式和詞彙不一樣)。就像我們中國人之間溝通需要漢語,英國人溝通需要英語一樣,人與電腦之間進行溝通需要一門語言作為介質,即程式語言。

程式語言的發展經歷了機器語言(指令系統)=>彙編語言=>高階語言(C、java、Go等)。

010010101001-》ADD

  • 電腦在設計中規定了一組指令(二級程式碼),這組指令的集合和就是所謂的機器指令系統,用機器指令形式編寫的程式稱為機器語言。
  • 但由於機器語言的千上萬條指令難以記憶,並且維護性和移植性都很差,所以在機器語言的基礎上,人們提出了採用字符和十進制數代替二進制代碼,於是產生了將機器語言符號化的組合語言。
  • 雖然組合語言相較於機器語言簡單了許多,但是彙編語言是機器指令的符號化,與機器指令存在著直接的對應關係,無論是學習還是開發,難度依然很大。所以更接近人類語言,也更容易理解和修改的高階語言就應運而生了,高階語言的一條語法往往可以取代幾條、幾十條甚至幾百條組合語言的指令。因此,高階語言易學易用,通用性強,應用廣泛。

編譯型語言與解釋性語言

電腦是無法理解高階語言的,更不能直接執行高階語言,它只能直接理解機器語言,所以使用任何高階語言編寫的程式若想被電腦運行,都必須將其轉換成電腦語言,也就是機器碼。而這種轉換的方式分為編譯和解釋兩種。由此高階語言也分為編譯型語言和解釋型語言。

什麼是golang

  • 編譯型語言

#使用專門的編譯器,針對特定的平台,將高階語言原始碼一次性的編譯成可被該平台硬體執行的機器碼,並包裝成該平台所能辨識的可執行性程式的格式。

編譯型語言寫的程式執行之前,需要一個專門的編譯過程,把源代碼編譯成機器語言的文件,如exe格式的文件,以後要再運行時,直接使用編譯結果即可,如直接執行exe檔。因為只要編譯一次,以後執行時不需要編譯,所以編譯型語言執行效率高。

1、一次性的編譯成平台相關的機器語言文件,運行時脫離開發環境,運行效率高;

2、與特定平台相關,一般無法移植到其他平台;

  • 解釋型語言

使用專門的解釋器對原始程式逐行解釋成特定平台的機器碼並立即執行。是程式碼在執行時才被解釋器一行行動態翻譯和執行,而不是在執行前完成翻譯。

1.解釋型語言每次運行都需要將原始程式碼解釋稱機器碼並執行,執行效率低;

2.只要平台提供對應的解釋器,就可以運行原始程式碼,所以可以方便原始程式移植;

更多程式相關知識,請造訪:程式設計影片! !

以上是什麼是golang的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn