The Functional Web : 舊瓶新酒是否會變出新思維?

六月 18, 2009

這期的IEEE ComputeringNow有篇報導, Steve Vinoski談到網路程式的趨勢The Functional Web, 也就是以Functional Programming來架構網路程式 … 什麼是Functional Programming? 什麼是The Functional Web? 哪些是舊把戲? 哪些是新思維?

先來談談Functional Programming (FP)…

對於網路世代來說, FP是老得不能再老的東西了, 我們可以翻譯成函式編程, 也就是相對於Imperative Programming(指令式編程)

這兩個有何差異? 對於Imperative Programming(指令式編程)來說, 不同的狀態(state)下, 相同的表示法可能有不同的結果, 用白話來說就是你問我餓不餓? 我回答說不餓, 但是可能我一個小時後的回答是很餓…

而Functional Programming就是不管狀態如何, 只要輸入相同就會有相同的結果, 例如Hungry-Function(who,when), 只要輸入Who跟When相同, 就可以得到同樣的結果

所以Imperative Programming也可以來完成Functional Programming的目的, 只是語法會比較複雜, 所以談到FP, 有假的FP, 也有純種的FP

Steve Vinoski談的FP就是指真的是為了functional而來的程式語言, 用這種FP來架構的就叫The Functional Web

哪些是假的FP? 大概你叫得出來的都是, 如C, C++, JAVA, Python 諸如此類 … 哪些是真的FP? 也有很多, Steve Vinoski只提到一個 — Scala, 並且用在Lift架構上

你從最簡單的“Hello World"就可以知道, Scala的精簡程度, 而Lift是一個Framework, 你也可以從Lift Demo來看看長什麼樣子

所以雖然Functional Programming與The Functional Web都不是新概念, 但是卻有新長相, Steve Vinoski的The Functional Web有些Cloud Computing跟SOA的味道, 也有現今流行的Mashup的意味

不過筆者還沒真正使用, 不敢亂下斷語, 後續再評論了, 若有人先一步使用了, 也歡迎提供您的意見來交流!

參考資料:
Welcome to the Functional Web
Scala and Lift

敬請留言

你的回應對我們是很重要的. 你的電子郵件將不會被公開.

請等待 ...
*
Loading Facebook Comments ...