今天無聊,偶爾上來看看,突然發現兩篇文章4個程式員的一天 和也說Functional Programming
突然覺得很不是滋味,要說函數式編程出現好久了,大家都知道Lisp和Scheme這些元老層級的程式設計語言,我也曾聽一些人說:“唉,Lisp簡單了,就
是括弧煩”,我就覺得,其實這些人根本沒有理解什麼是函數式編程.我有一些同學,其實我覺得他對一些東西的瞭解很膚淺,比如,做個Word建個目錄索引都
不會,也會在簡曆上寫一筆“熟練使用Word”。還有,學了一下C#,能寫個什麼簡單的程式,便說自己“精通.Net”。
上個學期學院請了一個老外來講課,講了Functional
Programming,我當時就覺得“好啊”,這麼重要的東西,可以開闊大家的思路,我們教了Haskell,老師沒講多少,大家可能也稀裡糊塗學過去
了。事後問了同學,大多這樣想“這個沒什麼用啊”“不如Java用得爽”“以後又不能用它賺錢”云云……讓我很是難過。
國內總好像呈現這樣一種情況,總是看者哪種技術有"錢途",就去學哪種技術,昨天Sun推Java,大家蜂擁而上,今天Microsoft宣.Net,一會兒有來個MDA,SOA,大家又緊緊跟上,有的撿個概念,有的學個基礎,然後大家大呼軟體開發的革命到了!
這
些函數式語言是建立在很深的數學基礎上的,什麼Lambda運算,什麼閉包,很多理論都十分深奧難懂,我一直後悔自己沒有把數學學好,所以我很難透徹地去
理解這些理論,而學好這些東西,可以瞭解另一種新的編程方式,而不是陷在所謂的OO中。然而卻有人說Lisp這種東西只有"學院派"才去用。看來中國沒有
這些“學院派”,都是很實用的,難道中國真得
不需要這樣一批“學院派”?不需要這樣一批人去透徹地理解和研究這些東西?我看不是,而是很多人都是忙於賺錢,沒時間去顧及研究這個東西,手頭的技術只要
能夠用賺到錢就可以了,腦子裡的名詞只要能熟練吹能蒙住客戶就行了,還有多少人能去深入地進行一下研究。也難怪中國沒有有特色的程式設計語言──人家日本人都
發明了RUBY,巴西人都有LUA,也難怪中國的IT有那麼多的怪現象……
唉,不發勞騷了。
話說回來,像Functional Programming的原理,其實在很多語言中都有,像Smalltalk、我們常用的JavaScript也是、Python、PHP、LUA、REBOL等等,當我們在苦苦思考如何用OO解決一些問題的時候,也許FP已經幫我們指明了方向。
見:
JavaScript = C + Lisp
Python 不是 Java