2014-02-13 134 views
1

最近我遇到了Go語言。 Go和Ruby之間的主要區別是什麼? Ruby和去之間Go和Ruby之間的主要區別

+1

GO是Google推出的一種新語言。在這裏閱讀更多關於它的信息http://golang.org/ – ShrekOverflow

+0

PS通常有幾百種編程語言,每種編程語言都有一些或其他功能。比如Scratch這樣的語言是爲了讓孩子學習而做的。由於你是新手,我建議學習和掌握任何一種編程語言。 PS你問的基本上是扳手和螺絲刀之間的區別。這兩種工具都是用於某種目的的一些工具。 – ShrekOverflow

+2

這個問題如何基於意見? –

回答

14

主要區別:

  • 紅寶石創建於1995年進入創建於2009年
  • 紅寶石被Yukihiro Matsumoto設計。 Go是由Google設計的Ken Thompson,Rob Pike & Robert Griesemer
  • Ruby參考實現(MRI)是interpreted(編譯爲YARV字節碼)。 Go被編譯成機器碼。
  • Ruby是動態類型的。 Go是靜態類型的。
  • Ruby有例外。去不(它鼓勵explicit error handling)。
  • Ruby的語法主要受Perl和Lisp的啓發。 Go的語法靈感來源於C.
  • Ruby支持類型層次結構(通過基於類的繼承)。轉而喜歡構圖(通過接口和嵌入)。
  • Go被設計爲從一開始就支持併發,並且爲它(即通道)提供了內置原語。紅寶石不是(雖然它現在有ThreadsFibers,以及替代實現,如JRuby & Rubinius)。
  • Ruby的構建易於開發。 Go是在考慮大規模代碼庫的情況下構建的。
  • Go被認爲是更多的系統語言。它的建立主要是爲了取代Google的C++,Java和Python。

爲什麼人們認真對待這門語言?

它採取務實的方法,aims to solve real world problems,特別是那些在谷歌面臨的。

+2

順便說一下,Go有例外。你可以用panic()引發一個,用recover()捕獲一個。他們只是故意不用於普通的錯誤腳步。 Go異常就像Java中的RuntimeException所做的那樣。 – fuz

+0

@JörgWMittag對,我補充說明我指的是MRI。 – Agis

相關問題