早期Web历史-第2章:浏览器

2020-08-15 14:07:12

Tim Berners-Lee爵士与CERN的一个小团队一起创建了Web背后的技术-HTML、HTTP和将超文本与互联网混合在一起的URL。他说服组织中的高层将网络置于公共领域,这样任何人都可以使用它。

他当时正在开发一种新的世界级操作系统。他和其他几位同事正在从头开始建造它,以使其简单、干净和多才多艺。它需要跑到任何地方,而且速度必须很快。

里奇在贝尔实验室工作。作为创新的温床,贝尔在60年代和70年代雇佣了一些电信领域的最伟大的人才。在那里,里奇参与了一个名为Multics的分时项目。他对他认为的计算的未来充满了强烈的热情。尽管如此,经过多年的开发,几乎没有什么成果,贝尔最终放弃了这个项目。但里奇和他的几位同事拒绝让这个梦想溜走。他们将Multics转变为一种新的操作系统,具有足够的适应性和可扩展性,可以用于网络分时。他们叫它Unix。

里奇的问题出在Unix的软件上。更准确地说,他的问题出在软件运行的语言上。他一直在用汇编语言编写Unix的大部分代码,就像在计算最早的日子里那样,把纸带送入计算机。直接用汇编语言编程--正如一些程序员所说的“接近金属”--使得Unix的速度和内存效率都很高。另一方面,这个过程既费力又容易出错。

里奇的另一个选择是使用B,这是一种由他的同事肯·汤普森(Ken Thompson)开发的解释型编程语言。B的编码要简单得多,有几个步骤是从裸机中抽象出来的。然而,它缺乏里奇认为至关重要的功能。B也在自己设计的重压下苦不堪言;它执行缓慢,缺乏分时环境所需的弹性。

里奇的解决方案是两个都不选。相反,他创建了一种编译编程语言,具有许多与B相同的功能,但可以更多地访问汇编代码中所期望的东西。这种语言叫做C。

到Unix发布的时候,它已经完全用C语言重写了,并且编程语言捆绑在运行在它上面的每个操作系统中,事实证明,这是很多操作系统。随着越来越多的程序员尝试C语言,他们很快就适应了它。正如有些人可能会说的那样,它混合了用于创建可预测软件模式的完全抽象的函数和方法,以及在需要时直接深入到金属的能力。这不是规定,但也不会让你完全迷失方向。指挥英雄播客的主持人Saron Yitabrek将C描述为“一种几乎通用的编程工具;在个人计算机上的能力与在超级计算机上的能力一样。”

C语言被称为瑞士陆军语言。它几乎没有什么做不到的,也很少有没有做过的。计算机科学家比尔·戴利曾经说过:“它为几十年来编程的方式定下了基调。”这是真的。20世纪后半叶开发的许多编程范例都起源于C语言。编译器在Unix之外开发,可在所有操作系统上使用。罗布·派克(Rob Pike)是一名软件工程师,参与了Unix的开发,后来又参与了Go的开发,他有一个简单得多的表达方式。“C语言是一种荒岛语言。”

