溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang的含義是什么及有哪些優(yōu)勢

發(fā)布時間:2022-11-22 11:53:22 來源:億速云 閱讀:160 作者:iii 欄目:編程語言

本文小編為大家詳細介紹“golang的含義是什么及有哪些優(yōu)勢”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“golang的含義是什么及有哪些優(yōu)勢”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

golang是一種靜態(tài)強類型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語言;它可以在不損失應用程序性能的情況下極大的降低代碼的復雜性,還可以發(fā)揮多核處理器同步多工的優(yōu)點,并可解決面向?qū)ο蟪绦蛟O計的麻煩,并幫助程序設計師處理瑣碎但重要的內(nèi)存管理問題。

Go語言

Go語言 是Google公司 在2007開發(fā)一種靜態(tài)強類型、編譯型語言,并在 2009 年正式對外發(fā)布。

golang(又稱go語言)是Google開發(fā)的一種靜態(tài)強類型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語言。它是一款簡單的開源編程語言,它能讓構造簡單、可靠且高效的軟件變得容易。

Go語言可以在不損失應用程序性能的情況下極大的降低代碼的復雜性,還可以發(fā)揮多核處理器同步多工的優(yōu)點,并可解決面向?qū)ο蟪绦蛟O計的麻煩,并幫助程序設計師處理瑣碎但重要的內(nèi)存管理問題,相比于其他編程語言,簡潔、快速、安全、并行、有趣、開源、內(nèi)存管理、數(shù)組安全、編譯迅速是其特色。

Go語言以其近C的執(zhí)行性能和近解析型語言的開發(fā)效率,以及近乎于完美的編譯速度,已經(jīng)風靡全球。很多人將Go語言稱為21世紀的C語言,因為Go不僅擁有C的簡潔和性能,而且針對多處理器系統(tǒng)應用程序的編程進行了優(yōu)化,很好的提供了21世紀互聯(lián)網(wǎng)環(huán)境下服務端開發(fā)的各種實用特性。

Go語言的誕生

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

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

  • Rob Pike(羅伯.派克)

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

  • Ken Thompson(肯.湯普森)

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

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

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

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

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

golang的含義是什么及有哪些優(yōu)勢

郵件正文大意為:

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

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

交互式的調(diào)試工具也可以直接命名為“go”。語言文件后綴名為 .go 等等

這就是 Go 語言名字的來源,自此之后 Robert、Rob 和 Ken 三個人開始在 Google 內(nèi)部進行了研發(fā),一直到了 2009 年,Go 正式開源了,Go 項目團隊將 2009 年 11 月 10 日,即該語言正式對外開源的日字作為其官方生日。

Go語言的版本

Go 1.0 — 2012 年 3 月:Go 的第一個版本,帶著一份兼容性說明文檔來保證與未來發(fā)布版本的兼容性,進而不會破壞已有的程序。

Go 1.1 — 2013 年 5 月:這個 Go 版本專注于優(yōu)化語言(編譯器,gc,map,go 調(diào)度器)和提升它的性能。

Go 1.3 — 2014 年 6 月:這個版本對棧管理做了重要的改進。??梢陨暾圼連續(xù)的內(nèi)存片段,提高了分配的效率

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

Go 1.7 — 2016 年 8 月: 這個版本發(fā)布了context 包,為用戶提供了處理超時和任務取消的方法。

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

Go語言的優(yōu)勢

golang的含義是什么及有哪些優(yōu)勢

golang的含義是什么及有哪些優(yōu)勢

Go語言的應用領域

golang的含義是什么及有哪些優(yōu)勢

使用Go的大型互聯(lián)網(wǎng)公司

Go語言的強項在于它適合用來開發(fā)網(wǎng)絡并發(fā)方面的服務,比如消息推送、監(jiān)控、容器等,所以在高并發(fā)的項目上大多數(shù)公司會優(yōu)先選擇 Golang 作為開發(fā)語言。另外一個應用就是對一些python,php或者java項目進行重構?!鞠嚓P推薦:Go視頻教程】

擴展知識:

什么是編程語言

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

編程語言的發(fā)展經(jīng)歷了機器語言(指令系統(tǒng))=>匯編語言=>高級語言(C、java、Go等)。

010010101001-》ADD

  • 計算機在設計中規(guī)定了一組指令(二級制代碼),這組指令的集和就是所謂的機器指令系統(tǒng),用機器指令形式編寫的程序稱為機器語言。

  • 但由于機器語言的千上萬條指令難以記憶,并且維護性和移植性都很差,所以在機器語言的基礎上,人們提出了采用字符和十進制數(shù)代替二進制代碼,于是產(chǎn)生了將機器語言符號化的匯編語言。

  • 雖然匯編語言相較于機器語言簡單了很多,但是匯編語言是機器指令的符號化,與機器指令存在著直接的對應關系,無論是學習還是開發(fā),難度依然很大。所以更加接近人類語言,也更容易理解和修改的高級語言就應運而生了,高級語言的一條語法往往可以代替幾條、幾十條甚至幾百條匯編語言的指令。因此,高級語言易學易用,通用性強,應用廣泛。

編譯型語言與解釋性語言

計算機是不能理解高級語言的,更不能直接執(zhí)行高級語言,它只能直接理解機器語言,所以使用任何高級語言編寫的程序若想被計算機運行,都必須將其轉(zhuǎn)換成計算機語言,也就是機器碼。而這種轉(zhuǎn)換的方式分為編譯和解釋兩種。由此高級語言也分為編譯型語言和解釋型語言。

golang的含義是什么及有哪些優(yōu)勢

  • 編譯型語言

使用專門的編譯器,針對特定的平臺,將高級語言源代碼一次性的編譯成可被該平臺硬件執(zhí)行的機器碼,并包裝成該平臺所能識別的可執(zhí)行性程序的格式。

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

1、一次性的編譯成平臺相關的機器語言文件,運行時脫離開發(fā)環(huán)境,運行效率高;

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

  • 解釋型語言

使用專門的解釋器對源程序逐行解釋成特定平臺的機器碼并立即執(zhí)行。是代碼在執(zhí)行時才被解釋器一行行動態(tài)翻譯和執(zhí)行,而不是在執(zhí)行之前就完成翻譯。

1.解釋型語言每次運行都需要將源代碼解釋稱機器碼并執(zhí)行,執(zhí)行效率低;

2.只要平臺提供相應的解釋器,就可以運行源代碼,所以可以方便源程序移植;

讀到這里,這篇“golang的含義是什么及有哪些優(yōu)勢”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內(nèi)容的文章,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI