为什么艾伦·凯(Alan Kay)说:“互联网做得很好,但是网络是由业余爱好者提供的”?


86

好的,我这样解释。完整报价:

互联网做得如此之好,以至于大多数人将其视为像太平洋这样的自然资源,而不是人造的。上一次具有如此规模的技术如此无误的是什么时候?相比之下,网络是个玩笑。网络是由业余爱好者完成的。-艾伦·凯(Alan Kay)。

我正在尝试了解Internet和Web的历史,并且这种说法很难理解。我在其他地方读到过,互联网现在所使用的东西与设计时所用的东西截然不同,也许是其中的原因。

是什么使互联网如此出色,什么使网络如此业余?

(当然,艾伦·凯很容易犯错,这里没有人是艾伦·凯,所以我们无法确切知道他为什么这么说,但是有什么可能的解释?)

*另请参见原始采访 *。


24
实际上,艾伦·凯(Alan Kay)过去曾在某一时刻回答过堆栈溢出问题……
世界工程师


6
恕我直言,最大的错失机会不是严格执行HTML解析,例如SGML等前辈都具有严格的解析规则,但是早期的网络浏览器/ UA允许任何类型的HTML并尽力显示它们。这使得HTML入门很容易,但是却造成了很多年的问题。
jqa 2013年

9
恕我直言,根本的问题是Web的使用已远远超出了其最初的应用程序域(超文本)。
chmike

3
我非常尊重Alan Kay的工作,但如果他真的相信这一点,他会背道而驰。作为一个花费大量时间来实际实现低级网络解析器的人,我可以自信地说TCP / IP的API既业余又天真。当然,实现可变长度的选项扩展名(没人使用过),但是将地址空间固定为2字节长,因为这不是白痴。
Evan Plaice

Answers:


61

他实际上在访谈的第二页上阐述了这个话题。这不是他所哀叹的协议的技术缺陷,而是Web浏览器设计师的愿景。正如他所说:

您希望它成为一个小型操作系统,并且使用浏览器的人将其误认为是应用程序。

他提供了一些特定的示例,例如,编程语言的Wikipedia页面无法执行该语言的任何示例程序,并且缺少所见即所得的编辑功能,即使它早在网络存在之前就已在桌面应用程序中提供。23年后的今天,我们只是勉强开始解决原始Web浏览器设计决策所施加的限制。


因此,他希望浏览器成为一个微型操作系统,因为它比早期的HTML具有更好的交互性(我同意,现在变得越来越好)?
kalaracey

2
所见即所得与网络有什么关系?那纯粹是浏览器功能。现在,缺乏适当的编辑,这才是真正的Web故障。POST完全不能达到这个目的。
MSalters 2013年

9
“所见即所得与网络有什么关系?” 重点在于,网络的视野非常有限。静态文本文件被传递。没有互动。没有逻辑。没有代码。与计算机可以做什么以及凯在几年前已经看到的情况相比,这是一个非常有限的愿景。而且由于网络是如此静态,因此需要不断修订。在Kay的视野中,浏览器本身将附带其显示的网页。
Cormac Mulhall

2
在一个可行的理想世界中,像Java applet和Flash这样的框架试图使其成为现实。当您考虑安全性方面时,跨系统兼容性,扩展能力和工作需要维护请求之间的状态。难怪为什么要花这么长时间才能进步。一些非常聪明/有才华的人花了多年的时间来研究天真规范的基本缺陷/弱点。
Evan Plaice


79

从某种意义上说他是对的。HTML,HTTP和URL的原始(预规范)版本由业余爱好者(而非标准人员)设计的。并且各个设计的各个方面以及后续的(原始)规格(礼貌地说)不如预期的好。例如:

  • HTML并未将结构/内容与表示分离开来,它需要进行一系列的修订...和额外的规范(CSS)...来解决此问题。

  • HTTP 1.0效率很低,需要为获取的每个“文档”建立一个新的TCP连接。

  • URL规范实际上是对某种本质上即席且不一致的内容的规范进行反向工程的尝试。方案定义方面仍然存在漏洞,URL的语法规则(例如,需要在何处转义的内容)是巴洛克式的。

而且如果人们早些时候参与了更多的“专业”标准,那么许多“失误步骤” 可能就没有制定出来。(当然,我们永远不会知道。)

