而C,C 不在VM上執(zhí)行,從執(zhí)行周期中刪除一個步驟,并提高了性能。 他們直接將代碼編譯成二進制代碼。

但是在C/C中釋放和分配內(nèi)存太過痛苦。 即使大多數(shù)編程語言可以使用垃圾收集器或引用計數(shù)算法處理對象分配和刪除。 Go同時擁有上面提到的好處。 Go是像C/C++這樣的低級語言并且是編譯型語言。 這意味著它的性能幾乎更接近低級語言。 并且Go還使用垃圾回收來分配和釋放內(nèi)存。 所以不需要malloc和free!?。?
Go代碼容易維護
Go有著非常整潔和干凈的語法。Go的設計者在創(chuàng)建語言時考慮到了這一點。 由于google有非常大的代碼庫,成千上萬的開發(fā)人員正在使用同一個代碼庫,代碼應該易于其他開發(fā)人員理解。這將使代碼易于維護和修改。 Go故意去掉了很多現(xiàn)代OOP語言具有的功能。
- 沒有類。 Go只有結構體而不是類。
- 不支持繼承。 這將使代碼容易修改。 在其他語言(如Java / Python)中,如果ABC類繼承了類XYZ,并且在類XYZ中進行了一些更改,那么這可能會在繼承XYZ的其他類中產(chǎn)生一些副作用。 通過刪除繼承,Go使得很容易理解代碼(因為沒有超類)。
- 沒有構造函數(shù)。
- 無注解(annotation)。
- 沒有泛型(generics)。
- 沒有異常。

上圖顯示Go幾乎與C/C++一樣高效,同時保持代碼語法簡單,如同Ruby,Python。 這是一個對人類和機器來說雙贏的局面! 與其他新語言(像Swift)不同,Go的語法非常穩(wěn)定。 自從2012年首次公開發(fā)布1.0版以來,它保持不變。這使得它向下兼容。
Go的背后是Google
- 雖然這不是直接的技術優(yōu)勢。 但Go是由Google設計和支持的。 Google擁有世界上最大的云基礎架構之一,并且可以大規(guī)模擴展。Go是由Google設計的,以解決他們需要的可擴展性性問題。這些也是你在創(chuàng)建自己的服務時將面臨的問題。
- Go也被一些大公司使用,如Adobe,BBC,IBM,英特爾等等。
結論
- 即使Go和其他面向?qū)ο蟮恼Z言非常不同,但它同時為您提供高性能(如C/C++),超級好用的并發(fā)處理(如Java)和簡潔的代碼(如Python/Perl)。
- 如果你沒有任何計劃學習Go,我還是會說軟件開發(fā)人員需要寫出超高效的代碼。開發(fā)人員需要了解硬件并相應地優(yōu)化程序。優(yōu)化軟件以運行在更便宜和更慢的硬件(如IOT設備)以提升最終用戶體驗。