Tuesday, March 31, 2009

Haskell & Web Server & Symbolic System

最近用Haskell写一个简易的Web Server,取名HsServer,当一个模型十分清晰、确定,用函数式语言写起来十分方便。网络、线程基础基本搭好,但http协议交互处理等细节,感觉很麻烦。这部分代码还非常糟糕,也一直没想到怎么去实现为好。就一直搁置在那里,懒的折腾了。所以,这个web server还没啥实际用途,只实现了一个基础web server模型。对于实际应用代码,等有心情了,有想法了,再去写吧。

用Haskell写东西非常有意思。Function Language相比Imperative Language,我觉得特别适合解决已知、确定的问题域的问题,而且能做到尽可能地完美,效能高,以及健壮。

最近一段时间的haskell学习,总体让我对下面的东西有了些思考,思考是什么,很难用文字描述出来,就一次性列在这里,让它们在我的大脑里发生化学反应吧。

side-effect, state, concurrency/parallelism
lambda, pure functional programming (pure in, pure out)
type, class, variable, data, symbolic, behavior/action

在我学习了一些语言之后,包括自然语言汉语、英语,计算机语言之后。我越来越对语言着迷起来,更确却地说是类似符号性质的东西。

我有个习惯是,将我面临的事情非常3类,如下:

0. 面临一些我完全未知的事情

1. 提出一条标准

2. 分成两类

3. 总是没有办法将所有事情都认识清楚,余下的事情就是第3类。

如此,分3类恰好适合我的思考模式,也不会让事情超过我的handle能力。

那么,对于语言的要素,我将其非常分成以下三类:

1. symbolic data

2. grammar/syntax

3. context data

我将这三类归为Symbolic System。

在写各种各样的计算机代码的时候,就觉得,一切都在symbloic to, symbolic from。要拥有好的编程能力,就要能够将这些symbolic关系理清,并控制在可能的范围内,并最终在grammar/syntax的帮助下,将symbolic data应用到context上。