我是一名go吹?
從效能上,依照公開的 benchmark,Golang 和 Java、Scala 大概在一個量級,是 Python 的 30 倍左右。其次 Golang 的編譯速度較快,這點相對於 Java、Scala 具有比較明顯的優勢,再次其語言特性決定了 Golang 的開發效率較高,此外因為缺乏 trycatch 機制,使得使用 Golang 開發時對異常處理思考較多,因此其上線之後維護成本相對較低。但 Golang 有個明顯缺陷就是目前第三方庫較少,特別跟 AI 相關的庫。
這四種語言我最近都使用過,最喜歡的還是golang,當然它的槽點非常多,比如糟糕的包管理工具(不知道最新的包管理工具是不是有所改善),缺失的泛型設計(go2.0要加入?),到處都是的if err!=nil處理(這裡沒有try catch機制但是反而讓開發人員必須去關心每個異常以及錯誤),那這麼看來go的缺點變成了優點,哈哈哈,不知不覺成為了一名go吹,go在併發程式設計方面十分的方便,誰用誰快樂,用了go的協程和channel,我再也不想用Java的多執行緒(關鍵字又多程式碼又長,攪得人頭皮發麻),而且交叉編譯讓跨平臺變得非常簡單,部署起來更是沒得說,一臺全新的伺服器,我什麼都不用裝,go build成二進位制檔案,不依賴其他庫、無需執行時環境扔上去就完事了!
Go的併發效能語法優勢之類的,網上已經很多人誇了,這裡說一個比較少人提的優點。Go可以讓不熟悉底層的程式設計師平滑的接觸和深入底層。在一開始只學會Go,掌握基本的語法以及程式設計技巧,比如避免遍歷、避免資料拷貝等,就可以做出很好用的服務端程式了。要進一步追求效能,那就可以挖開Go的原始碼,看其內部實現,再配合Go提供的pprof工具分析專案。Go的程式碼很清晰,分析工具也很好用,到了這個階段你就不再需要聽別人說哪個好哪個不好了,你自己會有自己判斷的。Go提供一個功能叫cgo,可以讓Go快速的對接C/C++寫的庫,可以從cgo去逐漸熟悉C/C++的,比較奇葩的學習路線,但是學習曲線不會那麼陡峭,一邊學就可以一邊產出程式碼見到成效。當時google產生goalng的context就是為了解決c/c++能做出來但輪子比較少或者造起來比較難的情況。選了Go就相當於選了一條比較平緩的路線,但是不管用什麼語言或技術做服務端,每個路徑肯定都是指向系統底層的,就看怎麼走而已。
當然做服務端開發還是得越做越往底層走的,底層的技術搞懂了,語言之前的區別就只是招人難不難,用起來開不開心的問題而已!
附類比圖一張:
相關文章
- 我是一名WEB開發者Web
- 我是一名前端工程師前端工程師
- 我是一名程式設計師而且我很蠢程式設計師
- 於是 我當了一名程式猿
- 谷歌“資訊保安公主”:我是一名好黑客谷歌黑客
- 沒錯,我就是要吹爆AngularAngular
- 網友:Go 你是 Google 的,Go:我不是Go
- 我是一名聾啞的程式設計師程式設計師
- 這篇 Java 基礎,我吹不動了Java
- 我是一名90後遊戲策劃,今天我被迫主動辭職了(一)遊戲
- 2019最全Python入門學習路線,不是我吹,絕對是最全Python
- 大家好,我是一名程式設計師,這就是2017年的我……程式設計師
- 我是如何從 php 轉型寫 go 的PHPGo
- 我是一名遊戲設計師(1):RPG遊戲與英雄之旅遊戲設計師
- 別問我為啥哭,只因我是一名程式設計師!程式設計師
- 幽默:我們需要一名醫生
- 我是一名朝九晚五的程式設計師(你也可以!)程式設計師
- 我是如何成為一名機器學習工程師,並很快找到工作的?機器學習工程師
- Go是Google的語言,而不是我們的語言Go
- 為什麼我最喜歡的程式語言是 GoGo
- 我鄙視Java, 整天吹Java怎麼好的的SB們,請進.Java
- 多虧我做了一名程式設計師!程式設計師
- 從 PHP 到 Go:我們是如何將 API 速度提升 8 倍PHPGoAPI
- Go 和 Rust 我都要!GoRust
- 我是如何用go-zero 實現一箇中臺系統的Go
- 我(作為一名開發者)所犯過的錯誤
- 吹爆了!程式設計師自學Python,不如9歲小孩,網友:我不信....程式設計師Python
- 一名技術主管應該是創作者
- 語言是 Go 還是 Golang?Golang
- 兩年前不知如何編寫程式碼的我,現在是一名人工智慧工程師人工智慧工程師
- 我的 Java 轉 Go 之路JavaGo
- 一名Java開發的Go語言學習筆記(一)JavaGo筆記
- 我是MJ
- 我們為什麼要做一名系統管理員?
- 我的 Go 演算法之旅Go演算法
- HashMap?面試?我是誰?我在哪?HashMap面試
- 我們是如何做 go 語言系統測試覆蓋率收集的?Go
- 我是怎麼一步步用go找出壓測效能瓶頸Go