然而,尽管有这些事情,网络还是取得了巨大的成功。所有的功劳应该归功于实现这一目标的人们。无论他们当时是否是“业余爱好者”,现在都绝对不是业余爱好者。


29
还有一个问题是HTML被浏览器之战所污染
棘手怪胎

3
这是解释我对当前标准的不满的部分方式。我禁不住以为,这是我们需要结合经验,事后见识和当前技术能力的好处重新审视的事情。
greyfade13年

3
@greyfade-不幸的是,W3C在此目标上受到严重阻碍:1)数百万个旧式Web服务器安装,数十亿个旧式网页,以及2)对玩“商业优势”卡而不是解决问题更感兴趣的公司。
斯蒂芬·C

3
@StephenC:不过,我会大力支持建立新的更好标准的工作。
greyfade

1
@greyfade互联网也是如此。数百万具有IP / TCP堆栈和OSI模型的路由器,将不会采用更好的标准化模型。
m3th0dman

27

这似乎是由于Alan Kay与设计网络的人(主要是Tim Berners-Lee)之间在根本上的分歧,这种系统应该如何工作。

据凯说,理想的浏览器实际上应该是一个只有一个任务的微型操作系统:安全执行从互联网下载的代码。在Kays设计中,网络不是由页面组成,而是由黑盒子“对象”组成,该对象可以包含任何类型的代码(只要安全即可)。这就是为什么他说浏览器不应该具有功能。浏览器不需要说HTML解析器或渲染引擎,因为所有这些都应该由对象实现。这也是他似乎不喜欢标准的原因。如果内容不是由浏览器呈现而是由对象本身呈现,则不需要标准。

显然,这将比今天的网页强大得多,在当今的网页上,网页受到当前浏览器和网页标准的错误和限制的约束。

网络的发明者蒂姆·伯纳斯·李的哲学几乎完全相反。“ 最低功耗原理 ”文档概述了HTTP,HTML,URL等的设计原理。他指出了限制的好处。例如,使用明确指定的声明性语言(例如HTML)更易于分析,这使得像Google这样的搜索引擎成为可能。在Kays Web中的图灵完整黑匣子对象中实际上不可能建立索引。因此,对象上缺乏约束实际上使它们的用处大大减少。如果找不到强大的物体,它们有多有价值?如果没有标准的链接和URL概念,Google的网页排名算法将无法正常工作。对此书签也不会。

另一个问题是内容制作。现在我们有了各种工具,但是即使从一开始,任何业余爱好者都可以学习在记事本中编写html页面。这就是启动网络并使其像野火一样扩散的原因。考虑是否只有制作网页的唯一方法需要您开始编写自己的渲染引擎?进入的障碍将是巨大的。

Java applet和Silverlight在某种程度上类似于Kays的愿景。这两个系统都比Web更加灵活和强大(因为您可以在其中实现浏览器),但是会遇到上述问题。两种技术基本上都死于水中。

蒂姆·伯纳斯·李(Tim Berners-Lee)是一位计算机科学家,在发明网络之前,他曾在网络和信息系统方面拥有丰富的经验。凯(Kay)似乎不了解网络背后的想法,因此他认为设计师是不具备计算历史知识的业余爱好者。但是蒂姆·伯纳斯·李当然不是业余爱好者。


6
+1。艾伦·凯(Alan Kay)所说的很多话似乎使他成为那种不会理会理论与实践之间区别的老套人。多年来,他开发了许多伟大的理论,这些理论在实践中惨遭失败,并且由于理论上不那么漂亮的系统在实际情况下表现出色,因此在“思想市场”中的竞争远远超过了竞争,而Kay似乎从未真正理解这一点。
梅森惠勒

2
“明确指定的声明性语言,例如HTML”。真丰富
安迪

2
对于其设计目的,超文本,html很好。但是作为应用程序平台,它却惨遭失败。唯一的优势是无需部署且与平台无关。搜索并不是人们在计算机上唯一要做的事情。财务计划,游戏,社交互动等。谁在乎我是否无法搜索二十一点游戏?在Web应用程序和移动应用程序之间进行选择后,人们绝大多数选择了本机应用程序。这是有原因的。
安迪

2
毫无疑问,本机应用程序功能更强大,但这并不是真正的问题。根据Kay的说法,网络应由本机应用程序提供,而根本不需要HTML。这样的网络永远不会腾飞。
JacquesB 2015年

