Racket和Haskell誰更有發展潛力?

兩者差距在哪,請大神做一下詳細分析。


What are the relative strengths and weaknesses of Racket and Haskell?


就發展潛力而言haskell更勝一籌

社區人數haskell是racket的好幾倍,因此前者在資料和軟體包上也豐富好幾倍,而且haskell社區擴展的速度也比racket要快,比如現在ghc的開發速度,變革幅度越來越大

racket對編程初學者非常友好,完爆市面上99%的語言系統,自帶的文檔非常詳盡,核心軟體簡單容易功能也不弱。但racket社區相對來說比較小,在推廣和吸納新開發者方面工作做得不如haskell好(編譯器開發,核心軟體開發,軟體包安裝等等)

就語言特性上兩者各有千秋,誰也取代不了誰

總結:兩個語言我都很喜歡,而且它們誰也取代不了誰,單論發展前景是haskell較好,建議兩個一塊學了


關於Racket和Haskell的區別, @邵成 提供的鏈接已經很扼要地說明了。

函數式語言的頂級會議ICFP由 Functional Programming and Computer Architecture (FPCA) 和 Lisp and Functional Programming (LFP) 兩個會議合併產生,但是縱觀近幾年,Haskell相關的文章要多於Lisp相關的,加上ML/F#的話Lisp將顯得更少

所謂「相關」,指通過該語言:

  • 開發新的語言(如Idris,Elm);
  • 實現PL相關的演算法/模型(xx type,xx analysis等);

  • 做庫/語法的擴展(GADT、HoTT之類的。)
  • 開發各種軟體/工具(如Marlow做的Haxl)
  • 其他?

也不用悲觀,主要使用Racket做研究的實驗室仍不少。我知道的有:印第安納大學、東北大學、布朗大學、馬里蘭大學、猶它州立大學等等。(個人主要關注ML、Racket相關的)。

在Type System研究上,Haskell走得已經很遠了,而Typed Racket尚不夠成熟;

程序驗證/輔助證明上,Racket也有PLT Redex(個人感覺沒Coq、Agda好用);

元編程和動態類型給了Racket相當大的自由,當然你得習慣S-表達式(並不是黑);

Racket非常適合作為教學語言,相比較Haskell自帶的光環(Or包袱?)太多了;

。。

最後,ML大法好(Standard ML &>= Ocaml)


推薦閱讀:

愉悅的scheme之旅(4)--Delimited Continuations

TAG:函數式編程 | Haskell | Racket |