作者reader (讀者)
看板PLT
標題Re: [閒聊] 邏輯式語言與函數式語言
時間Mon Feb 26 04:56:18 2007
※ 引述《godfat (godfat 真常)》之銘言:
: 我有個疑問,purely functional 在處理很多事情上會顯得很麻煩,
: 例如 I/O, 或其他本身就具有各種 state 的問題…。如此一來,
: purely functional 是否變得有些過分執著…?
不能這樣講,學術就是這麼一回事。
經由這些年來的研究發展,現在它的實用性顯然比過去強得太多,許多觀念和
技術也影響到其他程式語言的設計。
而且我們可以考慮一種狀況:將系統拆解為許多的一次性輸入輸出,例如 web
系統就是這樣的設計,網頁的生成就很適合純函數式語言來做,現在只是沒有
相對完善的系統建構方法論,並不是它不可行。
我自己也有設計程式語言,就發現到,多重典範的整合,未必就要採用同一套
語法應用在所有範圍上,若將適合不同典範的地方各自實作再做整合,可能是
更有效益的做法。
像 C++ 就主要是由 template, class 和 C 三個成份組合的,其中 template
部分就很有 functional 的味道,其實也可以改成 pure functional 的前置
處理系統,形成 functional, object-oriented, imperative 各自在不同的
範圍內運作的形態,有可能會比現在的 C++ 更為強大。
: Alice 在 Standard ML 上加了 lazy evaluation,
: 用起來是否會比 Haskell 要來得方便許多…?
: 不過他的實作有點讓我乍摸之下搞不太清楚要怎麼用,
: 不知道有沒有實用的可能。
: http://en.wikipedia.org/wiki/Alice_%28programming_language%29
以實用而言,多數程式語言都可以用來做一點什麼事情。
但若是指流行的話,除了要有好的語言特性及語法做為基礎,相關的軟體開發
工具的好壞、價格、易取得性、效能、支援、宣傳... 等等因素,才是主要的
關鍵,所以是很難講的。
若純以程式語言的設計而論,要真正進入軟體產業當中,我還是要再重申那個
很現實的條件:與主流程式語言 (特別是 C) 的語法相近。
只有這個條件能帶來很大的好處,其餘差異都不大了。
整個軟體產業,以程式語言而論,只剩下三種語法系統仍然保有生命力: C,
Pascal, BASIC. 其中 C 的語法系統佔據絕對優勢,無論是 C, C++, C#, PHP,
Java, JavaScript, Perl... 哪一個不是出現沒多久就大受歡迎,相比其他的
程式語言往往耗上十年仍沒沒無聞,只有少數死忠使用者,何止天差地遠。
語法愈怪就愈沒有機會,而 ML 系統的語法,只是能保證不會被學術界忽視,
離產業界還是很遠的。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.222.173.26
1F:推 godfat:卡位真是太可怕了 @@ 02/26 14:26