3
@Pacerier:几十年前,我们已经具备使用Java applet以及ActiveX,Silverlight等功能的能力。Web完全不会受到阻碍,因为它不会限制您使用HTML,它可以支持任何媒体格式,包括Java小程序之类的代码。只是由于我在答案中指出的原因,它并未被广泛使用。
JacquesB

22

我读这本书是因为Kay对较低级别的协议不熟悉,以为它们比较高级别的Web干净得多。他所说的“由专业人员设计”时代仍然存在安全性(欺骗仍然太容易),可靠性和性能方面的主要问题,这就是为什么仍需要进行新的工作来调整高速或高丢包率链路的一切原因。再回头一点,通过搜索人们必须分发的文本文件来解析主机名!

这两种系统都是复杂的异构系统,每当您要修复疣时,都将面临巨大的向后兼容性挑战。很容易发现问题,很难解决问题,而且由于一系列失败的竞争对手要么表明,如果不经历相同的学习曲线,就很难设计出等效的东西。

就像生物学家可能会告诉一个聪明的设计支持者一样,如果您只看其中一个而又发现了天才设计,那么您就不够仔细了。


2
.hosts文件在几乎所有平台上仍在使用。将恶意网站列入黑名单非常方便。
罗布·K

@RobK绝对–即使我们不使用tools.ietf.org/html/rfc953之类的东西来更新它,该历史也已深入人心。但是,这些天来,我想知道最常见的用法是否是恶意软件。
克里斯·亚当斯

10

嗯,是的,我已经多次问过艾伦这个问题,例如,当他在波茨坦和往来邮件清单上时。这是列表中的最新报价,对我来说,它的总结很不错:

在经过数十年的尝试添加越来越多的功能并且尚未与原始浏览器运行的机器上运行的软件相匹配之后,他们逐渐意识到应该安全地执行他人编写的程序。直到最近几年-借助Chrome中的Native Client-真正的快速程序可以安全地下载为可执行文件,而无需获得SysAdmin的许可。

我对他的各种答案的理解是,他认为网络浏览器不应显示(HTML)文档(可能会丰富),而应仅运行程序。我个人认为他在这方面是错的,尽管我可以看到他来自哪里。我们已经在ActiveX,Java Applets,Flash和现在的“丰富” JavaScript应用程序中有了这种东西,并且体验通常并不好,而且我个人认为,即使现在大多数JavaScript繁重的网站也都偏离了良好的HTML网站,而不是停止前进。

从理论上讲,这当然是有道理的:试图在文档描述语言基本上是向后添加交互性,并且类似于向托勒密体系中添加越来越多的表位,而“正确”的答案就是)文本是程序的特例,因此我们应该只发送程序。

但是,鉴于WWW的实际成功,我认为修改我们的理论而不是抨击WWW是明智之举是明智的选择。


1
我正致力于这一信念,请参阅我对原始问题的评论。我认为这是他要解决的问题,它是在浏览器中作为安全的代码执行本机(作为“操作系统”),而不是作为动态的版本(也许可以说当然是基本的静态文档)。
kalaracey

1
是的,但是我们已经有一个操作系统,并且我们已经可以从网络上下载程序以在我们的操作系统上运行,因此,如果我们想要该功能,那么我们已经拥有了!因此,恕我直言,浏览器正在满足用户的不同需求,作为应用交付平台的网络驱动似乎更多地是由供应商驱动的(酷炫技术+易于部署)。
mpw

3
“是的,但是我们已经有一个操作系统,我们已经可以从Web上下载程序以在我们的操作系统上运行...”但是信任是问题所在。您不会在一天之内将与您访问的网站数量相同数量的本机应用程序下载到您的计算机上,仅仅是因为您只下载了您信任的应用程序(应用程序的生产者)/验证(MD5 / SHA),而不会t从您不认识的人那里盲目下载数十(数百)个。OTOH,将浏览器作为操作系统,您可以两全其美!
kalaracey

@mpw不,浏览器无法实现。大量的“应用程序”之所以令人恐惧,是因为它们试图滥用浏览器而并非如此。它提供了最基本的控件,并且JavaScript用于尝试使任何东西都远程接近丰富的桌面控件集。推动kays愿景向前发展的是来自Microsoft,Apple和Google的应用程序商店。我怀疑随着应用程序的不断发展,普通用户会较少使用浏览器。网络将仍然存在,但将由应用程序在后台使用。
安迪

