2014年1月18日 星期六

新發現 Lisp, Clojure

視野又被打開了一次,這次發現的東西是動態語言,是受到 『駭客與畫家』這本著作影響,作者以自己的經驗,並闡述 Lisp 是他使用的主要開發語言。



相對於以C#為開發語言的自己,能打開更多開發的可能性。習慣以C#的方式思考,並以OO作為準則、組織的工具。

另外還在閱讀的"七周七語言",目標都是動態語言,也是在語言(解決問題)上增加多樣性的理解。在"七"書裡面,僅 Ruby還帶有OO的概念,其他都是函數式的語言,ruby也有"宏"的特性,在本書是以 "元編程"主題介紹。

本書的另一個語言 Clojure , 也是Lisp的方言之一。誕生在2009年,但是推廣的很快,原因可能是他是運行在JVM上的(也能使用java開發的庫),Java界的開法者比較願意嘗試。對於開發者們,重點是要能好好開發產品,語言特性、庫的豐富性都是重要的考量。

JVM 是java的虛擬機, clojure 的開發者把她拿來利用了, 這樣clojure也有了java的 write once run everywhere 的特性。相對在 dotNet的虛擬機 CLR ,  clojure 也有相應的版本在開發中,對我來講也是好事一件。

本篇的焦點都放在動態語言上了。為什麼呢?回到"駭客與畫家"的理念,開發的核心加值在於表達能力,語言具備的表達能力愈好,就能在開發的時候有高的生產力,而Lisp語言是作者認為能協助他在業界勝出的語言。

而許多語言也漸漸的往 Lisp 這類的高階語言的特性靠攏了。例如: c#的 var 變量、lambda表達式。


『駭』與『七』是兩本不同類型的書籍,因為他們都有動態語言的特性,才被放在一起的。

『駭』是作者成長與業界的經驗談,但是帶出了他如何選擇語言的考量,以至於後續的成功。
『七』就比較是學語言的工具書,不過本書的焦點是放在各語言的特性,也就是解決問題的類型上,或者說不同的語言有不同的解題思維。作為開拓思維,是有幫助的。



作為開發的工程師,c# 是目前的本業,動態語言的話 clojure 是我目前任為最有動機學習的語言(有能跑得平台jvm, clr ), 這是主要語言的選擇。

前端的部份,個人還是偏好jQuery與 AngularJS。

以上是最近的心得,表達上有些破碎,請讀者笑笑就好。

沒有留言:

張貼留言

歡迎回饋