Go語言最早并不是一個Google的正式項目,而是作為一個“20%”的項目出現。直到2009年,它被設計成一種系統程式設計語言,用于具有Web伺服器、存儲叢集或類似用途的大型中央伺服器的系統程式設計語言,目前Go Team有穩定的釋出周期,大約半年一個新的版本,目前最新為1.9版本。
對于高性能的分布式系統,GO語言無疑比大多數其他語言更高效。它提供了大量的并行支援,這對于遊戲服務端的開發而言是再好不過了。
傳統的語言如C++,大家花費太多時間來學習如何使用這門語言,而不是如何更好的表達寫作者的思想,同時編譯花費的時間實在太長,對于編寫-編譯-運作這個鍊條來說周期太長。動态語言如Python,由于沒有強類型的限制,很多問題需要在運作時發現,這種低級錯誤更應該交給編譯器來發現。
在人力成本越來越高、機器越來越便宜、機器的性能越來越厲害、想要在開發效率和運作速度上達到平衡的趨勢趨勢下,Go語言誕生了。
我們先來對比一下go語言與其它開源語言比較具有哪些優勢?
與C++比,go的開發效率高,具有清晰的依賴管理和全自動垃圾回收機制,代碼量大幅減少。
與Java比,更簡明的類型系統。
與php比,go在性能上占有明顯優勢,且通用性和規範性更好,更适合建構大型的軟體。
與python比,go在性能上占有明顯優勢,因為解釋型語言與編譯型語言在運作速度上不可同日而語,另外go在文法簡明和類型系統設計上優于python。
選擇GO語言,主要是基于兩方面的考慮
執行性能 縮短API的響應時長,解決批量請求通路逾時的問題。
在Uwork的業務場景下,一次API批量請求,往往會涉及對另外接口服務的多次調用,而在之前的PHP實作模式下,要做到并行調用是非常困難的,串行處理卻不能從根本上提高處理性能。而GO語言不一樣,通過協程可以友善的實作API的并行處理,達到處理效率的最大化。依賴Golang的高性能HTTP Server,提升系統吞吐能力,由PHP的數百級别提升到數千裡甚至過萬級别。
開發效率 GO語言使用起來簡單、代碼描述效率高、編碼規範統一、上手快。
通過少量的代碼,即可實作架構的标準化,并以統一的規範快速建構API業務邏輯。 能快速的建構各種通用元件和公共類庫,進一步提升開發效率,實作特定場景下的功能量産。
Go語言雖然沒有得到廣泛的應用,但由于高效、易學、易用、易維護的特性,十分适合開發大型軟體,很多大公司都在使用,如Google、Facebook、騰訊、百度、阿裡巴巴、京東、小米以及360、美團、滴滴以及新浪等!快來學起來吧~