Racket和Haskell誰更有發展潛力?
01-27
兩者差距在哪,請大神做一下詳細分析。
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)推薦閱讀: