现在的位置: 首页 > 综合 > 正文

我眼中的中国软件的昨天,今天和明天

2014年02月16日 ⁄ 综合 ⁄ 共 3049字 ⁄ 字号 评论关闭

软件就像是一个王国。刚开始的时候程序员是和机器打交道,抽象级别在机器级,谁对内存寻址,寄存器,中断理解的更为深刻,谁就是主宰,那个时候的程序员才叫程序员。是空间换时间,还是时间换空间是他们考虑的内容。那时候需要学的东西相对比较集中,而且都是机器本身的规律,不是人为规定的,我们的高手一点都不比美国人逊色。之后的不久,噩梦开始了。鉴于操作不便,需要一个东西来作为人与机器的接口,它作为一个翻译,接收人的命令,翻译成机器能够懂的指令,再把机器运行的结果,以人类易懂的形式反馈回来。操作系统出现了。就像一个王国一样,一个集中式的政权渐渐形成了,一切人的行动都必须在它的监控,规范之下。在此时,有一个层次的概念,操作系统之下的汇编命令作为一个低层次的集合为操作系统提供服务,操作系统提供的API为新生代的程序员提供服务。请注意,我们一开始的与美国人不相上下的程序员,对汇编和c熟悉的程序员的优势就消失了一部分,而必须转而学习操作系统的API。这样编写出来的程序才能运行在新的操作系统上,并进而享受操作系统所提供的便利服务。我们,开始以可见的方式落后了,噩梦就是这样开始的。需要考虑的问题就是,为何我们没有在这个时候产生出中国的操作系统。答案很简单,高手固然是高手,但是没有思想的支撑,我们没有美国人对计算机的深刻认知,在起步的时候就先败一仗我们输得不冤。
然后发生的一切大家应该都很熟悉了。王国的统治者对自己御下极为不满,他的大臣只能处理很少的工作,很多事情因为情报不足,数据无法收集而无法开展,一句话,生产力低下。无法满足上帝的要求,上帝用键盘敲一大串命令很不爽,不能一边打字一边听歌。这个时候的编程叫过程式编程。就是有一个通道,无穷无尽的数据从里面流过,数据可以变化,但是通道本身不会变。就像《无稽》上演的,穿鲜花盔甲的人将会杀死那个倒霉蛋,而不管是那个日本什么田还是张跑得快。这种过程式编程有一个缺点:修改程序很困难。就是一旦这个下水道建立之后,想改个方向,这加个洞,那拐个弯很难。牵一发则动全身。修改程序成为每一个经手者的梦魇。有一个比较形象的比喻,过程式编程是形而上学,她设想了一个完美的模型,这件事情就应该这样做,但是当现实改变时就比较尴尬了。当然了,过程式编程作出了巨大的功绩,而且能够解决很多问题,至今很多台湾程序员仍然钟爱她。
这个时候,就是dos622,win31,win95一路走高的时候。这个时候美国正是群雄逐鹿的时期,没有什么行业标准,工业标准,大家都认可的协议,通通没有。你出你的标准,我出我的,你发明你的协议,我发明我的。ISO 79年推出的七层网络协议,到了业界那就成了五层了。总之是到了最终谁的用户多,谁的经历住了考验,谁的就成为了最终的工业标准。最典型的就是以太网的普及。在那个时候,win95以其使用方便和普及盗版两个优点席卷了中国大地。我国此时也是人才辈出,高手云集,我一直以为这个时期是我国计算机时代中的英杰辈出,任意豪侠的三国时代,只可惜我没能赶上。在美国人逐鹿亚美力加,争夺计算机世界话语权的时候,我们的很多人在以找出windows的bug,破解别人的正版软件,写出一个搞怪的病毒为目标。有点像美国人是一个讲究实际的青年,我们像是找到一个好玩玩具的少年。
这个时候,我一直强调的积累就很明显的显示出来。美国人所建立的这个王国具备了基本的社会结构(操作系统),初步达成共识的法律体系(行业标准),社会各个组成部分相互交流,合作的流程和风俗习惯(工业协议)都渐渐形成。美国人不仅在程序员这个人力上有了积累,而且他们把自己的想法积累成了产品(这个王国)。我们这时候的成果是程序员们玩心渐收,开始认真的学习王国的语言,习惯,法律,游戏规则。像沙子一样多的项目被像蚂蚁一样拼命的大虾们用手一点一点的垒起来。我们的国民做的是电脑渐渐普及,很多人开始用电脑打游戏,有些人开始上网玩泥巴,电脑慢慢进入政府,公司,单位,渐渐成为必不可少的工具。总而言之,我们积累的是人才,大量的项目,和电脑知识的普及。
岁月如水,生命如歌。一转眼,时光就来到了充满活力的OO(Object Oriented面向对象)时代。OO就是允许程序员像小说家一样用优雅的语言书写一个个凄美的爱情故事。。。
在用过程式编程建造了无数软件系统之后,人们渐渐发现代码超过一定行数就不可能再增加了,因为这时每多增加一个变量,多增加一条语句,所需要考虑的问题将超出人脑的理解范围。这个时候,一句老话派上了用场:“分而治之”。一个庞大的软件系统被划分为若干子系统,每一个子系统都被赋予了为它所独有的责任,,并且所有的子系统间有它们各自能够理解的关系,就像两个老朋友私交甚笃一样,这样,实体与关系就出现了,母系统就是子系统的实体与关系的集合,它清楚地知道每一个子系统的责任,并且像慈祥的母亲看着自己的儿子们一样嬉戏打闹来替它完成它本身的工作。这个母系统清楚地知道它的每一个子系统都会作些什么,负责对其子系统发号施令,但并不清楚它们是怎么做的,毕竟,这是它们的责任。与此同时,每一个子系统也可以按此类推,把它的责任分配给比它更低层次的子系统,直到责任分配到不可再分的实体为止。每一个系统同时又是一个对象。对它的下层来讲它是系统,对它的上层来讲它是对象。这样建造的系统能够解决问题,但是非常僵硬,如果再划分责任时把易变的东西当作一个考虑因素加进去的话,这样的系统就能灵活地运转了。
当美国人发现OO可以使得在他们的高速公路(windows)上跑各种各样款式新颖,质优价廉,生产快速,修理方便的汽车的时候,他们又借此机会建立了一系列的汽车生产一条龙工厂,有生产发动机的,有生产轮胎的,为了方便我们这些小工,他们还生产了把这些零件装配起来的工具(比如c++ builder,vc,vb,delphi)以使我们可以创建各种稀奇古怪的车子。到了后来,美国的收费管理局的人发现,这些人造出了车子之后瞎开,很多数据没有掌握,很多事情没法开展,一句话,得加强管理。用美国人开的两家最大的汽车制造设备公司生产的汽车制造设备来生产汽车的小工们,生产出来的汽车必须得开在这个汽车制造设备公司修的路上,这家伙不仅造设备,还造路,简直就是霸王条款里的霸王龙,太欺负人了!于是,我们小工的话语权又被压缩了。
美国人的王国已经建立的愈加丰满,也愈加集权,于是一些美国的自由斗士们开始打造自己的国度,这些自由主义的精英们忙活了半天,理想中的国度也慢慢强大,充实起来,但是建设的速度开始放慢了,因为没有人愿意迁徙而来,竟然有人愿意生活在集权之下?自由主义者又开始纳闷了。。。
美国人,不仅积累了人才,也积累了他们的产品,这个日渐强盛的王国。我们,这些可怜的小工们,为什么不能积累一些自己的东西呢?

小工们的反击(黎明篇)
我们这些小工生活在这个别人的国度里,很多人已经来了十几年了。我们每天拼命工作,熬钟加点,有很多小工都疾病缠身,我们得到的是什么?只有一些奇形怪状的汽车而已,零件还是主人家给造的,不过,既然我们造了这么多年的汽车,经我们的手的零件不计其数,那么我们对这个是很熟悉的。最近那家最大的汽车制造设备公司为了反抗高速公路管理局对它的限制,希望能有更多的公司加入自己的行列来,宣布只要遵循他们制定的规范,任何人都可以修自己的路,建自己的零件生产厂。这是个好机会,我们只要加入了这个联盟,等慢慢强大起来,我们也可以加入联盟中规范的制定。再慢慢成立政党,参与法律的制定。。。

抱歉!评论已关闭.