搜尋
首頁後端開發Golang為什麼越來越多的網路大廠開始使用Go語言了

為什麼越來越多的網路大廠開始使用Go語言了

越來越多的網路大廠開始使用Go語言了,譬如騰訊、美團、滴滴、百度、Google、bilibili. ..

還有原本使用Python的位元組跳動,甚至已經全面擁向Go了。這麼多國內外首屈一指的公司,都在開始使用它了,它到底有什麼優勢呢?這就得談談它的一些優點了。

ps:當然了,還有Go-To-Byte的成員,想要學習go語言,並且用它完成青訓營的大項目吶~

#Go的一些優勢

說起優勢,在某些方面多半是因為它有一些別人沒有的特性,或者優化了別人麻煩的地方,相比起來,才會更勝一籌。那我們來了解一下Go的一些特點吧,但在了解生硬的特點之前,我們先來看看其它幾種常見的語言:

常見的一些語言

這裡不是對比喲,不是說誰好誰壞,而是小馬過河,因人而異~

1、C/C

C語言是在1971年的時候,被大神Ken Thompson和Dennis Ritchie發明的,而Go語言的主導開發者之一就是Ken Thompson,所以在很多地方和C語言類似,(如struct、Printf、&取值符)

C/C 也作為許多初學初學的語言,它們都是直接編譯為機器碼,所以執行效率會更高,而且都不需要執行環境,用戶的使用成本會更低,不像很多語言還需要安裝所需的環境。

也因為這些原因,它們的一次編碼或編譯只適用於一種平台,對於不同作業系統而言,有時需要修改編碼再編譯,有時直接重新編譯即可。

而且對於開發者也"很不友善"?,需要自己處理垃圾回收(GC)的問題。編碼時,還需要考慮,堆上的記憶體什麼時候free、delete?程式碼會不會造成記憶體外洩、不安全?

2、Java

自己作為一個從Java#來學習Go的菜鳥,還未正式開發,就感覺開發效率會比Java低了(個人感覺,不喜勿噴)~?

##Java直接編譯成字節碼(.class),這種編譯產物是介於原始編碼和機器碼的一種中間碼。這樣的話,Java程式就需要特定的執行環境(JVM)了,執行效率相比會低一些,還可能有虛擬化損失。但這樣也有一個好處就是可以編譯一次,多處執行(跨平台)。而且它也是自備GC

3、JavaScript

Python#一樣,JS是解釋型語言,它們不需要編譯,解釋後即可執行。所以Js也是需要特定的執行環境(瀏覽器引擎)# 的。

將其程式碼放入瀏覽器後,瀏覽器需要解析程式碼,所以也會

有虛擬化損失Js只需要瀏覽器即可運行,所以它也是跨平台的。

再談Go

看完了前面幾種常見語言的簡單介紹。

C/C 效能很高,因為它直接編譯為二進制,且沒有虛擬化損失,Go覺得還不錯;Java自動垃圾回收機制很好,Go覺得也不錯;Js一次編碼可以適用可以適用多種平台Go覺得好極了;而且Go天然具備高並發的能力,是所有語言無可比及的。那我們來簡單總結一下吧!

  1. 自帶運行環境Runtime,且無須處理GC問題
## Go

程式的運作環境可厲害了,其實大部分語言都有Runtime的概念,例如Java,它程式的運作環境是JVM ,需要單獨安裝。對於Java程序,如果不經過特殊處理,只能運行在有JMV環境的機器上。 <p>而<code>Go程式是自帶運行環境的,Go程式的Runtime會作為程式的一部分打包進二進位產物,和使用者程式一起執行,也就是說Runtime也是一系列.go程式碼和彙編程式碼等,使用者可以「直接」呼叫Runtime的函數(例如make( []int, 2, 6),這樣的語法,其實就是去呼叫Runtime中的makeslice函數)。對於Go程序,簡單來說就是不需要安裝額外的運行環境,即可運行。除非你需要開發Go的程式。

正因為這樣,Go程式也無須處理GC的問題,全權交由Runtime處理(反正要打包到一起)

  1. 快速編譯,且跨平台

