上回说道, www兴盛起来之后, 浏览器成为了内容创造者最大的头痛. 当时的浏览器大多用自己开发的没有统一标准的代码解释器. 如此导致了在IE上工作的代码在Netscape上就是废物, 反过来亦然. 尽管普通用户并不很在乎用什么浏览器–只要能上网就行, 但如此却苦了网页设计师. 各家浏览器除了对HTML的解释大致相同之外, CSS的支持程度和DOM结构都是截然不同的. 尤其是DOM结构这一项, 稍微有些前端编程认识的人都知道统一的DOM是多么的重要. 没有标准化的DOM, 就意味着很多前端功能代码要针对不同的浏览器单独来写. 所以一段用JavaScript改变hover图片的代码就要为几种不同的浏览器写上几遍, 然后通过浏览器嗅探来决定向客户端喂匹配的代码. 更糟糕的是, 有些浏览器, 出于种种原因, 根本就不公开自己的身份, 例如历史上的Opera, 开发商为了能让它访问IE独家网站, 故意将user agent标示设置为IE(尽管这个可以由用户在设置里面更改, 但我仍然认为这是极为脑残的行为). 而随着时间的推移, 又有很多浏览器开发商发现自己以前做的不是很对, 于是推出的新版本来修正以前的错误. 本来这是个好事, 然而修复问题往往导致丢失向后兼容的结果. 于是网页设计师不仅要去嗅探何种浏览器, 还有嗅探哪个版本的浏览器–让事情变得爆炸性的复杂. (中国由于特殊国情, IE在这一时期一直是市场上主流甚至唯一的浏览器, 所以国内的网页设计从业者可能没有如此痛苦的经历)
然后是Netscape的崩溃.
作为市场主角之一的Netscape的陨落, 标志着IE成为几乎统一的标准. 自然,这个标准是基于微软的垄断地位, 而不是最优选择. 但无论如何, 在之后相当一段时间内, 你开发的网站只要能在IE上看就足够了. 甚至连很多苹果用户也不得不使用IE for Mac来获得与PC用户统一的浏览体验.
尽管微软是个软件巨头, 它在互联网上的转身却过于缓慢. 微软在网络市场上的失利也非一天两天. 另一边随着互联网成长起来的, 却是Google这种公司. 当年被预装IE的Win98搞的大败亏输的Netscape也死灰复燃, 在Google等一拨推崇市场自由化和标准开放化的巨头公司的支持下推出了Firefox. 那边厢苹果公司也不甘为微软之奴, 搞出了基于Webkit的Safari.
虽然乍看起来新浏览器纷纷涌现仿佛是昨日重现, 但这次所有微软以外的玩家都祭出一样法宝:公开化标准. Safari, Firefox都广泛支持W3C的HTML, [...]
1956年,通用汽车的研究开发部门为了能够更好发挥斥巨资购入的IBM 704大型主机的工作效能,组织人马编写了GM-NAA I/O——一个管理、排列计算任务的系统。以今天的标准看,这个小软件大概还不如洗衣机内嵌的系统复杂。它所执行的最主要的任务是在一个计算任务完成后,自动开始下一个计算任务。尽管内容简单名字冗长,GM-NAA I/O仍被业界普遍认同为世界上第一个在实用环境下产生的操作系统(OS)。
在计算机诞生的最初几十年里,OS通常由购买计算机的客户根据自己的需要来编写。渐渐的随着商用计算机的普及,硬件提供商也开始根据主要客户群的需要来开发一些比较通用的操作平台。当然,这些OS的差别很大,很多时候即使是同一家公司开发的几个操作系统之间也完全没有任何兼容性。通常已有的软件在新购入的机器上都需要重新调试,编译,测试才能够保证正确运行。
显然,这不是办法。
70年代末80年代初,随着半导体技术的进步和制造成本的进一步降低,计算机不仅在以大中型企业为主的商业市场呈高速成长势态,也开始慢慢进入小型企业和个人应用的领域。而此时操作系统强烈的排他性成为了低成本使用计算机的主要障碍——尽管硬件价格已经可以被不少个人和商业团体接受,但软件的开发、维护费用却居高不下——80年代毕竟不比今天,IT从业者比全国搞绿化活动种的树都多,那时候连州立大学都少有CS专业(喂,别想歪了,CS这里是指Computer Science,不是什么老得要命的反恐精英),真正能正二八经的搞软硬系统整合的人大概也就是MIT,斯坦福这种地方出来的精英人士,通常一年就那么有数的几十个,还没上大一呢就已经被用人公司提前几年订走了。
另外一方面,计算机技术的进步,也让这个只懂0和1的家伙慢慢摆脱纯计算任务进而进行一些更实际化的应用。例如财务报表,文字处理等等。这时候排他性操作系统的缺点更是让人无法忍受——用户根本没有办法创造每台计算机都能使用的文档。
标准化成为计算机应用的首要任务。
故事接下来的部分大概每个从业者都略知一二了。梦想成为未来标准的OS如雨后春笋,遍地开花,市场从此进入了操作系统争抢份额的战国时代,以IBM为引领的基于BIOS的IBM-PC OS到后来的非硬件厂商以及软硬厂商联手合作的PC/MS/DR-DOS,长期处于落水狗状况的OS/2,还有一支独秀,拥有不少“第一位”头衔的Mac OS群雄混战,后起之秀,挟IBM以令诸侯的Windows等等。最终经过时间的检验和用户的选择,如今的OS平台已经算得上是相当的统一,此举不但大大降低了软件开发商的开发、维护成本,也让用户在某个单一平台上有更丰富的选择。
————————————————隔开故事的分割线——————————————–
50年代是个魔术般的时代。人们一方面享受着两次世界大战后来之不易的和平,一方面却又害怕这和平逝去的太快。尽管苏联和美国是战时的盟友,然而纳粹被消灭的一刹那,双方都急不可待的去寻找下一个可能的敌人,意识形态的对立让两个大国很容易变成了互相心目中必须要消灭的对象。广岛上空的蘑菇云告诉红场的政治局精英们:下一场战争将会结束的很快;尤里.加加林的太空旅行也让国会山意识到:他妈的,早知道该在柏林多抢些纳粹火箭专家——现在苏维埃的红色核弹可能比我们的长程战略轰炸机飞得快得多。
美国人是一个天生没有太多安全感的民族。他们不像布尔什维克那样坚信马克思主义,他们也不像中国人那样敢于依靠人民运动。美国人从来都是也仍然是指望自己的技术进步能够为国家的生存打下坚定的基石。
在这个对动荡的未来充满敬畏和恐惧的时代,不论是克里姆林宫里的斯大林以及他亲爱的助手尼基塔.谢尔盖耶维奇.赫鲁晓夫同志,还是国会山上宣誓的哈里.杜鲁门总统,甚或是丛林中的胡志明,高山上的金日成,以及我们万寿无疆的领头人(怕被长城挡,只好用代称),都在考虑同一个问题:如果我们被攻击了,我们该如何有效的组织反击?
进入60年代后,冷战变得越来越热. 1962年的古巴导弹危机是人类历史上最接近世界末日的时刻. 尽管危机没有运酿成全面核战, 但美国人和苏联人都深信迟早有一天蘑菇云会在自己的土地上冲天而起. 为了在最坏的情况下仍能组织有效的联系和反击, 美国国防部开始着手改善自己的通讯网络, 从传统的circuit switching技术(以老式电话网络系统为代表)转向Packet switching系统(以计算机网络,TCP/IP协议为代表). 这样即使骨干通讯线路被摧毁, 通讯系统仍然能够在幸存的线路上运行. ARPANET就是这种概念下的产物.
将近半个世纪一晃而过, 核战争并没有发生. ARPANET在这段时间内渐渐的转变成科研,教育设施. 随着可以联入网络的计算机和联入费用的进一步降低, 越来越多的人开始使用这个前军用设施. Internet的雏形诞生, 但此时的互联网,仍然是以通讯为主要用途.
然后是Mosaic.
当大公司们意识到Internet可能使下一个原子弹般的新经济时, 大家伙们不可避免的一拥而上, 纷纷推出自己的, 浏览www的技术产品. 然而出于某些原因(我想大概是为了蚕食尽可能多的市场份额呢), 每个人都想对相同的Internet文档做出自己的解释. 特别是当网络内容丰富化之后, 如何在不同的浏览器上获得近似一致结果成为每个网络内容提供者最头痛的问题.
随便翻开一本关于CSS或JavaScript的书, 你都可以在第一章读到对这段黑暗历史的描绘.
(未完待续)