OCaml和Web

优势与不足

和别的编程语言一样,OCaml可以被用于CGI程序。这样做的好处和一般的Ocaml编程一样。不足在于Ocaml并没有多少CGI库可用。我所想到的一个CGI库在OCamlNet library项目中。

OCaml作为脚本语言

把OCaml设定为Apache的脚本语言很简单。交互环境(top-level)可以被定制为一个辅助程序进而作为一个脚本解释器。

细节如下:

使用Camlp4写一个预处理程序并建立一个脚本引擎(通过定制的top-level)以使OCaml像真的脚本语言(如PHP,但是更强大)那样工作并不太难。代码可以被特殊标记包裹起来(比如""),任何不在标记里的保持不变直接显示。有人愿接这任务么?:)

回答:这早已存在,叫做Camlmix :-) 最新版本(1.3)允许用户把那样的程序编译成即时方式(模块被执行的时候文本同时输出),或者把程序嵌入到render函数以让别的模块调用。

CGI编程

对更持久的深度网络内容或那些要求高执行速度的操作(比如复杂计算),脚本也许不是可行的方案。编译脚本到二进制格式(特别是本地代码)能显著提升速度。 Ocamlscript允许我们书写能被按需透明编译的脚本,所以你无需做什么就能享受高速度。Ocamlscript version 2全面支持ocamlfind (Findlib)安装的包,所以大量流行的库可以被方便地载入。

Web服务器和框架

PPS Computer Science Laboratory创建了Ocsigen项目,一个web服务器以及开发框架。功能包括把函数对应到一个url地址,使用模式匹配处理GET参数,还有很多不错的特性。