Rust相比Go的優劣勢


Rust相比Go的優勢:

  Rust可以做內聯匯編,Go不行(Rust的SIMD庫也在開發中,這種事情你不會用Go做)。

 

  Rust有確定性析構,Go沒有,只能whole-world-stop做GC。

  Rust的接口(trait)可以靜態派發,做zero-costabstraction,Go不行,它的interface只能靠反射做動態派發。

  Rust沒有運行時,可以寫操作系統(我估計至少需要幾百行匯編做bootstrap),Go離這種能力很遠。

  Rust有一個更豐富的類型系統,表達能力更強,允許你做更高層次的抽象,寫出泛用的庫,這個是Go不具備的。

  Rust有更強的語義,更容易捕獲錯誤的邏輯,編譯器直接檢查出你代碼中的不安全的部分。

  Rust的適用領域比Go更廣。

  Rust社區更願意改變,Go社區喜歡堅持他們不需要泛型。

  Rust有一個活躍的開發社區,如果你發覺有東西需要做出改變,不管是文檔、編程思想、語言設計、bugfix等等,社區歡迎你提出來一起討論,並且沒有問題的建議經常能被快速接受,不管你以后工作中會不會頻繁用到Rust,與Rust一起成長總會是一段有趣的體驗;相比之下Go算是大公司病,人們不那么對提出改進的建議做出積極響應。我自己也曾經為Go感到興奮,在那半年中我卻沒有讀過Go的源碼;然而在Rust這活躍的社區的促進下我也讀過一些源碼了,如果你對代碼的組織方式等源碼相關的問題有疑惑歡迎與我討論。

  Rust相比Go的劣勢:

  Go相比Rust比較簡單,相對容易學習。

  Rust的語言設計看上去不如Go穩定,我是從0.10才開始用Rust,感受不深,不過我理解更早的用戶可以感受到語言設計的巨大變化。我自己也經歷過各種breakingchange,比如enum成為命名空間時,數組下標從uint改為usize時。對1.0之后語言的穩定性我們只能拭目以待。

  Rust是后來者,文檔不那么完整、思維需要做出一些轉換(因為它比Go的內容更加豐富)。

  Go語言

  谷歌公司打造的“直觀、簡潔、干凈、高效”語言,目前已經得到諸多主流技術廠商的廣泛支持。

  與Swift類似,Go同樣可編譯為平台原生二進制代碼,因此在某些任務中擁有優於Python的運行速度,而且無需設定目標即可完成跨平台開發。Go語言的編譯速度也非常出色,從開發速度角度看,其更像是一種解釋型語言而非采用編譯機制。

  雖然Go的歷史比Swift稍長一些,但其群體基礎仍然無法同Python相比。另外,Go的語法與錯誤處理方案對當前Python用戶來說可能不太友好。因此,其並不適合已經掌握了Python的程序員朋友。而Pyinstaller等工具的出現則讓Python應用的綁定工作變得非常便捷,更不用提在大多數Linux系統中,Python運行時已經被設為預置項目了。

  Rust語言:

  這是一個同時包含語言與開發環境的統計計算項目。

  R相較於Python擁有多項優勢,例如豐富的第三方軟件生態系統。另外,R在設計中考慮到了統計計算需求。雖然Python也很重視數學及統計處理,但R可謂在開發當中自上而下將二者進行了貫穿。

  R還吸引到了眾多大牌廠商的支持。微軟就進行了一系列收購旨在利用R構建自己的雲數據服務。惠普方面則開發了DistributedR,能夠一次性運行在多個節點之上。隨着各相關技術成果的不斷演進,R完全有可能在統計計算領域將Python拉下馬。

  不過有時候通用型語言的優勢還是值得強調。R雖然針對性更強,但也更具局限性——我們很難在R應用中實現交互性。另外,Python還能夠更好地與其它語言對接,使用RPy2等軟件包即可同時享受Python與R帶來的便利。

Java入門教程及學習視頻
  java-環境搭建及基礎語法
http://www.makeru.com.cn/live/1394_202.html?s=143793
java-數據類型
http://www.makeru.com.cn/live/1394_203.html?s=143793
java中讀取配置文件的幾種方式
http://www.makeru.com.cn/live/1394_481.html?s=143793
常用工具類
http://www.makeru.com.cn/live/1394_253.html?s=143793


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM