為什麼學習go語言編程?

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

1. 從python開發角度看go語言

(1)部署簡單:Go 編譯產生的是一個靜態可執行檔,除了 glibc 外沒有其他外部依賴。完全不需要操心應用所需的各種包、庫的依賴關係,大大減輕了維護的負擔。
(2)並發性好。Goroutine 和 channel 使得編寫高並發的服務端軟體變得相當容易,很多情況下完全不需要考慮鎖機制以及由此帶來的各種問題。
(3)良好的語言設計。Go 的設計是非常優秀的:規範足夠簡單靈活。
(4)執行效率高。雖然不如 C 但是已經超過C++和java,和解釋型語言相比,更是相差一個數量級,比如python,ruby。

備忘:
編譯型語言:在程式執行之前,有一個單獨的編譯過程,將程式翻譯成機器語言,以後執行這個程式的時候,就不用再進行翻譯了。
解釋型語言:是在啟動並執行時候將程式翻譯成機器語言,相當於一遍翻譯,一遍運行,所以運行速度相對於編譯型語言要慢。

2.從C/C++角度看Go語言

(1)GO語言優勢:使用C/C++開發的最大問題在於開發效率低。Go語言開發效率高。簡單來講,使用Go語言寫一個chan類型,使用C/C++完成需要很多工作量,使用C++會稍微方便一點,但是也是相當痛苦一件事。
(2)GO語言優勢:libc只向後相容,營運難度偏大。
(3)GO語言劣勢:GO語言運行速度並沒有C語言運行速度快。這也是需要提高地方。但是明顯高於C++,在一般企業來看,這點運行效率和開發速度比起來,不足以考慮。

3.從GO語言自身看
(1)可直接編譯成機器碼,不依賴其他庫,glibc的版本有一定要求,部署就是扔一個檔案上去就完成了。
(2)靜態類型語言。運行效率高。
(3)語言層面支援並發,這個就是Go最大的特色,天生的支援並發。
(4)內建runtime,支援記憶體回收,這屬於動態語言的特性之一吧,因此開發效率高,但是沒有丟失運行效率,這是很可貴的地方。
(5)簡單易學,Go語言的作者都有C的基因,那麼Go自然而然就有了C的基因,那麼Go關鍵字是25個,但是表達能力很強大,幾乎支援大多數你在其他語言見過的特性:繼承、重載、對象等。
(6)豐富的標準庫,Go目前已經內建了大量的庫,特別是網路程式庫非常強大。
(7)內建強大的工具,Go語言裡面內建了很多工具鏈,最好的應該是gofmt工具,自動化格式化代碼,能夠讓團隊review變得如此的簡單,代碼格式一模一樣,想不一樣都很困難。
(8)跨平台編譯,如果你寫的Go代碼不包含cgo,那麼就可以做到window系統編譯linux的應用。
(9)內嵌C支援,前面說了作者是C的作者,所以Go裡面也可以直接包含c代碼,利用現有的豐富的C庫。
(10)有望成為Google下一代的統一開發平台,徹底擺脫Java的陰影。

3.Go適合用來做什麼

(1)伺服器編程,以前你如果使用C或者C++做的那些事情,用Go來做很合適,例如處理日誌、資料打包、虛擬機器處理、檔案系統等。
(2)分布式系統,資料庫代理器等
(3)網路編程,這一塊目前應用最廣
(4)雲平台,目前國外很多雲平台在採用Go開發

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.