本書通過大量的代碼示例,對Go特性進行了清晰的描述,并將它們與類似的Java特性進行了對比。本書以Java的視角,全面地介紹了Go的基礎知識以及優(yōu)秀應用程序。讀完這本書,讀者將對Go及其庫有足夠的了解,從而開始使用Go語言進行編程。本書還介紹了Go的重要軟件包,為計劃使用Go的開發(fā)人員提供了針對很多問題的現成工具。
本書清晰地描述了Go功能,并將其與類似的Java功能進行對比,以及通過大量的代碼示例來教授Go。閱讀本書后,你將對Go及其庫有足夠的了解,從而開始使用Go語言進行有效的編程。本書主要面向專業(yè)Java程序員或對Java有一定了解的讀者,在結構上更像是一個教程,而不是參考文檔。內容涵蓋了Go的關鍵功能,但并沒有詳細討論每一個細節(jié)。本書的目標是讓讀者完全掌握Go及其運行時,從而可以有效地編寫Go程序。
自20世紀90年代中期首次亮相以來,Java獲得了巨大成功。相比于其他語言,Java在Web應用程序和關鍵數據處理(例如大數據工具)領域扮演了重要角色。除此之外,Java在操作系統(tǒng)和硬件架構之間的高度可移植性、豐富且不斷改進的語言和函數庫,與其良好的性能一起促成了它的成功。
但Java也有一些缺點。Java創(chuàng)建于面向對象編程剛剛規(guī)范化、網絡傳輸代碼剛剛規(guī);臅r代。隨之而來的問題是Java運行時(runtime)占用空間大、資源需求大。Java開發(fā)人員試圖通過Java模塊、標準庫子集和Graal0虛擬機解決。但實現同樣的功能,Go語言比Java語言更節(jié)省資源。
隨著時間的推移,Java語言和運行時不再是眾多現代(尤其是云平臺)程序的最佳選擇。另外,Java的持續(xù)發(fā)展帶來了一個問題:人們很難全面掌握它。Go卻是一門簡單易懂的語言。
Go語言及其運行時相對較新,旨在滿足現代云計算系統(tǒng)和其他系統(tǒng)編程任務的需求。很多人認為它是“比C更好的C”,可能替代C語言,因為Go是與C極為相似的語言。Go語言也可實現Java在服務器和應用程序方面的大部分功能。這是本書成書的原因。
現在,Go語言正在用于許多新應用程序的開發(fā)和已有應用程序的重構上。以前用Java開發(fā)的程序,可能選擇Kotlin或ScalaJVM(都是基于Java虛擬機的語言)重構,但現在Go語言常常超越二者。例如,KhanAcademy使用Go重構其Python網站。由于Go具有類似腳本語言的易用性以及編譯語言的高效性,因此常被用于重構。
巴里·費根鮑姆(Barry Feigenbaum),擁有數十年的軟件工程相關經驗,擁有計算機工程(專注于面向對象軟件設計)博士學位和電氣工程學位。他曾任職于IBM、Amazon等行業(yè)領先公司,目前就職于戴爾,擔任高級首席軟件工程師。他在技術雜志和評審期刊上發(fā)表了多篇文章,與人合著了幾本關于IBMPC-DOS的書,并擁有20多項美國專利。