1. Go語言前景
Go 語言入門課程 / 1. Go語言前景
手機(jī)也能上課
App下載
1/8

為什么要學(xué)習(xí)Go語言

Go語言簡(jiǎn)介

Go語言(或 Golang)是Google開發(fā)的開源編程語言,誕生于2007年,并于2009年11月開源,2012年發(fā)布Go穩(wěn)定版。Go語言在多核并發(fā)上擁有原生的設(shè)計(jì)優(yōu)勢(shì),Go語言從底層原生支持并發(fā),無須第三方庫、開發(fā)者的編程技巧和開發(fā)經(jīng)驗(yàn)。


Go語言是編程語言設(shè)計(jì)的又一次嘗試,它的主要目標(biāo)是兼具Python 等動(dòng)態(tài)語言的開發(fā)速度和C/C++等編譯型語言的性能與安全性,對(duì)類C語言的重大改進(jìn),它不但能讓你訪問底層操作系統(tǒng),還提供了強(qiáng)大的網(wǎng)絡(luò)編程和并發(fā)編程支持。Go語言的用途眾多,可以進(jìn)行網(wǎng)絡(luò)編程、系統(tǒng)編程、并發(fā)編程、分布式編程。


Go語言的推出,旨在不損失應(yīng)用程序性能的情況下降低代碼的復(fù)雜性,具有“部署簡(jiǎn)單、并發(fā)性好、語言設(shè)計(jì)良好、執(zhí)行性能好”等優(yōu)勢(shì),目前國內(nèi)諸多 IT 公司均已采用Go語言開發(fā)項(xiàng)目。

并發(fā)編程

經(jīng)過 Go 語言重構(gòu)的系統(tǒng)能使用更少的硬件資源獲得更高的并發(fā)和I/O吞吐表現(xiàn)。充分挖掘硬件設(shè)備的潛力也滿足當(dāng)前精細(xì)化運(yùn)營的市場(chǎng)大環(huán)境。

Go語言的并發(fā)是基于 Goroutine 的,Goroutine 類似于線程,但并非線程??梢詫?Goroutine 理解為一種虛擬線程。Go 語言運(yùn)行時(shí)會(huì)參與調(diào)度 Goroutine,并將 Goroutine 合理地分配到每個(gè) CPU 中,最大限度地使用CPU性能。開啟一個(gè)Goroutine的消耗非常?。ù蠹s2KB的內(nèi)存),你可以輕松創(chuàng)建數(shù)百萬個(gè)Goroutine。

Goroutine 的特點(diǎn)
  • Goroutine 具有可增長(zhǎng)的分段堆棧, 這意味著它們只在需要時(shí)才會(huì)使用更多內(nèi)存。
  • Goroutine 的啟動(dòng)時(shí)間比線程快。
  • Goroutine 原生支持利用channel安全地進(jìn)行通信。
  • Goroutine 共享數(shù)據(jù)結(jié)構(gòu)時(shí)無需使用互斥鎖。
Go 是編譯型語言

Go 使用編譯器來編譯代碼。編譯器將源代碼編譯成二進(jìn)制(或字節(jié)碼)格式;在編譯代碼時(shí),編譯器檢查錯(cuò)誤、優(yōu)化性能并輸出可在不同平臺(tái)上運(yùn)行的二進(jìn)制文件。要?jiǎng)?chuàng)建并運(yùn)行 Go 程序,程序員必須執(zhí)行如下步驟。

  1. 使用文本編輯器創(chuàng)建 Go 程序;
  2. 保存文件;
  3. 編譯程序;
  4. 運(yùn)行編譯得到的可執(zhí)行文件。


這不同于 Python、Ruby 和 JavaScript 等語言,它們不包含編譯步驟。Go 自帶了編譯器,因此無須單獨(dú)安裝編譯器

為什么要學(xué)習(xí)Go語言

如果你要?jiǎng)?chuàng)建系統(tǒng)程序,或者基于網(wǎng)絡(luò)的程序,Go語言是很不錯(cuò)的選擇。作為一種相對(duì)較新的語言,它是由經(jīng)驗(yàn)豐富且受人尊敬的計(jì)算機(jī)科學(xué)家設(shè)計(jì)的,旨在應(yīng)對(duì)創(chuàng)建大型并發(fā)網(wǎng)絡(luò)程序面臨的挑戰(zhàn)。

在Go語言出現(xiàn)之前,開發(fā)者們總是面臨非常艱難的抉擇,究竟是使用執(zhí)行速度快但是編譯速度并不理想的語言(如:C++),還是使用編譯速度較快但執(zhí)行效率不佳的語言(如:.NET、Java),或者說開發(fā)難度較低但執(zhí)行速度一般的動(dòng)態(tài)語言呢?顯然,Go語言在這 3 個(gè)條件之間做到了最佳的平衡:快速編譯,高效執(zhí)行,易于開發(fā)。


Go語言支持交叉編譯,比如說你可以在運(yùn)行 Linux 系統(tǒng)的計(jì)算機(jī)上開發(fā)可以在 Windows 上運(yùn)行的應(yīng)用程序。這是第一門完全支持 UTF-8 的編程語言,這不僅體現(xiàn)在它可以處理使用 UTF-8 編碼的字符串,就連它的源碼文件格式都是使用的 UTF-8 編碼。Go語言做到了真正的國際化!


+10 經(jīng)驗(yàn) +10積分
解析
提示
參考答案
+10 經(jīng)驗(yàn) +10積分
視頻播放結(jié)束,是否學(xué)習(xí)下一節(jié)?