Category Archives: Functional

Functional Programming for Java Developers 讀書摘要

這是我之前念 Functional Programming for Java Developers 一書的摘要記錄。這本書很薄只有90頁,是一本蠻不錯的 Functional Programming 概念入門勸敗書。

近來 Functional Programming (函數式編程,以下簡稱FP) 的重要性提昇就是為了因應 Concurrency 的需求。CPU 朝向多核架構發展,OOP的程式開發方式物件充滿可變狀態,造成撰寫 Concurrency 程式時陷阱多多。

當然,要寫FP不代表一定要用FP語言,還是可以用現成的OO語言去寫。但就像用沒有OO支援的C去寫OO風格,用專門的FP語言還是比較方便。

為何要FP?

作者說雖然是因為 Concurrency 而學 FP,但是後來卻很享受這種 Paradigm Shift (典範轉移)。OO 被發明因為 GUI,後來人們發現可以用來應用在各種領域上。OO 和 FP 都是工具,各有優缺點,但是現在人們碰到所有問題都用 OO 去解,就像你手上有著搥子,在你眼中什麼都看起來像釘子

FP 不代表比 OO 優越,畢竟 OO 的好處已經被證實且廣泛應用。而是目前時代不同了,OO 的缺點在某些領域已經到了不可忽視的地步,有些挑戰性的問題用 FP 解更為適合,例如:

Continue reading Functional Programming for Java Developers 讀書摘要

那些 Functional Programming 教我的事 投影片

這是今天在 OSDC.TW 2012 演講的投影片:

這個題目是近年來第一次脫離 Ruby 舒適圈的演講(抖),準備的時候就發現 Functional Programming 不但講不完(30分鐘的演講教不會寫FP啦),有些概念又很難,真要講到 “Pure” 的 Functional Programming 我連 Monad 都還搞不清楚…orz 所以本來準備的內容在前一天又狠狠砍掉 1/3,開頭改成用 Concurrency Program 來引人入勝,希望這樣的目的有達成 :)

演講:那些 Functional Programming 教我的事

一年一度的台灣 Open Source 界盛事 OSDC.TW 又到了。在連續講了好幾年 Ruby 和 Rails 之後,今年我的研究主題決定什麼都學學看來點不一樣,其中 Functional Programming 是我很看好的一個趨勢,所以來挑戰看看。

以下是我今年的演講摘要:

Topic: 那些 Functional Programming 教我的事

Abstract:

隨著 CPU 多核和雲端時代的來臨,並行(concurrency)程式和處理巨量資料的需求日益增加,Functional Programming 開始逐漸嶄露頭角。在這場演講之中,我將介紹什麼是 Functional Programming 典範(paradigm)以及為什麼它開始變的重要,以 Scala, Erlang, Haskell, Java, Ruby, JavaScript 等程式語言為例,希望能夠讓您重新思考OO的本質,屆此拋磚引玉。

Speaker:

張文鈿,網路上的代號為ihower,軟體設計師和Ruby on Rails源碼貢獻者,目前是熱情豆行動樂活科技的技術長。曾擔任日本RubyKaigi 2011、中國RubyConf China 2010、台灣RubyConf Taiwan 2010和OSDC.TW歷屆講者。他也是Ruby Taiwan社群創辦人和RubyConf Taiwan大會的主辦人。