有不同於C/C ,對於多個平台,可能需要修改程式碼後再編譯。也不同於Java的一次編碼,編譯成中間碼運行在多個平台的虛擬機器上。 Go只需要一次編碼,就能輕鬆在多個平台編譯成機器碼運作。

值得一提的就是它這跨平台的能力也是Runtime賦予的,因為Runtime有一定屏蔽系統呼叫的能力。

  1. 自然支援高效能高並發,且語法簡單、學習曲線平緩

C 處理並發的能力也不弱,但由於C 的編碼要求很高,如果不是很老練、專業的C 程式設計師,可能會出很多故障。而Go可能經驗不是那麼豐厚,也能寫出效能很好的高並發程式。

值得一提的就是它這超強的高並發,也是Runtime賦予的去處理協程調度能力。

  1. 豐富的標準函式庫、完善的工具鏈

#對開發者而言,安裝好Golang的環境後,就能用官方的標準函式庫開發很多功能了。例如下圖所示的許多常用套件:

為什麼越來越多的網路大廠開始使用Go語言了

而且Go自己就具有豐富的工具鏈 (例如:程式碼格式化、單元測試、基準測試、套件管理...)

  1. 。 。 。 。 。 。

很多大廠開始使用Go語言、我們團隊為什麼使用GoLang,和這些特性,多少都有一些關係吧~

相關推薦:Go影片教學

以上是為什麼越來越多的網路大廠開始使用Go語言了的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

go语言有缩进。在go语言中,缩进直接使用gofmt工具格式化即可(gofmt使用tab进行缩进);gofmt工具会以标准样式的缩进和垂直对齐方式对源代码进行格式化,甚至必要情况下注释也会重新格式化。

go语言为什么叫gogo语言为什么叫goNov 28, 2022 pm 06:19 PM

go语言叫go的原因:想表达这门语言的运行速度、开发速度、学习速度(develop)都像gopher一样快。gopher是一种生活在加拿大的小动物,go的吉祥物就是这个小动物,它的中文名叫做囊地鼠,它们最大的特点就是挖洞速度特别快,当然可能不止是挖洞啦。

一文详解Go中的并发【20 张动图演示】一文详解Go中的并发【20 张动图演示】Sep 08, 2022 am 10:48 AM

Go语言中各种并发模式看起来是怎样的?下面本篇文章就通过20 张动图为你演示 Go 并发,希望对大家有所帮助!

【整理分享】一些GO面试题(附答案解析)【整理分享】一些GO面试题(附答案解析)Oct 25, 2022 am 10:45 AM

本篇文章给大家整理分享一些GO面试题集锦快答,希望对大家有所帮助!

tidb是go语言么tidb是go语言么Dec 02, 2022 pm 06:24 PM

是,TiDB采用go语言编写。TiDB是一个分布式NewSQL数据库;它支持水平弹性扩展、ACID事务、标准SQL、MySQL语法和MySQL协议,具有数据强一致的高可用特性。TiDB架构中的PD储存了集群的元信息,如key在哪个TiKV节点;PD还负责集群的负载均衡以及数据分片等。PD通过内嵌etcd来支持数据分布和容错;PD采用go语言编写。

go语言能不能编译go语言能不能编译Dec 09, 2022 pm 06:20 PM

go语言能编译。Go语言是编译型的静态语言,是一门需要编译才能运行的编程语言。对Go语言程序进行编译的命令有两种:1、“go build”命令,可以将Go语言程序代码编译成二进制的可执行文件,但该二进制文件需要手动运行;2、“go run”命令,会在编译后直接运行Go语言程序,编译过程中会产生一个临时文件,但不会生成可执行文件。

go语言是否需要编译go语言是否需要编译Dec 01, 2022 pm 07:06 PM

go语言需要编译。Go语言是编译型的静态语言,是一门需要编译才能运行的编程语言,也就说Go语言程序在运行之前需要通过编译器生成二进制机器码(二进制的可执行文件),随后二进制文件才能在目标机器上运行。

golang map怎么删除元素golang map怎么删除元素Dec 08, 2022 pm 06:26 PM

删除map元素的两种方法:1、使用delete()函数从map中删除指定键值对,语法“delete(map, 键名)”;2、重新创建一个新的map对象,可以清空map中的所有元素,语法“var mapname map[keytype]valuetype”。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具