為什麼開發人員從Java轉Go

Web開發者發表於2014-08-25

  使用Java來開發企業級的應用可能是一個不錯的選擇,但是使用Google的Go語言來開發系統軟體會更有優勢,一名來自PivotalJava開發者如是說,目前他已經成為Go語言的支持者。

  Pivotal的一個使用Go語言開發其Cloud Foundry 雲平臺的工程師Matt Stine說:Go語言在包、模組化和併發方面有很大優勢,如果你嘗試解決的問題是Go語言所擅長的領域,如大型、高效能伺服器端程式,我可以說Go非常適合這樣的場景。”

  Stine認為Go是一個“相當無聊”的語言,而不是一個神奇的、現代的、功能豐富的語言,但是儘管如此,“你仍然可以使用它開發出一些令人興奮的東西”。他認為Go是一個構建系統級軟體的工具。開發者可以使用Go語言標準庫來構建系統級軟體,而不像其他語言一樣需要第三方框架。

  Stine提到,在處理併發時,Golang有內建的功能,這與Java不同,Java的併發的工具類是通過類庫支援的。Stine說:“我認為Go語言本身的語法結構就非常適合處理併發。”另外,Go支援多返回值。

  Go也提供了閉包和Map,Map可以將一種型別的值(Key)與其他型別的值關聯起來,他們都是Go的內建資料結構。Stine還稱讚了Go的slice。通過slice,被包裝後的陣列可以方便地為序列的資料提供介面。在Go中,很多與陣列相關的程式設計都通過slice來實現。

  在Go語言中,半自動資源管理是通過defer關鍵字來提供的。“取代建立資源、使用資源、然後在下面關閉資源的是,我可以馬上告訴它,‘在該函式其餘功能執行完後再執行這個函式’”,stine說。

  Stine強調,Go語言在面對包和模組化的時候比Java更有優勢,原因是在Go語言中它們比Java簡單得多。“在Go裡面,所有型別和函式必須屬於一個包,但是每一個原始檔必須申明它所屬的包。”

  Java,由Sun Microsystems公司在1995年推出,在語言流行排行榜(包括Tiobe,PyPL和RedMonk程式語言排行榜)中得分最高或者接近最高。Go語言,在RedMonk排行中正在上升,在6月的排行中來到第21位。在7月的Tiobe排行中,Go被排在30位。

  原文:http://www.javaworld.com

相關文章