荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: CDMA (尘埃), 信区: InstallBBS
标  题: 神奇的阅读体验——读 BBS 代码小记 zz
发信站: 荔园晨风BBS站 (Sun Aug 17 15:27:23 2003), 转信


标  题: [转载] 神奇的阅读体验——读 BBS 代码小记
发信站: 一塌糊涂 BBS (Tue Aug  5 15:38:04 2003), 本站(ytht.net)



神奇的阅读体验
——读 BBS 代码小记

BBS 上了很久,对其结构却不甚了解,觉得云山雾罩,让人莫测高深。这几天
想帮忙改改 BBS 的 Web 界面,下载了两份代码一看,先是大分特,然后不信,
反复比较研究,最后不由得出这个令人沮丧的结论:至少国内的 BBS,程序全
都写得非常的糟糕,非常。

我和别人讨论 BBS 的问题早不止一次,总是觉得 BBS 应该是上上个世纪的东
西,全然不该出现在现在,其中讨论的焦点是:Telnet 还是 Web?

其实支持 telnet 的根本无法提出什么实质上的理由,无非是:

1. 早就在用,用惯了;
2. 习惯了字符的模式;
3. Web 方式慢。

第一种情况不必理它,显然这种人只会越来越少,直至消亡。第二种情况其实
站不住脚, 因为 BBS 不像 mud,它其实是在字符模式下模仿图形界面,包括
光标移动、前进后退,完完全全是在做一个类图形界面。 而在 BBS 使用中,
我们还可以看出这样的趋向:以模仿图形界面模仿得像为荣。这有什么意思呢?
你在服务器端做的再像还是不如客户端自己实现来得方便啊。

Web 方式慢,其实是一个错觉,因为 BBS 往往都是挂在教育网内, 大家在教
育网里互相造访,甚至只是访问本校的服务器,自然速度快得很;而像公众网
上普遍的论坛,却没有给每个用户都提供这么好的网络条件,不信你搬张椅子
坐到某个服务器前边去灌水,保证速度快得嗖嗖的。

想一想吧:一个最多只能支持十六色、纯文本的东西的表现力怎能和支持真彩
色、可以显示图片、音乐、动画……的浏览器相比?哪怕做得再出色的客户端,
它的可扩展性又怎能和已经发展得如此成熟的浏览器相比?

如此糟糕的东西,出现在现在还有偌大市场,原因其实不难分析:

1. BBS 的用户多为在校学生, 大家面对灌水的欲望没有选择,只能来这样的
   地方;
2. 历史原因。

我个人的看法是,BBS 到国内这么多年,只有两点改进是值得赞赏的:

1. 提供了使用 C 做 CGI 的 Web 界面;
2. 水木清华 BBS 开发了使用 PHP 为脚本的 Web 界面。

--

再谈代码,实际上代码的糟糕可以很容易找到一个原因,那就是始终没有一个
编程修养较高的开发者出现,那些牛逼烘烘的名字,诸如 KCN、lepton、zhch、
ylsdd、yuhuan...... 没有一个注意过代码的格式整洁,没有一个注意过输出
的内容规范,没有一个注意过写份详尽的文档......

以至于现在打开放有 ytht 或者 smth 代码的目录,唯见一堆堆的代码毫无组
织地横七竖八, README、Changelog、INSTALL 这样基本的文档长度为零或者
只有寥寥一两行。唯一可看的一点代码还是来自人家台湾的。

与之相反的,是他们的小肚鸡肠: 好像每个 BBS 都恨不得把自己的名字贴到
大街小巷,ytht 的代码到处都是 ytht,nju 的代码到处都是 nju、lily,sm
th 的代码到处都是 smth……难道你们连定义一个头文件,把 BBS_NAME 这个
常量放进去,用的时候每次都用这个常量这么简单的技巧都不会么?

令我万般佩服的是他们的勇气, 比如说连 ANSI 控制符里面的 ESC 他们都不
愿意定义一个,每次用到都是 \033[x;xxm,拜托,ansi.h 也不是谁的独创了,
你们从别的地方 copy 一个,不要每次都这么寒碜好不好?

很多东西,从简单的编程素养来说都应该明白,有些经常要改的内容应该放在
文本文件里,而不是直接写在代码中,有些经常要用到的常量应该定义在头文
件里,而不是每次写一遍……因为代码是需要灵活性的,是需要经常修改的,
都写在 C 程序里面,偌大一个 BBS,每改动一点小的地方都要重新编译一次,
这样的勇气,怎能不叫人佩服?!

连 PHP 这样的解释性脚本语言都知道要用模板引擎,然而我们的 BBS 开发者
愣是不知道要把输出和程序分开这点基本的道理,所有的 HTML 代码直接写在
C 程序里面,你们用的是 C 做 CGI 啊,是要编译的啊。

在 mud 开发中, 我们会为了一些细小的地方,哪怕是少了几个空格而细细调
试几十遍,可是我从未在 BBS 代码中见到这样的迹象。国内的 mud 开发群体,
我原以为这已经是一个够落后的群体了,没想到还有比我们更封闭、更落后、
更低层次、更缺乏修养、更冥顽不灵的!

在我初识 mud 的时候,对于那个领域,我可以找到令我非常 Envy 的代码,
非常敬佩的程序员,但在 BBS 这里,我找了很久,没找到。

--

结论是至少目前的 BBS 的代码水平都极差—— 没错,这有历史原因,我也乐
于相信现在的这些 BBS 是正在往好的方向发展, 可是实际的情形告诉我并非
如此,我看到的 BBS 正在快乐地生产一批又一批地垃圾代码,乐此不疲!

这篇文章写得激动了一些,看到的朋友不必介意,我谈的知识我的看法,如果
你觉得有足够的理由改变我的看法,望不吝赐教。

还是用 Knuth 的一句话来作结吧,大意如此:计算机的程序设计是一门艺术,
我有时想象我是在像写诗一样写程序,因为不仅今天有人要读它,明天有人要
读它,一个星期后有人要读它,一年后、十年后、百年后还有人要读它。

--
你觉得有足够的理由改变我的看法,望不吝赐教。

还是用 Knuth 的一句话来作结吧,大意如此:计算机的程序设计是一门艺术,
我有时想象我是在像写诗一样写程序,因为不仅今天有人要读它,明天有人要
读它,一个星期后有人要读它,一年后、十年后、百年后还有人要读它。

--
笨笨的笨笨次方
※ 来源:.一塌糊涂 BBS http://ytht.net [FROM: 211.66.100.83]


--
    荔园晨风2003       ________
   水 手 合 格 证     │//◢◣│
  姓名  CDMA 性别 男  │_[e]e]│
                      │C   > │
  单位 打工沥血系     │◥乀◤│
    灌 水 良          │▆◥▆│

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.28.163]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店