[application] 函数式编程成为主流的基础

helloworld 2008-01-14

函数式编程关注有点久了,可以说MS的介入使函数式编程逐渐摘掉学院派的帽子,开始为广大程序员所接受。然而其成为主流的基础是什么呢,说说别人的观点吧。

1,并发——硬件的发展方向决定,CPU转向多核而非进一步提高主频

2,语法——在表达上更贴近问题本身(数学)

 

然而我最初接触的ERLang,吸引我的最关键点却是鲁棒性。软件是个大的概念,可以说任何硬件都是包裹着不同外衣的软件。但这里把软件狭义化,局限于传统计算机上运行的软件,在这个前提下软件是命令式语言和标记语言的天下,对很多人来说是否函数式编程真的没有太大的关系。一般的企业应用中不外乎UI+业务逻辑+工作流。函数式语言仅仅是提高了一些性能和效率。

 

而在硬件上,我们不得不用最基础的C来做。

 

那么为什么不在硬件编程上应用可靠性好,表达计算能力突出的函数式语言呢。我搞不清楚,至少在一般的硬件开发中不知如何着手。

我想可能是CPU性能的问题。

 

Lich_Ray 2008-01-15
  1. 让 M$ 那个怎么看怎么很繁琐的 F# 去死,越快越好。居然还需要 .Net 环境,我连试都没试。一个模仿 ML 的东西,性能上比不过 ML 家族里任何一个,还是闪开吧。
  2. Erlang 的鲁棒性?如果语法设计的足够好,比如像 Haskell 那样,想写错都难,就谈不上这个了。不过 Erlang 的在并发编程方面的语法设计的确实不错,虽然这语言本身未必会成为 FP 中的 Java,但这一套关键字恐怕会成为并发编程中的 C 语法。
  3. 硬件。构架上,FP 对于冯若依曼体系的计算机来说是固有的低效语言。史上确实存在过 lambda 计算机,但就现状来看发展无望。CPU 速度不是问题,用 Lisp 都能写操作系统,ML 的后继者们应该更没问题。主要问题还是内存管理。FP 的效率是用大得惊人的内存换来的,而内存分配本身必须用命名试语言来控制,可悲,这样一来,两年之内想进入嵌入式领域也无望了。
cookoo 2008-01-23
呵呵,MSR可不止有F#,还是Haskell/GHC的head quarter呢。F#比Ocaml干净不少,增强也很多。

FP在数据/语法分析上比较舒服,语法的抽象表达能力非常强。

硬件设计和验证有用fp的例子。
bigpanda 2008-01-29
cookoo 写道
呵呵,MSR可不止有F#,还是Haskell/GHC的head quarter呢。F#比Ocaml干净不少,增强也很多。

FP在数据/语法分析上比较舒服,语法的抽象表达能力非常强。

硬件设计和验证有用fp的例子。


有篇论文,叫 A Principled Approach to Operating System Construction in Haskell,作者是 Thomas Hallgren, Mark P Jones, Rebekah Leslie, Andrew Tolmach.

最低层的和硬件打交道的地方都设计成Monad,很有意思啊。
Global site tag (gtag.js) - Google Analytics