主题:【原创】Web的诞生与Tim Berners-Lee -- 西瓜大丸子汤
什么样的发明是人类最伟大的发明?那些能对存在的三种基本形式:物质、能量和信息的传输和转化做可扩展到为每一个人服务的发明。
对于信息,这意味着那些使信息可以更有效的转化和传输的方法:语言、图画、文字、纸、印刷术、电报、电话、电视、…、Internet、Web。
想改变人类历史吗?做一件能促进人与人的信息交换的事吧!
Tim Berners-Lee (TBL)就做了一件这样的事。他发明了Web。
TBL对我是一个极其神秘的人物,直到我有机会去近距离和他工作了一段时间。
原来TBL也是个人。
TBL骑自行车上下班。
TBL的房子不是什么豪宅。
TBL业余时间喜欢刻木头。
TBL会给本科生辅导编程。
但是这个人依然是一个奇怪的生物。
他说话非常非常快。语言这样一种低带宽信道对这个头脑是非常不合适的。
他的脑子里的东西,往往要别人很多年以后才能充分理解。比如他的那些Design Issues。
其中最典型的莫过于Semantic Web(语义网)。在最早的一些Design issues(1998年)里面,就做了语义网的规划。这些规划能完全实现,估计要到2030年。
但是Web本身,从1991年,只用了2、3年时间就从概念原型转变为商业的成功和国家级的发展战略。
为什么是这样?
理解Web,理解TBL,温故而知新,也许能让我们更好地发展未来。
下一篇:读Web的计划书 http://www.w3.org/History/19921103-hypertext/hypertext/WWW/TheProject.html
10年前学习网络课程,实现HTTP协议,写了一个简单的服务器和客户端。写完了觉得,原来Web浏览器并不神秘,就是是在TCP上加了一层协议,传些文件、文本。
当时并不知道HTTP是TBL在1991年发明的。那一年,TBL还发明了HTML和URL
关于这些最初的发明的技术说明,还有世界上第一个Web网站的存档,可以看这里:
http://www.w3.org/History/19921103-hypertext/hypertext/WWW/TheProject.html
在这之前2年,TBL就开始了WWW项目的策划。根据TBLs说的历史,1989年3月,他写了第一个项目计划书。1990年11月,项目开始实现。各个模块陆续实现,到1991年8月完成,公开宣布。
注:Web到底算是什么时候发明的,各有争议,有的说是1989-03-13(第一次项目计划书的时间),有的说是1990-11-12(项目书被接受,开始实现的时间),还有的说是1991-08-06(第一个服务器上线的时间)
WWW项目计划书要点如下
两阶段:第一阶段是实现只读浏览器,第二阶段是实现可读可写的浏览器。每个阶段3个月。
人力:4个
投资:大约80k(单位不详,大概是瑞士法郎)
可以看出,这个计划十分的超前。其第二部分,差不多就是Wiki的概念,到了10年以后才开始流行起来。我甚至不清楚这第二部分到底最后实现了没有。不过仅仅是第一阶段,回头来看,就值得所有的投资了。
需要指出的是,TBL并不是唯一实现系统的软件工程师。其他几个人是Robert Cailliau, Nicola Pellow,Bernd Pollermann,后来陆续有十多个人加入。
我们不需要神话TBL,没有一团队的支持,他可能需要更长的时间才能实现他的理想。他为这个理想已经思考了很多年(见他的《Weaving The Web》),在36岁这年,终于争取到了资源来实现这个理想。
36岁,已经不能算年轻了。从1976年本科毕业开始,TBL在各个公司和研究机构做码工,已经15年了。这15年TBL的工作,现在几乎没有人记得。在1991年,也什么没有人知道TBL。
和TBL同岁的Bill Gates,1976年创立了微软,到1991年,已经是亿万富翁。
更巧合的,Steve Jobs也和上两位同岁,也同在1976年开始了自己的事业——苹果电脑。1991年的时候,Jobs虽然已经被踢出苹果,依然是亿万富翁。TBL用来写第一个网站的电脑,NeXT,就是Jobs那时候的产品。
1991年TBL依然只是一个普通的程序员,要为了八万块的投资写报告,还等上一年多。即使WWW计划很成功,他依然很挣扎。单位(CERN)觉得他不务正业,他几乎不能再得到支持。
那时候大概没有人意识到,TBL在做一件人类历史上最伟大的发明之一。我甚至怀疑他自己是不是意识到?
而做了这个发明,也只是万里长征走完了一小步。前面的问题,更为严重。
TBL按自己的理想走了下去,走了和上面两位完全不同的道路。千千万万人类的生活,在不久的将来即将开始被影响。这种影响,不会象某些产品,时髦几年后就消失在历史的垃圾堆里。
待续
(3)为什么在1991年
很少有一种情况,一个重大的技术,是一个天才先知先觉独立发明的。更多的是在某个时候,几年甚至几个月前后,有若干个人想到这个想法。其中有一个,具有最好的执行力或者干脆就是幸运,最先把它实现。
水到渠成的时候,没有张三来发明,也会有李四来发明。
而在这之前,即使有最聪明的头脑和权势,也不见得能够做到。
比如同在1991年,Gopher协议在明尼苏达大学被发明和实现出来。稍早一点,WAIS (Wide Area Information Servers) 协议被几家商业公司制定出来,并在1991年开源。
而较早的尝试,如Vannevar Bush(曼哈顿计划协调人)的“memex”(1945), Ted Nelson(超文本发明人)的 Project Xanadu(1965), and Douglas Engelbart(也是鼠标发明人)的oN-Line System (NLS,1968),都没有获得成功。【这几个人都在TBL自己的书里提到】
这些人的资历、背景和可控制的资源,都远远超过1991年的TBL,为什么不能成功?
如果我们考虑到Internet的前身,ARPANET在1969年才开始运行,显然早先的计划实现起来有物理的、经济的限制。比如Memex,等于是基于微胶片的Web,即使实现了,代价大概也是极其高昂的。
从1969年到1991年,22年间,为什么没有人发明Web或者相似的东西?这期间,发生了哪些事件?简单列一下
1971年,电子邮件,FTP
1974年,TCP协议
1978年,IP协议;
1979年,UUCP协议(还记得Usenet?)
1984年,CERN(TBL的雇主)开始建立自己的CERNET
1980年代中期,ARPANET 逐渐进入民用
1980年代晚期,TCP/IP逐步取代其他协议,成为Internet的共同基础
1989年,BGP协议,Internet的路由成为一个分布式系统。
1989年,CERNET终于通过TCP/IP和外部网络接通(同一年,TBL提出Web计划)
1990年,ARPANET停止,被民用的NSFNET 取代(后者在1995年被停止,Internet全面完成民用化)
1990年,Dynatext,SGML发布工具出现。SGML影响了HTML的发明。
Web是Internet上的一个应用,它显然不能脱离Internet本身的存在而存在。直到80年代晚期Internet才真正成为全球性的通讯平台。也就是在这样的平台上,人们可以自由地发布、链接、浏览信息才成为一种可能和必须。
在这之前,Email, FTP, Usenet都不需要信息的网状结构,因为他们总是面向一个较少的群体,相对干净的信息。比如Email,如果要引用另一个Email,附在文后,加上”>”引用符号就好了。很多引用呢?“>>”或者“>>>”就够用了。通过上下文,读者可以知道谁在引用谁。这个法子笨但是很管用,到现在大家还在用。
当Internet变成一个全球性的存在,需要任何人都可以看任何人的信息,需要任何人自由地组织他/她能看到的信息,上面的应用就都不合适了。
于是几乎同时,Gopher, WAIS和Web(HTML, HTTP, URL)被发明出来。就算没有这几个项目,也必然有其他努力的来填补这个空白。
我们事后诸葛亮地来看,TBL几乎在第一时间抓住了这个机遇。
其实其他几个团队也一样——他们的资源甚至更多。
但是为什么是Web最终取得了胜利?
(待续)
本节还参考了TBL在2004年历史回顾的演示:http://www.w3.org/2004/Talks/w3c10-HowItAllStarted/?toc=true
(4)加上人后的可扩展性
在接着回顾Web诞生之初的一些选择之前,我想简单说几句可扩展性。
在过去十多年里,我接触过人工智能的几个不相干的领域:神经网络,机器学习,形式逻辑。许多模型,理论上计算能力是没有问题的。比如神经网络,可以等价为图灵机,理论上可以解决图灵机可以解决的一切问题。逻辑,比如一阶逻辑或者描述逻辑,表达力非常的强,不乏专用领域成功应用的实例。
问题在于,当数据极大增加后,系统还是否工作?这个可扩展性,当然是常识,每个设计算法的人都会想到。对神经网络,机器学习,或者形式逻辑,都有无数的工作来研究如何提高它们的计算的可扩展性。
可是,到目前为止,成功都是有限的。机器学习的进步最大,特别是基于统计方法的这一块,广泛用到工业中。神经网络现在还在低潮中趴着。逻辑——除了数据库(其实SQL是一种逻辑)——始终无法大规模的应用;语义网(Semantic Web,同由TBL倡导)是逻辑界试图走向全球规模应用迄今的最后一战,前仆后继十余年,至今成绩极为有限。
在经历、目睹很多失败后,我渐渐觉得,所谓的可扩展性,不应该仅仅指计算的可扩展性,而应该是包括人在内的整个系统的可扩展性。数据的产生,知识的建模,到最后信息的消费,都要有人的参与。人的懒惰、人的心理、人的经济头脑,都会深刻影响一个系统能不能走出实验室。
当然,这种认识,回来看,常识得不能再常识了。可是一代一代的学者、工程师,总是很容易对一个技术倾倒、兴奋,但是劳心劳神做出来的美妙系统,没有人愿意用,或者用户一多就不灵了。这种经验,好像失恋的经验,似乎每个人都非亲身经历一下,才知道是怎么回事。
在TBL发明Web之前,别人也有类似的想法和实践。上节提到的oN-Line System (NLS,1968),就是一个杰出的代表。NLS是一个里程碑性质的伟大工程:超文本,鼠标,光栅显示器,窗口系统,演示程序,视频会议…都在NLS里第一次被应用。但是它最后没用走出实验室。它要求用户在做任何一点有用的事情之前,学习很多东西,服从一些严格的规定,记忆一堆奇怪的代号。“正常”人类不会心甘情愿地做这样的事。
Web的竞争者Gopher,要求所有的文档有一个严格的菜单结构,然后用户可以一级一级的走下去。对于熟悉文件系统的人,这是一个很自然的组织模式。可是,自己看自己的分类和看别人的分类是两回事,理解别人的分类从而找到自己需要的资源也不总是一件容易的事。更何况,分类本身就是一个头疼的工作。不信的话问问你的朋友,看多少人去分类自己的download文件夹。
TBL在设计Web的时候,在CERN这个极度多元化、极度分散的机构里,格外注意了“不给人找麻烦”这个样一个信条。我觉得这可能是技术因素之外,Web成功的最重要的一个因素。
TBL自己说(Weaving the Web, p19-p20):
“Having seen prior systems show down, I knew the key would be to emphasize that it would let each person retain his own organizational style and software on his computer.” (目睹了以前一些系统被干掉的事,我认识到问题的关键将是强调允许每个人对自己机器上的组织方式和软件各行其是)
“We can create a common base for communication while allowing each system to maintain its individuality” (我们可以建立一个通信的共同基础,同时又允许每个系统保持个性)
不要试图强加给用户一种你认为最好的信息组织方式——别人完全可能有不同的想法。允许人自由地以他自己高兴的方式发布信息,允许他们自己互联。没人需要先请示任何人来加一个链接。这就够了,奇迹会在这互联的过程中产生。
什么是知识?知识就是互联!
Web的可扩展性,依赖于它相对自由的组织方式、低门槛(按1991年的标准)的信息发布方式、和分布式的结构。这是技术和人的认知能力、人的社会性的恰当妥协,保证了它可以最终扩展为每一个人都可以用的技术。
这种自由的精神,被TBL一直贯彻了下去。比如对语义网,他也说:Raw Data Now!(TED2009年视;频:http://www.ted.com/talks/tim_berners_lee_on_the_next_web.html):以你自己最舒服的方式发布你的数据,互联会慢慢产生,从而导致各种美妙的事情。
那怎么保证自由的发布和自由的互联呢?Web依赖三个重要的发明:URI(统一资源标识符),HTML(超文本描述语言)和HTTP(超文本传输协议)
TED视频,Ian Ritchie提到他是怎么错过TBL把他的超文本软件变成一个Web浏览器的建议的,并回顾了Memex等一些最终导致Web的发明的系统。很有意思。TBL的书里也提到了这事。
这句话是文眼。一个与系统无关的因素,其实就是人的因素,在人机互动的年代却经常为人自己忽略,哈哈,这里面很有玄机啊,归根结底是人的因素。
那么在系统摆脱了人的参与,是机器与机器之间的互联呢,是机器与机器之间产生的人所没意识到的共享需要呢,一个不需要人的主动布置与规范的互联系统,“正常”人的惰性,动力等拖后腿的因素排除之后,会是怎样的呢?
在web发明的二十年之后,我们看到的是一个因web而产生的互联网应用的后web时代的开始。一方面人机结合的更紧密,以twitter,instgram等为代表的更适合人发布组织信息的机器外界面,另一方面是系统本身的更少的“人”的因素,比如物联网,智能电网等都颇具雏形,但这一切都依赖于“互联”,都开始于二十年前web的发明。
semantic web的缓慢发展窃以为还是在那个“web”上,事实上web这个技术现在已经成为信息分享的限制了,最具代表性的就是GWF与最近美国关闭盗版网站的SOPA风波,这些做法在这个未来走向愈加明显的时代,都属于对自身发展自残的典型。