20120416

羽传说.Unix

羽传说.Unix

今何在先生在《羽传说》中说,"将来你们都死了,她还活着;鹤雪完了,她仍然
在;她不在了,她的名字仍然在;有她的名字,就有鹤雪。"

我想,他提到的那个奇异女子的名字,应该是叫做...Unix。

有位同学前几天来信,问我Ubuntu的学习入门捷径的参考书。我想了又想,最终
发现自己完全不能为力。推荐Linux类的快速入门,太难为我了。说实话,我从来
没有读过Linux使用的书,所以真是难以推荐。我在十多年前,读了一些Unix相关
的书,后来,一直只看手册,没看过书;Ubuntu安上就用了,没有学习过。

1998年开始在图书馆工作,单位派我跟刘青华大侠去北京学习solaris下的
tcp/ip协议,那是我第一次开始使用unix。在那之前,约1996年,李金环老师的
同学李(我忘记这位大侠的全名了,他去了哈尔滨),他当时读物理系的研究生,
向我推荐过unix。他说:现在很多人在学习。当年年轻,我不装作很不在乎的样
子,说novell netware的功能也非常强大啊。这些年以后,netware退出了江
湖,unix的名字也很少有人提到,不过天下武功出unix,它后代的名号却不绝于
耳。其中一个是linux。

还是去北京学tcp/ip那次,在中关材,刘大侠买了张slackware送我,那是我的第
一张linux光盘。后来芬兰的网管Micael问我,用Linux没问题吧。我说,约十年
前,我用slackware。他说:哈,第一代。

linux后来还有很多代,很多不同的发行版本。但是,对于固守于传统的那些人,它
们的不同小得多。还是芬兰,Lilius教授问我,俺们都用Linux,你没问题吧。
我说:我以命令行为主。他就不担心了。

命令行下的unix,那些小到微型的工具,却可以经脚本粘成方便的工具。这两天
又用了一下,过几天比赛结束了,再总结。主要是周期备份,周期上传用来发布
实时成绩,这样简单的功能。

为什么没有使用更新一些的技术,比如python,比如java?这个问题可以用前几
天与林同学的一段对话来回答。

林同学说:俄罗斯方块中有方块下落和旋转同时进行,这应该 (或者只能?)用
多线程来实现。

如果不用多线程就不能实现这一功能了么?多线程是实现这一功能的首先方案么?

首先,不用多线程仍然可以实现这一功能,即表面上看起来同时发生两件事。在
红白机时代,那么点内存和CPU的机器,根本就不应该有多线程支持,但是显然实
现了这样的功能。比如,有个方法非常朴素,就是在循环里先下落一行,然后旋
转。这两个动作不是同时发生的。

其次,如果朴素的传统的方案能非常有效地解决某个问题,那么,当面临这个问
题时,如果没有足够的优势,我们不应该采用更新的方案。一方面,传统的方案
得到过检验,而新方案没有;另一方案,学习成本。

可能有的同学会说,这太守旧了,新方案应该受到重视。是的,要不断尝试新的
东西,但不要在关键业务中,不要在真实的项目中测试尚不熟悉的技术。这跟药
物实验未完成前不能注射给病人是一个道理。

所以,那些稳定的技术格外宝贵。

很多技术在unix之后产生,然后衰败,而unix一直似乎就没有变过。想起有同学
提到,pc^2这东西不行啦,一个依据是它都N多年没更新了。这个判据不算好。不
再经常更新的东西有两种,一种是被淘汰将死了,还有一种是成熟了。

李风华同学质问过,如果unix-like的方案这么好,为什么后来没有人用了呢?当
年我说:我也不清楚。现在,我能回答出两个方面:1.其实当时也仍然有非常多
的人用这一方案,或者这一方案的变型,只是我了解得太少,还不知道;2.很多
新一代,比如我,只知道那些新的技术,相信课本上提到某某技术 (比如面向对
象) 很牛,所以适用于各个领域。

再回来看那么同学的诉求,这并不是孤例。我,你,很多人常常问出这样的问
题:怎么才能迅速地瘦下来/胖起来/提高学习成绩/健康/长肌肉/学会unix或
linux/学会编程……

诸如此类。很多更有经验的人会告诉我们,答案是:不能。你不能迅速地实现实
些目标,除非你做假。Lilius说过,为了显得有肌肉,他听说过有人植入硅胶的
假肌肉。那是我第一次听说男士这种整容的。

那些只能慢慢成长起来的东西,它们天生就不能迅速获得。就像你的想法,只有
自己的,才是自己的。灌输而来的,即使在体内,到底也只能是异物。

成长,缓慢而痛苦。但正如牙齿,唯有缓慢,才能生长为我们的一部分,而不是
植入;正如牙齿,只有那些稳定而坚固的材料,才适宜,而五彩闪光,也许只能
装饰。

"将来你们都死了,她还活着;鹤雪完了,她仍然在;她不在了,她的名字仍然
在;有她的名字,就有鹤雪。"

她的名字是Unix。

No comments: