好像在 2007 年初那会我对 blog 刚刚开始感兴趣的时候,就听说过 Blosxom 了。它是个非常简洁的 blog 发布软件。其核心程序只有一个 cgi 文件,里面是 Perl 代码。它的功能也十分简陋,连最基本的评论功能都没有。而这些功能都使通过插件来完成的,页面的样式通过 flavours 来安装。我曾经在自己的共享空间里实验过,比较麻烦,不符合我的要求,于是我就没有再管它。
后来我在 blog 上写过一篇文章,提到过我安装 Blosxom 的事,之后 Zoom Quiet 给我留言,说他在用 PyBlosxom,是用 Python 语言写的 Blosxom,而且他的 blog 就是用 PyBlosxom 支持的。我去了他的 blog看了一下,功能上确实和 Blosxom 很像,但他的 flavour 设计的非常漂亮,不过也没有安装评论等插件。当时我对 Python 还没有什么兴趣,因此就没有再关注 PyBlosxom 程序。
今天我在配置 MoinMoin 的时候,想过用 MoinMoin 等 Python 程序来管理我的整个网站,blog 方面我自然就想起了 PyBlosxom。我去了它的网页上看了看,它的首页跟 Blosxom 没什么两样,不过它的文档让我很惊讶。这些文档完全已经 Python 化了,和其它 Python 工具的文档风格,以及 Python 自身的文档风格,完全统一了起来。我在实验用的主机上尝试安装了一下,同时参考了一下文档,结果 PyBlosxom 给我感觉变化很大,安装了程序文件之后会用一个脚本文件自动创建 instance,跟 MoinMoin 非常类似,帮你建立好了插件和 flavours 的目录,而配置的内容也被分离到单独的文件中去。不光是原始的 CGI,PyBlosxom 也支持了静态输出、WSGI 等发布运行模式了。同时,URL 等设计,都可以看出和原始的 Blosxom 有非常明显的不同,相当不错。
我在想,也许这就是社区的力量之一吧。与此相比,Blosxom 的网页在这几年中的基本上没有什么变化,还是原先那样的简陋,而它的文档系统也比较原始,更别提它的程序本身的安装和配置还是跟过去一样的原始与晦涩了。是什么原因造成了两者之间那么大的差异呢?我觉得关键就是社区。目前 Perl 社区虽然早已发展成熟,但不可避免的是社区本身的年龄过大,已经有了苍老的态势了。虽然 CPAN 为 Perler 们津津乐道,但要是想要自动安装一个包,它的命令行远不如 RubyGems 和 Python 的 setup-tools 方便。关于 Perl 的语法,我觉得也在一定程度上阻碍了社区化的进程,主要是它在维护方面不如 Python 等新兴语言程序来的方便。
总之,作为一个商业语言,有一个强健的公司对它维护才是正道,这时 VC 笑到最后的关键;而作为一个开源的语言,有一个稳定、有活力的社区才是关键。