@mpw,我们应该有,但是现在还没有现在在我的浏览器中运行Eclipse的URI是什么?空无一人。这就是问题。这是艾伦(Alan)的愿景与蒂姆(Tim)的短视病毒理念之间的区别。出于Tim的la脚想法,您必须使用URI将Eclipse从浏览器下载到操作系统,然后在浏览器之外手动运行它。有了Alan的想法,您只需使用URI下载,缓存运行Eclipse。蒂姆没有发明了网络,他杀死与他的瘸腿的,破旧的“假冒”产品。...
Pacerier '17

4

您不能真正说Internet或Web是业余爱好者或专业人士发明的,因为这些领域绝对是新领域。所有人在发明互联网协议之前都是业余爱好者,因此从互联网的发明者的角度来看,他们也是业余爱好者。

如果我们真的要判断的话,互联网毕竟不是那么好:需要IPv6。而且不仅是地址空间;IPv6具有一个新的标头,其中包含更少且不同的字段。

与Internet和Web的另一个大区别是程序员如何看待它们。程序员很少与Internet交互。从他的角度来看,在IP中您有地址,在TCP中您另外有一个端口,并且可以确保已发送软件包。就是这样...在Web上,程序员之间的交互更加激烈:HTTP方法,标头,HTML,URL等。与几乎没有任何可能性的事物相比,看到具有更多可能性的事物的极限是正常的。与此无关,我不想说互联网很简单:

关于这两种技术的伟大之处,Internet非常受欢迎,因为它是一种非常可扩展的技术,并且分层的想法非常好。基本上,在较低的级别上,您可以使用所需的任何技术(WLAN,以太网,令牌环等),并将IP作为标准的中间协议,在该协议上放置TCP和UDP,而在其之上,您可以基本添加所需的应用程序协议。

Web的强大与Internet的强大紧密相关,因为Web高度依赖Internet,并在其下面具有TCP / IP堆栈。但是我想说互联网也依赖于网络。Internet在Web诞生之前已有20年了,并且是一种匿名,但在Web诞生20年之后,Internet随处可见,这一切都要归功于Web。


10
这不是真的。Vinton Cerf在研究生院学习了数据分组网络,而Bob Kahn在ARPA的信息处理技术办公室工作,因此他们在开发TCP / IP时都是专业人士。另一方面,伯纳斯·李(Berners-Lee)从事粒子物理学。

2
@GrahamLee Berners-Lee不是物理学家;根据欧洲核子研究组织(CERN)1980年的维基百科,他“提出了一个基于超文本概念的项目,以促进研究人员之间的共享和更新信息。” 从1981年到1984年,“正在进行的是一个实时远程过程调用,这使他有了计算机网络方面的经验。” 因此,到1989-1990年,他还不是业余爱好者...两个引号都有参考文献en.wikipedia.org/wiki/Tim_Berners-Lee
m3th0dman

