HackerRank開發人員技能報告:Go仍然是最需要的語言

2020-12-23 IT小磊子

從報告中我總結了幾點:

1.HackerRank發布的一份調查報告發現,Go語言是開發者最願意學習的語言,職場對全棧開發需求很大。

2.HackerRank對來自162個國家或地區的116648名軟體開發人員進行了在線調查。它發現連續3年,Go是開發者最想學習的程式語言,其次是Python和Kotlin。Angular被評為最知名的框架,其次是React。Django較去年排名上升了2名,排名第六。

3.從另一方面來看,全球14%的招聘經理在招聘新員工時不懂程式語言,而在美洲地區這一比例為21%。更重要的是,39%的全球開發者認為他們的薪酬不公平,相比之下,美國開發者的薪酬最高。

4.2019年1月,Yell Business收集的數據突顯了全球開發人員的薪水差異。如果根據生活成本調整的話,中國開發商是最大贏家,調整後工資約為55352英鎊。

Google的Go語言與Python,您想使用哪種語言,為什麼?

有開發者表示:

「我幾乎每天都使用它們,並且兩者都愛。對我來說,似乎大多數答案都偏向於Golang。」

「顯然,Python在與數據科學相關的任務中表現出色,而Go在與性能相關的任務中表現出色。但是,如果性能不是很關鍵,那麼構建RESTful或RPC Web服務等更常見的事情將會有其他更合適的選擇。」

「我通常使用Golang編寫代碼的時間是Python的2到3倍,但是我們並不是生活在一個完美的世界裡,因此編碼並不是讓應用程式啟動和運行的唯一需要做的事情。。。。這就是Golang的閃光點——我通常花在調試Golang應用程式上的時間比Python應用程式少5倍。。。如果我能編譯這個應用程式的話,大多數時候它都能正常工作。」

可以看出沒有最好的語言,語言僅僅是個解決問題的工具,不同的業務場景適用於不同的程式語言。沒有明確的贏家,這兩種技術都是完美的,僅適用於不同的應用場景。

比如:

1. 當在類unix環境中使用時,選擇Python可能更好,它不需要安裝額外的庫,或者已經捆綁進去了(例如在Docker映像中)。

2. 當一個工具應該同時在Linux/Mac和Windows上運行或者需要捆綁其他庫時,選擇使用Golang也許更好。

有很多人認為Go不好:

Lack of generics 缺少泛型

Lack of operator overloading 缺少運算符重載

Lack of exceptions 缺少異常處理

Slow (as compared to C/C++) 慢(與C/C++相比)

GC memory overhead is large (as compared to C/C++) GC內存開銷大(與C/C++相比)

Lack of semicolon line termination 缺少行終止符--分號

Conditional-hell (too many if statements) 條件地獄(if語句太多)

Too verbose (lack of abstractions) 太冗長(缺乏抽象)

但我認為:

泛型是否有用還沒有定論,但它們確實是一個需要實現的複雜特性。它將顯著影響Go編譯時間,更不用說它會使語法複雜化。

運算符重載可以替換為更易於閱讀和執行的方法/函數。

異常可能是OOP中最糟糕的特性之一。錯誤應該處理,不能容忍。

Go雖然比C/C++慢,但更容易編程。開發人員時間更加寶貴。

GC時間和開銷成本隨著每次Go發布都在提高。硬體成本在不斷下降,可工資卻沒有顯著提高,便宜的硬體就能解決很多問題,你可以有更多時間去發現生活的美好。

在Go中,分號是可選的,但不受歡迎。

太多的if語句本身並不壞,但是沒有立即結束的代碼塊可能是開發人員糟糕設計的標誌。

抽象只是一種編程工具。程序設計的主要原則是算法,它的有限性、確定性和有效性可能被抽象所掩蓋。當開發人員不是在編寫抽象,而是在使用其他人的抽象而沒有清晰的代碼視圖時,這一點尤其正確。所以冗長在某種意義上是件好事。

谷歌為什麼要創建Go語言?

微軟創建C#的原因是什麼,是他可以。而谷歌為什麼創建Go,因為他可以!

很多技術人員可能會這樣回答:

「因為這是一門好語言」,

「因為C++很難」

「因為它促進了函數式編程」,

「因為Python很平庸,不像Erlang那麼可靠」

首先,谷歌是一家非常偉大的科技公司,由於不同的原因,它使用了大量的計算機語言:

先來談談google必須堅持使用的一種語言JavaScript,它為網際網路而生。它是前端語言,從1995年開始就有了,它就是為網際網路而設計的。谷歌用20多年的努力來改進JavaScript和技術公司聯盟(也稱為W3C),以實現一種新的web瀏覽器標準語言。最後,Google參與了很多項目來幫助整個JavaScript開發社區,比如Chrome V8(Node.js和MongoDB運行在chromev8上),以及Angular前端框架,Google正在全力推進這個項目,更不用說有數百萬的開發人員正在用它來開發東西。

2005年,谷歌就已經布局Python,它聘請了Python的原始作者Guido van Rossum。而Python可能是世界上最容易訪問的語言之一,因為它內置在OSX和Linux的所有發行版中(至少我聽說過)。

最後是java。我甚至不知道Google用Java做什麼,但據說Java是企業編程的黃金標準語言。

睜開眼睛,技術人員!

他們可以使用任何現存的語言,開發他們想要的任何東西,但是他們選擇去開發一種新語言。這種新語言一定有更大的商業利益。不管有沒有人喜歡,商業驅動技術而不是技術驅動商業。

而Go,谷歌必須讓股東相信,Go將是企業產品和自身企業內部運營的一個可行替代品,是對抗Java對企業市場的束縛的新的利潤增長點。

相關焦點

  • HackerEarth:2020年開發者調查報告 Go成最搶手程式語言
    HackerEarth 發布了 2020 年開發者調查報告,有來自 76 個國家/地區的 16,000 多位開發者參與其中。調查顯示,Go 是今年最受歡迎的程式語言。無論是學生(29%)還是專業人士(32%),都將 Go 語言列在「最想學習的語言」第一位。
  • Go語言開發環境:Goland安裝
    一、下載安裝開發環境golandgo語言sdk(go的標準庫)安裝sdk的時候,注意安裝的位置,後面要用到,我這裡安裝到了C盤,目錄為: C:\Go二、配置環境GOROOT在goland中配置sdk:software development kit(軟體開發工具包)三、創建工程目錄創建一個工程目錄,我這裡為: C:\goworkstation,這個目錄會作為環境變量GOPATH的值(馬上講到),同時創建下面三個子目錄
  • Go 語言 2019 調查報告發布 - 開源中國
    Go 官方博客昨日公布了 2019 年 Go 語言調查報告。本次調查收到的回覆達到 10,975 份,約為去年的兩倍。 這些受訪者的反饋意見將被選取用於改進 Go 語言的發展。以下是 2019 年度的調查報告摘要:此調查中,受訪者的受眾特徵與 Stack Overflow 的受訪者相似,因此這些結果在某種程度上可以代表更廣泛的 Go 開發人員。大多數受訪者每天都要用到 Go 語言,並且該數字在逐年上升。
  • Go語言正確快速安裝開發工具
    我最近幹啥我最近都在學習Go語言相關的東西以及搗鼓論文。不是沒時間更新,其實就是自己懶。 後續應該會回復正常的節奏了。今天都幹了些啥今天下午都在安裝Go語言的東西,因為自己打算使用VsCode作為Go的開發主力。
  • 為什麼很多公司轉型 Go 語言開發?Go 語言能做什麼
    鑑於Go語言的特點和設計的初衷,Go語言作為伺服器程式語言,很適合處理日誌、數據打包、虛擬機處理、文件系統、分布式系統、資料庫代理等;網絡編程方面,Go語言廣泛應用於Web 應用、API應用、下載應用等;除此之外,Go語言還適用於內存資料庫和雲平臺領域,目前國外很多雲平臺都是採用Go開發。
  • 程式語言趨勢最新報告:開發者最青睞DevOps,Kotlin增長最快
    機器之心報導Jamin、Racoon X、蛋醬最受歡迎的程式語言是 JavaScript,Python 和 Java ,增長速度最快的是Kotlin ,而 DevOps 依舊是開發者的最青睞對象,這是關於程式語言趨勢的最新報告。
  • 想學一門新的程式語言?考慮一下Go (Golang)吧
    圖源:Unsplash在這個競爭越來越烈的社會,掌握一門新語言或新技能,意味著你能比別人多一個機會。我嘗試用go-routine來解決此問題,其中最具挑戰性的一點是程序發出的HTTP請求數量未知,因此需要學習如何有效處理這些請求。第一印象很快,我發現語法異常熟悉,儘管我之前從未閱讀過相關文檔。在我看來,這些概念很直觀(其他人可能不贊成)。
  • 最理想的語言之一:GO為何如此與眾不同?
    它是我所做過的最複雜的東西之一,但是它卻讓人覺得很簡單......它需要大量的設計、思考、實現工作、完善。簡單是隱藏複雜的藝術!」讓我們來看看Go中幾個「簡單」的東西:· 垃圾回收器實際上是Go最簡單的功能,因為它沒有任何控制接口。
  • Go 語言 2019 調查報告發布 - OSCHINA - 中文開源技術交流社區
    這些受訪者的反饋意見將被選取用於改進 Go 語言的發展。以下是 2019 年度的調查報告摘要: 此調查中,受訪者的受眾特徵與 Stack Overflow 的受訪者相似,因此這些結果在某種程度上可以代表更廣泛的 Go 開發人員。 大多數受訪者每天都要用到 Go 語言,並且該數字在逐年上升。
  • 快速轉型golang(go語言)web開發 06-Go核心概念GOPROXY「重要」
    團隊為那些無法直連google伺服器的地區提供的一個配置項,通過正確配置GOPROXY,我們不需要科學上網也能夠輕鬆下載go的所有第三方依賴。go env 查看各參數這次我們看一下倒數第二項,GOPROXY,我這個已經配置過了,所以它後面有值,大家如果剛裝上go語言、還沒配置過的話,後面應該是空的
  • 促進Golang雲開發谷歌推出Go Cloud
    在程式語言界,谷歌的Golang語言可以說是當下最流行的語言之一,據官方數據全球約有100萬活躍碼農在使用Golang開發。同時雲計算也是目前技術發展最快的一個領域,並且改變了我們的基礎IT架構:大量的網站、應用開始遷移到雲上。
  • Go語言小書|小試牛刀,從hello world開始
    如果沒有垃圾收集,則在開發人員知道不需要這些變量的時候,由開發人員釋放與這些變量相關的內存。怎麼做?在C語言中,你會直接使用 free(str) 釋放變量。帶有垃圾收集器的語言(如Ruby、Python、Java、JavaScript、c#、Go)能夠跟蹤這些垃圾,並在它們不再被使用時釋放它們。
  • 一個Julia開發人員重新回歸Go | Gopher Daily (2021.02.27) ʕ◔ϖ◔ʔ
    Go技術專欄「改善Go語⾔編程質量的50個有效實踐」主要滿足廣大gopher關於Go語言進階的需求,圍繞如何寫出地道且高質量Go代碼給出50條有效實踐建議,歡迎大家訂閱!Go技術新聞Go觀察:一個julia開發人員重新回歸go - https://erik-engheim.medium.com/golang-observations-6421f760498b基於kqueue編寫一個簡單的tcp server - https://dev.to/frosnerd/writing-a-simple-tcp-server-using-kqueue-cah快速構建Solid
  • 對話專家:Go是DevOps時代最好的程式語言
    本書還解釋了DevOps中的人才問題,因為DevOps是需要難以發現的特定技能,所以找到合適的人才對於成功至關重要。  問:為什麼DevOps很重要?使用DevOps的好處是什麼?  Alvaro Oliveira:使用DevOps的好處很多,其中最顯著的就是會獲得更高的效率、安全性和組織協作。
  • |2020 最新軟體開發狀況報告
    1、程式語言社區:通常程式語言是構成強力社區的核心,但也是最富爭議的主題。該報告統計了活躍在各種主流程式語言上的軟體開發人員數量,數據覆蓋到了全球所有類型的程式設計師。此外,常見的調查報告可能會因為地理區域產生偏見,或偏向軟體開發的某些領域,或偏向開源開發人員。該報告統計了活躍在各種主流程式語言上的軟體開發人員數量,數據覆蓋到了全球所有類型的程式設計師。報告主要基於兩個數據。首先,對全球軟體開發人員的數量進行獨立估算。預計到2019年底,全球活躍的軟體開發人員高達2040萬。
  • 「首席架構師推薦」程式語言InfoQ趨勢報告
    由於iOS作為行動應用程式運行時的流行,iOS的開發已經向早期主流發展。雖然在JVM趨勢報告中單獨跟蹤了Kotlin,但在Android應用程式開發方面,他也看到了類似的早期主流趨勢。2019年及以後的程式語言趨勢是什麼?本報告旨在幫助技術領導者做出中長期的技術投資決策,並幫助個別開發人員識別流行的程式語言,並選擇將他們寶貴的時間和資源投入到哪些新的程式語言學習和技能開發方面。
  • 一次使用 Go 語言編寫腳本的經歷
    Go 語言已經 99% 支持腳本事實上,我已經可以使用 Go 語言來編寫腳本。這需要使用 Go 的 run 子命令:如果腳本名稱是 my-script.go,我們可以簡單的通過 go run my-script.go 來運行。這裡,對於 go run 命令,我認為需要特別關注一下。讓我們詳細說明下。
  • 有哪些宅在家裡,十天就可以學會的小技能?
    今天我那個每天吃雞的同學跟我抱怨,遊戲都玩吐了,盼望快點開學,與其在家無聊,不如學習一些小技能或者培養一個小興趣,所以給大家推薦輕鬆學會的小技能:一、攝影。攝影師 Chase Jarvis 說:「最好的相機,就是當你想要拍攝一張照片的時候,你手上的那一部。」
  • 『Pokemon GO』新增繁體中文語言支持!
    Pokemon go官網於4月6日正式宣布在最新的遊戲版本中追加【繁體中文】語言的選項。
  • Go語言潛力有目共睹,但它的Goroutine機制底層原理你了解嗎?
    協程並不是Go語言特有的機制,相反像Lua、Ruby、Python、Kotlin、C/C++等也都有協程的支持,區別在於有的是從語言層面支持、有的通過插件類庫支持。Go語言是原生語言層面支持,本文也是從Go角度去理解協程。