里奇有自己的一句话,他喜欢重复。“C语言既有汇编语言的所有优雅和强大功能,又有…的可读性和可维护性。汇编语言。“。C不一定是每个人都喜欢的编程语言,它有很多问题。(创建于21世纪初的C#是改进它的众多尝试之一。)。然而,随着它在类似Unix的操作系统(如X-Windows、Linux和MacOSX)中迅速普及,软件开发人员开始将其作为彼此交流的一种方式。它成了一种通用的语言。即使你不流利,你也可以在对话中听懂这种语言。如果您需要捆绑并共享一些代码,那么C语言是一个很好的方法。

1993年,让-弗朗索瓦·格罗夫(Jean-François Groff)和蒂姆·伯纳斯-李爵士(Sir Tim Berners-Lee)不得不发布包含所有网络技术的一揽子计划。它可以用来构建Web服务器或浏览器。他们称其为libwww,并将其发布到公共领域。它是用C语言写的。

想想你第一次浏览网页的情景。第一个网页。也许这是一次丰富的体验,充满了图片、精心的设计和你在其他地方找不到的内容。也许它是朴实无华、枯燥乏味、简明扼要的。不管那个页面是什么,我敢打赌它肯定有一些链接。当你点击那个链接的时候,就有了魔力。突然,一个新的页面出现在你的屏幕上。您现在正在网上冲浪。在那一刻,你明白了什么是网络。

蒂姆·伯纳斯-李爵士在1990年的最后几天完成了第一个网络浏览器WorldWideWeb的编写。它在他的下一台机器上运行,并且具有读写功能(后者可以用来管理网络上的主页)。NeXTcube不是你见过的最重的计算机,但它仍然是一台台式机。这并没有阻止伯纳斯-李把它从一个会议拖到另一个会议,这样他就可以把它插上电源,向人们展示网络。

他一次又一次地遇到同样的问题。现在,当考虑到在没有互联网的会议上单独在非广泛拥有的计算机(NEXT计算机系统)上演示在很少使用的操作系统(NEXT)上运行的全球联网超文本应用程序的难度时,这对我们来说似乎是显而易见的。问题出现在演示之后,不可避免的问题是:我如何开始使用它?如果你不能自己连接到网络,网络就缺乏它的魔力。孤立在一台计算机上是完全没有用的。要想让这个想法成功,伯纳斯-李需要让每个人都在网上冲浪。他不能很好地把他的电脑借给任何想用的人。

这就是尼古拉·佩罗的用武之地。佩罗是莱斯特理工学院的本科生,当时还是欧洲核子研究中心的实习生。她被分配到Berners-Lee和Calliau的团队,所以他们让她构建一个可以安装在任何地方的可互操作的浏览器。事实上,她没有编程背景(她在学习数学),而且她在CERN实习的一部分并不是很关心她。在几个月内,她学会了一点C编程,并构建了Line Mode浏览器。

现在使用线路模式浏览器,您可能会觉得自己像是20世纪80年代的黑客。它是专为从命令行终端运行而设计的纯文本浏览器。在大多数情况下,只是黑色背景上的纯白色文本,像素从一个边缘到另一个边缘溢出。在浏览器中键入网址将在屏幕上显示该网站的文本。键盘上的向上和向下箭头可用于导航。链接以编号列表的形式可见,用户可以通过输入正确的数字从一个站点跳转到另一个站点。

它被设计成那样是有原因的。它的简单性保证了互操作性。线路模式浏览器的独特之处在于,它是多年来唯一与平台无关的浏览器。它可以安装在任何地方,几乎安装在任何计算机或操作系统上。它让上网变得很容易,只要你知道一旦安装之后该怎么做。佩罗在发布线路模式浏览器几个月后离开了CERN。毕业后她回来了,并帮助建造了第一台Mac浏览器。

皮洛刚一离开,伯纳斯-李和凯略就与另一名新兵发生了争执。让-弗朗索瓦·格罗夫(Jean-François Groff)在CERN工作,办公室隔着一个办公室。格罗夫是一名多年的程序员,他撰写了由Brian Kernighan和该语言的创建者Dennis Ritchie共同撰写的官方C编程指南的法语翻译。当他有机会看到Berners-Lee在做什么时,他正在为UNIX系统开发一些物理软件。

并不是每个人都明白网络的目的是什么。如果没有我们今天的世界性图景,可能很难把握。格罗夫不是那些人中的一员。他渴望像网络一样的东西。他完全明白网络可能是什么。几乎一看到演示,他就要求调到团队。

他立刻注意到一个问题。他曾在一次采访中描述道:“所以这个行模式浏览器有点像鸡和蛋的问题,因为要使用它,你必须先下载软件,然后安装它,然后可能还要编译它。”他曾在一次采访中描述道,“因为要使用它,你必须首先下载软件,安装它,并可能进行编译。”您必须使用Web下载Web浏览器,但您需要Web浏览器才能使用Web。格罗夫找到了一个聪明的解决方案。他建立了一种简单的机制,允许用户远程登录到下一台服务器,并使用其内置的线路模式浏览器浏览网络。因此,世界上任何人都可以远程访问网络,甚至不需要安装浏览器。格罗夫希望,一旦他们能够四处看看,他们就会被吸引住。

但格罗夫想要更进一步。他来自UNIX系统和C编程。C是一种荒岛语言。它的多功能性使其作为一刀切的解决方案具有无可估量的价值。格罗夫希望网络成为一个荒岛平台。他想让它以他甚至还没有想象过的方式使用,研究机构的科学家甚至无法理解的方式。你可以用来做任何事的唯一媒介。要做到这一点,他需要让网络变得更加便携。

格罗夫与Berners-Lee一起工作,开始提取下一代浏览器的基本元素,并将它们移植到C编程语言。Groff选择C不仅是因为他熟悉它,还因为他知道大多数其他程序员也会熟悉它。在几个月内,他就构建了libwww包(它的正式名称将在几年后发布)。Libwww包是一组用于制作图形浏览器的通用组件。其中包括解析HTML、处理HTTP请求和呈现页面所需的代码。它还提供了创建浏览器UI的起点,以及嵌入浏览器历史记录和管理图形窗口的工具。

伯纳斯-李于1991年8月7日首次向公众公布了网络。他发布了一段简短的描述,并附上了一条简单的说明:

如果您对使用代码感兴趣,请邮寄给我。这是一个非常原型,但是可以通过匿名FTP从info.cern.ch获得。这是CERN的版权,但免费分发和使用通常不是问题。

如果你给蒂姆·伯纳斯-李爵士发电子邮件,他会把libwww包裹寄给你。

到1992年11月,该库已经完全成熟为一套可重用的工具。当欧洲核子研究中心第二年将网络放入公共领域时,它的条款包括libwww包。到1993年,任何有一点时间和C编译器的人都可以创建自己的浏览器。

在离开CERN成为首批网络顾问之一之前,格罗夫做了最后一件事。他创建了一个新的邮件列表,名为www-talk,供新一代浏览器开发人员畅谈业务。

1991年12月13日,在伯纳斯-李完成了有史以来第一个浏览器的收尾工作近一年后,袁卫发布到了www-talk邮件列表上。在与伯纳斯-李交谈后,他制作了一个名为ViolaWWW的浏览器。再过几个月,它将成为最受欢迎的早期浏览器。在他的帖子中间,魏随意地-如果不是那么真诚的话,他的语气会让人觉得是在吹嘘-提到浏览器的构建是一夜之间的黑客行为。

一晚的黑客行动。即使是伯纳斯-李或佩罗也不能做到这一点。魏继续发帖,并解释了他能够如此迅速地启动和运行的原因。但这种细微差别将被历史遗忘。程序员会记住的是,构建一个浏览器只需要一天的时间。它被“黑”在一起,运往世界各地,虽然有小毛病,但很有用。这句话将为至少未来十年的浏览器开发定下基调和步伐。它可以说是当今浏览器制造商的主导思想。

具有讽刺意味的是,事实恰恰相反。ViolaWWW是多年来工作的产物,只是在一个晚上就达到了顶峰。魏是一位伟大的软件程序员。但他甚至在晚上开始之前就已经准备好了所有他需要的东西。

佩佩-袁卫曾几次出现在网络历史的第一线。除了ViolaWWW浏览器,他还受雇于戴尔·多尔蒂(Dale Dougherty),为第一个商业网站GNN.com的早期版本工作。第一次讨论W3C的想法时,他正在一次网络先驱会议上。2012年,他被列入证人名单,在法庭上就停止在线隐私法(SOPA)的许多危险发表讲话。在网络的早期历史上,魏是一个持久的存在。

魏在90年代初是加州大学洛杉矶分校伯克利分校的一名学生。正是HyperCard引爆了他对超文本软件的迷恋。HyperCard是80年代末为Mac操作系统开发的应用程序。它允许用户创建一叠虚拟“卡片”,每张卡片上都有一些信息。然后,用户可以随心所欲地连接这些卡,并在他们的堆栈中快速排序、搜索和导航。人们用它来组织他们的食谱,替换他们的Rolodex,组织研究笔记,以及其他一百万件事情。HyperCard是一种吸引要求一定程度的数字细致度的人的软件,这种用户将他们的桌面文件夹组织成整齐的部分,并精确地标记他们的数据。这组核心的高级用户使用其内置脚本语言HyperScript操纵软件,将其扩展到新的高度。

魏在意识到需要使用HyperCard之前,刚刚瞥了一眼。但他使用的是X-Windows电脑,而HyperCard只能在Mac电脑上运行。魏并没有被吓倒。魏没有买一台Mac电脑(这是一个昂贵但合理的解决方案),而是开始编写自己的软件。他甚至更进一步。魏从创建他自己的编程语言开始。他称它为Viola,他用它建造的第一个东西是HyperCard的克隆。

魏认为HyperCard-以及他自己的超文本软件-的最大限制是它无法访问网络。如果数据被锁在一台计算机里,有什么用呢?当他得出这一结论时,已经接近1991年底,大约在那个时候,他看到有人提到了万维网(World Wide Web)。所以有一天晚上,他把Viola和libwww结合起来,做了一个网络浏览器。ViolaWWW正式发布。

ViolaWWW之所以建立得如此之快,是因为当魏发现这个Web项目时,大部分工作已经完成了。在这一点上,Viola编程语言已经酝酿了几年。它已经被构建为接受HyperCard克隆的超链接和超媒体。它被构建成可以扩展到其他可能的应用程序。一旦魏能够分析libwww,他就移植了他的软件来读取HTML,而HTML本身仍然是一种简单得离谱的语言。而那块冰山的最后一角,只花了他一个晚上。

ViolaWWW将是在早期网络上进行大量实验的网站。魏是第一个包含早期版本样式表的人。他增加了书签功能。该浏览器支持表单和嵌入式媒体。在一个有先见之明的举动中,魏还包括了可下载的小程序,允许在浏览器中运行相当高级的应用程序。这成为最终成为Java小程序的模板。

对于X-Windows用户来说,ViolaWWW是市场上最受欢迎的浏览器。直到下一件事出现。

在90年代初发布一款浏览器几乎是一种必经之路。下载libwww包并在文本编辑器中打开它是一个很有用的练习。Web并不是那么复杂:有一些代码用于呈现HTML,并处理来自Web服务器(或其他来源,如FTP或Gopher)的HTTP请求。Web的程序员使用浏览器项目作为熟悉其功能的一种方式。这有点像早期网络的“Hello World”。

1993年6月,全世界有130个网站。有十几种浏览器可供选择。这大约相当于每十个网站就有一个浏览器。

浏览器的快速发展是由网络社区创新的本质推动的。当伯纳斯-李将网络置于公共领域时,他所做的不仅仅是把它奉献给世界。他把开放作为其意识形态的核心。随着Netscape的发布,网络需要五年时间才能拥有它的第一个商业浏览器。在那之前,“浏览器制造商”是一小群程序员,他们在www-talk邮件列表上谈论事情,试图让网络浏览感觉像他们想要的那样具有革命性。

一些最早的项目将一种浏览器移植到另一种操作系统。偶尔,其中一家浏览器制造商会自发发布一些现在觉得必不可少的东西。浏览器窗口中的第一个PDF渲染是MIDAS浏览器的一部分。HTML表格在另一个名为Arena的地方被引入并进行了适当的布局。选项卡式浏览是InternetWorks的一个突出功能。所有这些功能都是在1995年前开发的。

大多数早期的浏览器已经变得默默无闻。但他们背后的人却并非如此,最早的浏览器制造商包括网景的未来员工、W3C和网络标准运动的成员、cookie(和闪烁标签)的发明者,以及早期网络上一些最重要的网站的创建者。

当然,当时没有人知道这一点。对于大多数创作者来说,这只是一个简单的练习,让他们可以把一些很酷的东西传递给他们的网友。

1993年12月8日,“纽约时报”向读者介绍了网络。第一行写道:“把它想象成一张通往信息时代埋藏的珍宝的地图。”但作者所指的“地图”--他将在文章前半部分描述的地图--并不是万维网,而是它最受欢迎的浏览器。一种名为“马赛克”的浏览器。

马赛克部分是由马克·安德森创作的。像许多早期的网络先驱一样,安德森是一个雄心勃勃的人。他被宏伟的想法和宏伟的声明所吸引(他曾经说过,软件将“吃掉世界”)。在大学里,他以比一般的软件工程师健谈得多而闻名,会聊起下一个Bing的事情。

安德森对技术有着长达数十年的热情。几年后,他用世界上第一款商用浏览器Netscape Navigator激发了公众的想象力。他会成为“时代”杂志的封面人物。他将成为硅谷的基石,多年来定义硅谷快速的“先出货,后思考”的风气,并在风险投资界寻找并夺取自己的财富。

但马赛克的故事并不是从硅谷监督科技未来(无论是好是坏)的压倒性传奇开始的。故事开始于一个焦躁不安的大学生。

蒂姆·伯纳斯-李爵士(Sir Tim Berners-Lee)在“纽约时报”(New York Times)发表这篇文章的前一年,发布了关于网络的最初声明,当时安德森还是伊利诺伊大学(University Of Illinois)的本科生。在他上学期间,他在大学附属的计算实验室工作,该实验室被称为国家超级计算应用中心(NCSA)。NCSA占据了与ARPA相似的领域,因为它们都是国家资助的项目,除了促进计算科学之外,没有明确的目标。如果你在NCSA工作,就有可能在不引起上级太多怀疑的情况下从一个项目转到另一个项目。

安德森应该是在研究可视化软件,他已经找到了一种主要在自动驾驶上运行的方法。闲暇时,安德森会在办公室里蹦蹦跳跳,倾听每个人对什么感兴趣。它是持续的

.