那么答案就有更多问题:被“所有人都是业余爱好者”所涵盖的每个人都变成了业余:-(

@GrahamLee如果我们想成为专制主义者;我倾向于相信冯·诺依曼(von Neumann)在撰写本文时确实不是计算机体系结构领域的专家-zh.wikipedia.org/wiki/First_Draft_of_a_Report_on_the_EDVAC-基本上,它甚至还没有完成,并且代表了大多数软件的蓝图。今天使用的计算机体系结构。那时,冯·诺依曼(von Neumann)忙于曼哈顿项目,在此之前还没有诸如计算机体系结构之类的东西(或者我们可以去巴贝奇(Babbage)说同样的话)。
m3th0dman

1
不,他不是,他是数学家。虽然人们一直在寻找出路,冯·诺依曼的限制(或者更恰当,图灵)机了几十年:cs.ucf.edu/~dcm/Teaching/COT4810-Fall%202012/Literature/...

4

我认为他指的是不太模糊的东西-TBL对60年代以来进行的超文本工作一无所知,因此这项工作并没有为Web的设计提供信息。他经常说计算机是一种流行文化,从业者不了解他们的历史,并不断地“重塑the胎”。


4

互联网作为Baran,Pouzin和同时代人发现的数据包交换概念的原型,表现非常出色。与流行观点相反,这并不意味着IPv4就是完美的协议体系结构,也不意味着IPv6是可行的方式。深入参与ARPANET和IP开发的John Day在他的2008年《网络架构模式》一书中对此进行了解释。

至于网络,用理查德·加布里埃尔(Richard Gabriel)的话说,“更糟的是更好”。蒂姆·伯纳斯·李(Tim Berners-Lee)的帐户“ Weaving The Web ”很不错。Gillies&Cailliau的《网络是如何诞生的》虽然密度较大,可读性较差,但具有很多细节,并且与当时个人计算中的其他事件有一些引人入胜的联系。我认为Kay不能给予足够的信誉。


1

我不知道,非网络互联网的某些部分有一些可怕的疣。电子邮件早于网络出现,并且是Internet的一部分,并且该标准是非常开放的,并且需要很多黑客来解决(但不能解决)垃圾邮件问题。


3
我认为,在互联网上,他指的是tcp / ip,在网络上,他指的是http / html / javascript,而不是电子邮件。他继续谈论浏览器。
kalaracey

电子邮件与互联网完全按照网络的方式联系互联网,因此,将网络单独命名却将电子邮件作为“互联网的一部分”(正如您清楚地指出的那样)完全是不准确的。此外,凯伊说,就像对待太平洋一样,我们将网视为理所当然。您开始在响应中谈论电子邮件这一事实证明了这一点。:-)
The Pellmeister '17

0

“业余”不是指缺乏编程技能,而是缺乏想象力。

蒂姆·伯纳斯·李(Tim Berners-Lee)的网络的根本问题在于,它从来没有为开发人员构建。(这与Alan Kay的网站形成鲜明对比。)

蒂姆的网络是为非编码人员构建的,他们可以通过混入包含HT-markup语言的期刊/文章的文件直接在网络上发布:就像1980年代的WordPerfect和MS-Word,不同的是它们会使用“ <b> < / b> “,而不是单击B图标,并将其另存为开放的” .htm “格式,而不是专有的” .doc “格式。这里的发明是“ <a> ”标签,其允许这些静态期刊/文章被全局地互连。

就是这样,这就是Tim的整个Web愿景:他的Web 只是互连的静态文章的全球高速公路。也许如果您有钱,可以购买Dreamweaver,Nexus,Publisher,Citydesk()等编辑器,这将有助于您通过单击图标来生成所有这些<b> </ b>标签B

..我们看到了他的远见未如预期。确实,从一开始就存在强大的危险信号,那就是世界比蒂姆的愿景所提供的渴望更多:

  • 危险信号1:“智能CGI”(PHP)的迅速崛起。

  • 危险信号2:“智能HTML”(Javascript)的迅速崛起。

如今,我们有更多的危险信号,例如Chrome-OS-正在浏览器-OS-的兴起正是 Alan Kay希望浏览器成为btw)和WASM /浏览器扩展。


与Tim的网站相反,Alan Kay的网站是为程序员构建的动态网站:互连的动态程序的全球高速公路。需要“页面”的非编码人员只需使用网络上的程序即可发布一个页面。(而且程序本身显然是由程序员而不是HTML编写者编写的。)

..这恰好是Tim的网络在2000年代的现状,但是如果我们拥有Alan的网络,它将在1990年代完成:我们将取代世界仅在2000年代拥有“ wordpress和friendster”的功能在1990年代网络启动时让它们正确无误。

类似地,在2040年代,我们将不再使用Steam,Visual Studio,Warcraft,VM Ware之类的程序,而是在2010年代将它们安装在网络上。(数十年的延迟是由于已经为非浏览器操作系统构建了这些程序,因此降低了在基于浏览器的操作系统上重建它们的经济动机。 -OS。)

所以,是当他们说蒂姆·伯纳斯-李已经通过推他的“寒酸静态网页”登上世界杀死了真正的动态网页是什么人的意思。听说过术语“ Web 2.0”,“ Web 3.0”吗?如果我们使用的是Alan的网络而不是Tim的网络,它们将被简单地称为“网络”。但是Tim的网站需要不断修订,因为它是如此静态

显然,所有希望都不会丢失,因为可以按照浏览器供应商定义的方式重塑Web。但是关键是,它们现在在网络上“发明”的所有这些“出血边缘”东西都是很久以前就已经发明的东西。我们今天已经拥有了一切,而不是明天。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.