Zope Zope Zope


- Livid

Zope  的全称是  Z   O bject  P ublishing  E nvironment,我在 2002 年底的时候第一次看完了 The Zope Book 之后,幼小的心灵(当时 17 岁)立刻受到了无比巨大的震撼。于是当时做的第一件事情就是,希望用 ASP(我当时最熟悉的语言)写出一个一模一样的系统来。后来完成了第一个版本,我把这个系统取名叫做 Avalanche,这个名字大约是来自那个时候我曾经在日记本里写下了一连串的和恶劣天气有关的单词,frost,avalanche,hurricane,blizzard 等等。  

Avalanche 驱动了大概 3 个我在那个时候找到的商业网站设计的单子。用这 3 个网站我赚了一笔小钱,买了两台 Palm 的掌上电脑和一台 PS 2。  

而我的 Zope 情结没有就此打消,后来在 Avalanche 的基础上,用 Server Side COM Object 的方式又写了一个功能非常不完备的 .dll 版本,build 好之后的文件叫 nreout.dll,NREOut(Non-Restricted Expansion Out,非限定扩展)是那个时候我和另外两个朋友(inSeek & Victor)一起组建的工作室的名字。Avalanche 的第二个 .dll 版本是一个需要 SQL Server 才能运行的版本,我用 Avalanche 2 写了一个 WAP 社区,用来应付当时学校请求我去参加的一个全国青少年科技创新比赛,而可笑的是,那个时候我已经从学校退学 3 个月了。后来在比赛中拿了一等奖,高考可以加 10 分。毫无意义。  

荒唐的 2003 年上半年结束之后,我在 6 月的时候开始用 ColdFusion 再次试图去实现我心目中的那个“我的 Zope”,这个作品的名字叫做 Frost。Frost 大概驱动了 3 个网站,可笑的是,这 3 个网站全部是政府的内部门户网站。ColdFusion 配合 SQL Server 的运行方式对服务器的要求极高,所以这 3 个网站都是政府的“内部门户”,运行在他们内部的极为变态的塔式服务器上。  

2003 年后半年在的那家公司,给我留下了很多不愉快的回忆。不过其中开发 Frost 的回忆算是最愉快的。那也是我完成的最大规模的 ColdFusion 项目。  

2003 年底离开了那家专做政府业务的公司之后,在家闲了很长时间。当时想,以后再也不想做 IT 了,于是我去了一家珠宝公司。在珠宝公司的那些时间里,我开发了两个版本的用 PHP 写的 Frost 一个用 ColdFusion MX 写的 Frost-Lite。在其中的一个里我想实现像早期 DOS 程序 PCTools 那样的两栏式界面,十分开心。而另外在年底开发的那个,最后被命名为了 Project vik|engine,用来驱动了我现在的 Blog 的后台。vik|engine 这个名字来源于我在 2004 年底的时候,一个偶然的机会接触到的一套电视台用的实时视频系统 viz|engine,觉得这个名字很好看,于是我自己的最新的“Zope 情结”作品被命名为了 vik|engine,vik 这个词时常出现在冰岛的地名中,据说在冰岛有一座十分美的小镇就叫 vik。我真的很想去看看。大城市的飞速发展对于我来说已经越来越失去吸引力,我越来越向往那样的清爽和简单的田园牧歌式的生活,没有污染,没有汽车,没有大城市里肮脏恶心的一切。  

Project vik|engine 是一个非常非常有野心的项目,但是实现的部分只是计划的 10%,而且毕竟思考不成熟,这个项目从一开始就带有一些致命的缺陷。比如里面所有的数据不是 UTF-8 的,所用的语言是 PHP 4。所以到目前为止,Project vik|engine 连同前端的 Project vik|coon 只驱动了 2 个网站,一个是我的  livid.cn  另外一个是多年的好友 InSeek 的  inseek.cn 。Project vik|engine 的后台设计的风格严重受到  2Advanced  的影响,这是我和 InSeek 还有 Victor 一直都非常崇拜的一个设计工作室。  

“Zope 情结”在经过了 3 年的生长之后,生命力越来越旺盛。我在 2005 年 8 月的时候开始尝试用 Python + CherryPy 再度实现。不过这个代号叫做 Tokyo 的项目刚刚开始之后,我就去了 eBay Kijiji。  

于是在经过了相对成熟的考虑之后,在多年的“Zope 情结”的驱动下,又一个我认为是试图实现 Zope 的项目开始了。这个项目的名字叫做 Project Babel。和之前的所有项目非常不一样的是,如果说之前我侧重于实现的是类似像 Zope 那样的管理控制台,偏向后端,那么在 Project Babel 中,可以说直到现在,我都没有去写任何的后端的控制台,一直在开发的都是前面的直接展现给用户的应用。因为经过 3 年时间之后,我觉得似乎我自己整个人整个的思考方式已经彻底融化在了 Zope 中,于是与 Zope 类似的外型或许真的失去了其存在的必要性,我想要的是那种“在其中抓住了什么”的感觉。  

我抓住了吗?我不知道。  

而我现在已经很少上 Zope 的网站,如果不是最近偶然间回忆起来的话。而这么多年了,感觉 Zope 2 还是没有什么太大的改变。早在 2002 年的时候,我就已经感觉这个东西太过于科幻,而多年之后,这样的感觉也丝毫没有改变。于是,如果要让我向一个略懂技术的陌生人介绍什么是 Zope 的话?我得承认真的很难。  

一套用 Python 写成的 CMS?  

最能体现 OO 思想的开发框架?  

最耗费服务器资源的开发框架?这或许也是使得一个作品具有科幻气质的原因,我们在性能上的那些冥思苦想的夜晚,或许很容易就可以被摩尔定律所驱动的硬件的更新换代所抵消。  

将 URL 的作用发挥到了极致的系统?感觉 Google 的很多作品也在这一点上具有相同的气质。比如  Google Groups 。  

……  

真的真的可说的事情太多了。  

也有很多成熟应用是直接构建于 Zope 上的,比如  Plone 。不过我真的很不喜欢 Plone。我觉得 Plone 这个项目的气质就像是那些拼命想在 Linux 上实现 Windows XP 桌面主题的 WM。而我,则出于纯粹的个人口味原因不喜欢这样的东西。  

在席卷这个世界的 Web 2.0 大浪潮中,Zope 却始终没有得到太多的关注,其中也从来没有诞生出如 Rails 这样的 PR 明星,我总觉得这一切说到底还是气质所决定。就好像在  Java  大红大紫之时,也还是会有或许那么一小堆人觉得  Smalltalk  更令人感到兴奋。Web 2.0 浪潮中倍受关注的那些东西,毫无疑问都是被获利丰厚的商业集团所推动的。而接下来的这个恐怕只是我的一个无聊的猜想,就是,如果在很多年前 Zope 团队稍微考虑任何的商业目的的话,他们或许就不会将这个系统设计成这样了,他们甚至不会去开始这个项目。而事实上,他们真的在这个 GPL 项目上实现了一些非常非常令人兴奋的奇思妙想,以至于使得我这么多年还是念念不忘。 [  read more on livid.cn  ]
阅读原文返回首页