2009年9月18日星期五

青蛙王子的魔咒

记得从有了QQ开始,我一直用的是青蛙头像。最近突然发现这是个魔咒。历数我所偶遇的程序bug,真的是太多了。神奇的是我往往会在学某个软件的第一时间碰到bug。难道我真的是青蛙王子?最近我用scilab,结果不到两天就发现了scilab 的画图输出成矢量图的时候有bug. 然后我用octave, 按照tutorial尝试的第一条命令是 clear all,结果octave立刻crash了。看来我还真是注定吃苍蝇的角色啊。真是郁闷。

WINTEL的阳谋

为什么每年我们都不得不花钱更新我们的计算机硬件?但又为什么已经付了这么多钱,我们还总觉得我们的计算机越来越慢?最近,我开始想明白这个道理了。从经济学的角度,我们实际是中了微软和Intel的阳谋。
看一下现状,微软带领的window阵营一直引领着软件开发质量和性能越来越差,而软件体积越来越庞大的的趋势。从Windows操作系统平台,到Office 系统, 软件的体积都在以成倍的速度增长。到目前,我们的系统安装已经无法用CD介质来满足。新出的Vista和我们当前在使用的Office 2003或者2007,都不得不使用DVD光盘来安装。或者在我们所买的品牌机上,需要永久占据5G到10G的硬盘空间。
但是,我们所得到的软件质量是不是更高了?不是的,随着软件体积的庞大,以及微软为了更快的引入新的功能保持对软件业的领导地位,软件质量和性能远远不如以前。原来只需要几十兆的软件系统,现状以及增长到几个G的大小。然而这并不是因为带来了相同数量级增长的新的功能,而是为了加快开发进度抢占市场而忽视了性能和稳定性。包括微软在内,大多数的软件现状都是补丁盖补丁。如果你买一个软件,一年以内不打个3个补丁的情况是不可能的。看一下ActiveX和Dcom的设计,整体构架都低效率和不稳定。以一个日常的例子而言,如果用Word打开一个文档出现错误,所有打开文档的独立Word窗口都会崩溃。为什么? 因为所有的word都基于同一个DCOM组件。再一个例子就是DirectShow视频播放框架。无论在开发中如何小心翼翼,都没法避免最终程序的莫名其妙崩溃。原因也是一样,用组件搭成的软件,就好像用积木搭成的皇宫一样,随便抽掉一块就会倒。而这些组件的质量因为要求快速开发而大多低劣。即便是微软自己开发的组件,都无法保证在自己的操作系统上可靠运行。
那么当下这种情况的获益人是谁? 微软和Intel。 软件做的越大运行越慢,就需要更高的硬件配置来运行,Intel就财源不断。软件只求开发速度不求性能和质量,又帮助微软遥遥领先其他对手,必死对手。此外质量的低劣又为微软卖完win32卖98,买了98卖2000,卖了2000卖xp提高了源源不断的财源。每次升级,付出的至少是50%的支出(软件升级安装),或者100%以上的支出(购买新版本软件)。那么从98到vista,我们的确获得了5.06倍(以升级安装50%的额外支出为例)或者16倍(以全新安装为例)的功能和性能的提升?肯定没有,而且我们还得在硬件投资上加倍投资。
我所说的这些,并不是说技术的发展不重要。人类的确需要更高的科技来提升生活质量和环境质量。比如减少计算机的功耗,提高计算性能,降低计算机的寿命和报废后的环境影响,这些都是需要科技的进步。 但是更应该提高软件的性能和质量。WinTel的这种把戏,只是在以科技进步为借口,在讹诈计算机的消费者,实质是制造一个消费的巨大黑洞。