從報告中我總結了幾點:
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對企業市場的束縛的新的利潤增長點。