Rust相較於Haskell有何優勢?


其實這個比較意義不大。關公戰秦瓊。

Trait, 類型推導早就不是什麼很「嶄新」的特性而值得稱道了(當然學術領域的新工作還是會有很多)。也不僅僅是 Rust, Haskell, 很多其他語言也都具備這些特性呀。

高票答案提高了寫 DSL, 其實這恰好是 Haskell 的 best class. Rust 本來就不是為了編譯器或者PL領域而被設計出來的語言。真要比較的話,也應該是 Haskell, Idris, OCaml 等幾個語言放在一起比。比如「同樣支持 Dependent Type, Haskell 和 Idris有哪些異同 」 之類的,都是他們幾個語言關起門來可以一起探討的問題。從類型系統上說,Rust 不支持 Existential Types , Dependent Types. ADT 的使用很雞肋,還沒
subtyping 不能做靈活的 downcast,實在不能說值得稱道。但是 Rust 作為系統級編程語言的二代目,對 memory safe / data
sharing 的控制和思考,以及類似 "borrow checking, lifetime elision" 等特性和使用方法相對更值得探討些。有人認為是一個好的設計,有些人覺得過於繁瑣沒有必要,這些涉及到了 Rust 本身的設計初衷。而至於 ADT, 默認 immutable 那些看上去很有函數式 style 的東西,其實都只是些細枝末節。真要去學 FP 還不如直接看Haskell.

另,就好比 Haskell avoid success at all costs, Rust 可能也並沒有那麼看重語言本身的表示能力? 有時候擁有一個賞心悅目的 state of xxx ecosystem 可能比 「 ...以上可以證明 我們擁有的xxx特性可以在xxx領域有很強的表達能力——然後就去安心睡覺」更吸引人(逃


給Rust官方博客那幾篇看上去很promising的文章安利之後就覺得Rust有多牛逼真是:

too young, too simple, sometimes naive

踢開Strict跟Lazy, Haskell還真完爆Rust (update: GHC 8.0將支持Strict)

就擼DSL而言, Haskell, Ruby屬第一梯隊, 第二梯隊算Scala(其實很接近第一梯隊), Rust那語法不像能擼出好看的DSL, 你說你有宏, Haskell也有Template Haskell, 然後用這個順帶解決了call c代碼的問題: Call C functions from Haskell without bindings

說resource management, Haskell老早就有Monadic Regions, 搞Rust的人去問Dan Grossman(Cyclone作者之一)搞Region好不好, Dan說太難了程序員hold不住然後搞成現在這個樣了

說並發, Mio: A High-Performance Multicore IO Manager for GHC [pdf] : haskell 不知道高到哪裡去了, Rust還抄了名字 carllerche/mio · GitHub, 我知道你們都喜歡秋山澪!

說類型系統, Rust現在還不茲磁Higher order type, 我當然是不茲磁的

歡迎對擼, 前提是看過paper (逃

update:

有人拿到Reddit開撕了: Comparing Haskell and Rust: which to choose, when?


謝邀。

不需要學習Monad。

這解開了很多人心頭的蛋蛋。


Rust有分號,不需要Monad了……


haskell比rust還是難度高不少的。


不討論效率,那還有什麼好討論的么?。。。

Rust的賣點就是zero-cost abstraction啊


Rust 不用 garbage collection, 這是 Haskell 繞不過去的吧.


好在不是純函數式的,但又參考了Scala等函數式語言的些好的語法。

好在不像Haskell從教科書式起家,更注重工程性一點,好在他是一個新開發的語言:)

還有Rust可以不用gc,可以寫非常底層的系統程序。


祖與占@ 就擼DSL而言, Haskell, Ruby屬第一梯隊 -- Lisp完爆各種語言,每個程序員都能輕鬆搞個自己的DSL。

gerryxiao@ 講特性的話,haskell完爆所有語言。-- 估計你沒了解過Lisp方言Racket ! 可以去看Racket之父在youtube上的演講。


推薦閱讀:

Haskell 裡面的 Functor 是個什麼概念?
怎樣學習 haskell 效率比較高?
如何評價最新推出的 Glasgow Haskell Compiler (GHC) 8.0.1 版本?
haskell中的immutable array是如何實現隨機訪問的?
如何評價即將正式 release 的 GHC 8.2.1 ?

TAG:Haskell | Rust編程語言 |