Elm 语言初体验
上個周末兩天一直在看Elm,這是一門函數式編程語言。所謂函數式編程(Functional Programming,FP),跟面向對象編程(Object Oriented,OO)是同一種類型的概念,是一種編程模式。具體什么叫函數式編程,它有什么特征,有什么優勢,這里不作具體解釋。只放出一個大膽的預言,就是在未來,尤其是在Server端,將會是函數式編程的天下。
Anyway,Elm是一門函數式編程語言,它是一門靜態的,強類型的語言,目前主要targeting在Web端,因此它有一個compiler可以編譯成JS。
目前,編譯成JS的語言已經有非常多了,如CoffeeScript,TypeScript,PureScript等等,甚至很多現有的general purpose語言現在也有了一些工具,用來把它們編譯成JS,如Clojure 有ClojureScript,Scala有Scalajs,Ruby有Opal等等等等。
為什么有這么多的新語言編譯成JS,又有這么多工具把其它語言編譯成JS呢?這些說白了其實都是想取代JS,這說明一個問題,那就是JS不夠好,這個跟JVM上面有這么多語言原因是類似的。
Elm也是出于同樣的原因,它想要發明一種全新的Web語言,用于取代JS。那在這么多語言中,Elm的優勢是什么?
經過這兩天的接觸,我了解到它的優勢有以下幾個:
Redux evolves the ideas of Flux, but avoids its complexity by taking cues from Elm.
---- redux.js.org/
總之,我覺得這個視頻里面有一句話總結得非常好,那就是Elm是現在整個JS界的發展趨勢,然而JS還有很長一段路要走。
那Elm完美的嗎?當然不是,我這兩天接觸下來,發現它仍然處于比較年輕的狀態,雖然官方聲稱它已經production ready,也確實有好一些公司已經用于正式的產品中。然而我相信都不是很容易的事情。目前來說,我覺得有以下幾個問題需要極需改善:
接下來打算在公司的內部小工具上面試用一下,因為Elm文件是可以跟JS交互的,所以應該不是太大的問題,大不了再用回JS嘛。但是函數式編程作為未來的發展趨勢,還是要了解一下的。所以,總體來說,我覺得這是一門非常值得學習的語言。
如果你對Elm感興趣,歡迎加微信群,共同交流。
(為避免二維碼失效,請關注公眾號從里面加入)
總結
- 上一篇: 树状数组的特殊形式
- 下一篇: spice server dpkg-bu