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


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


我想了解互联网和网络的历史,这一说法很难理解。我在其他地方读过,互联网现在用于设计的目的与设计完全不同,也许是其中的因素。

是什么使互联网如此出色,以及为什么互联网如此业余(

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

*另请参见原始采访*。

评论

实际上,艾伦·凯(Alan Kay)在过去曾经回答过一个堆栈溢出问题...

stackoverflow.com/questions/357813/…

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

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

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

#1 楼

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


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


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

评论


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

– kalaracey
13 Mar 25 '13 at 0:04

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

– MSalters
13年3月25日在11:45

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

– Cormac Mulhall
13年11月21日在18:03

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

–伊文·普莱斯
2014-02-18 21:29

挂钩stackoverflow.com/q/6817093/632951

–起搏器
17年4月11日在8:49

#2 楼

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


HTML并未将结构/内容与表示分离开来,它需要一系列的修订...和额外的规范(CSS)...来对此进行纠正。 br /> HTTP 1.0的效率很低,对于获取的每个“文档”都需要一个新的TCP连接。
URL规范实际上是对某种本质上是临时的和不一致的规范进行反向工程的尝试。方案的定义领域仍然存在漏洞,URL的语法规则(例如,需要在何处转义的内容)是巴洛克式的。

如果涉及更多的“专业”标准,人们早些时候,可能还没有完成许多“失误步骤”。 (当然,我们永远不会知道。)

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

评论


还有一个问题是HTML被浏览器之战所污染

–棘轮怪胎
13年3月24日在3:23

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

– Greyfade
13年3月24日在4:51

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

– Stephen C
13年3月24日在7:56



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

– Greyfade
13年3月24日在8:25

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

–随机42
13年3月24日在9:03

#3 楼

这似乎是由于Alan Kay与设计Web的人们(主要是Tim Berners-Lee)之间在根本上的分歧,即这种系统的工作方式。

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

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

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

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

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

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

评论


+1。艾伦·凯(Alan Kay)说的许多话似乎使他成为那种不会理会理论与实践之间区别的老生常谈的人。多年来,他开发了许多伟大的理论,这些理论在实践中惨遭失败,并且由于理论上不那么漂亮的系统在实际情况下运作良好,因此在“思想市场”中完全被击败,而凯伊似乎从未真正理解过这一点。

–梅森·惠勒
2015年3月27日15:08



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

–安迪
15年3月28日在0:31

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

–安迪
15年3月28日在15:43



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

–雅克B
15年3月29日在9:07



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

–雅克B
17年4月1日在6:40



#4 楼

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

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

生物学家可能会告诉智能设计的拥护者,如果您只看其中的一个而又发现了天才的设计,那说明您就不够仔细了。

评论


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

– Rob K
15年3月27日在20:51

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

–克里斯·亚当斯(Chris Adams)
15年3月30日在18:05

#5 楼

嗯,是的,我已经多次问过艾伦(Alan)这个问题,例如当他在波茨坦(Potsdam)并在邮件列表中时。这是列表中最近的一句话,对我来说,它得到了很好的总结:


经过数十年的尝试添加越来越多的功能,并且
尚不匹配相对于在原始浏览器上运行的计算机上运行的软件而言,它们正在慢慢想到
应该安全地执行其他人编写的程序的想法。
在过去的几年中-借助Chrome浏览器中的Native Client-可以将真正快速的程序安全地下载为
可执行文件,而无需获得SysAdmin的许可。


我对他的各种答案的理解是,他认为网络浏览器不应显示(HTML)文档(可能是丰富的文档),而应仅运行程序。我个人认为他在这方面是错的,尽管我可以看到他来自哪里。我们已经在ActiveX,Java Applets,Flash和现在的“丰富” JavaScript应用程序中有了这种东西,并且体验通常不好,而且我个人认为,即使现在大多数JavaScript繁重的网站也都偏离了良好的HTML网站,而不是一站式地前进。在托勒密体系中,“正确”的答案是要弄清楚(富文本)是程序的特例,因此我们应该只发送程序。

但是,鉴于WWW的实际成功,我认为修改我们的理论而不是抨击WWW是明智之举,因为它有胆量不符合我们的理论。

评论


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

– kalaracey
2013年3月25日21:35



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

–mpw
13年3月26日在9:22



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

– kalaracey
13年3月26日在22:34

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

–安迪
15年3月28日在0:37

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

–起搏器
17年4月1日在4:18



#6 楼

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

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

与Internet和Web的另一个巨大区别是程序员如何看待它们;它们与Internet无关。程序员很少与Internet交互。从他的角度来看,在IP中您有地址,在TCP中您另外有一个端口,并且可以确保已发送软件包。就是这样...在Web上,程序员之间的互动更加激烈:HTTP方法,标头,HTML,URL等。通常情况下,事物的局限性要比几乎没有任何可能性的事物多得多。与此相关的是,我不想说互联网很简单:它的底下有点复杂,但是这种复杂性是由网络和电信工程师处理的,它是关于以有限的可能性配置某些东西的,而在Web中,您基本上没有限制

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

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

评论


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

–user4051
13年3月24日在10:42

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

–随机42
13年3月24日在12:31



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

–user4051
13 Mar 24 '13在15:13

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

–随机42
13年3月24日在17:03

不,他不是,他是数学家。尽管数十年来人们一直在寻找摆脱冯·诺依曼(或更恰当的说是图灵)机器约束的方法:cs.ucf.edu/~dcm/Teaching/COT4810-Fall%202012/Literature/…

–user4051
13年3月24日在20:00

#7 楼

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

#8 楼

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

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

#9 楼

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

评论


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

– kalaracey
2013年3月25日21:29



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

–佩尔迈斯特(Pellmeister)
17年2月3日,0:10

#10 楼

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

蒂姆·伯纳斯·李(Tim Berners-Lee)的网络存在一个根本问题,那就是它从未为开发人员构建过。 (这与Alan Kay的网站形成了鲜明的对比。)

Tim的网站是为非编码人员构建的,他们可以通过混入包含HT-markup-标记的期刊/文章的文件直接在网络上发布语言:类似于1980年代的WordPerfect和MS-Word,不同之处在于它们将使用“ ”而不是单击B图标,并将其另存为开放的“ .htm”格式,而不是专有的“”。 doc”格式。这里的发明是“ ”标签,它使这些静态期刊/文章可以全局链接。

就这样,这就是蒂姆的整个网络愿景:他的网站仅仅是全球性的相连的静态物品的高速公路。也许如果您有钱,可以购买Dreamweaver,Nexus,Publisher,Citydesk(?)等编辑器,通过单击B图标可以帮助您生成所有这些“ ”标签。

..而且我们看到了他的远见未如预期。确实,从一开始就存在强大的危险信号,世界需要的不仅仅是Tim的愿景所提供的:


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

这些天,我们还有更多危险信号,例如Chrome-OS-is-the -browser-is-the-OS(正是Alan Kay打算让浏览器成为btw)和WASM /浏览器扩展。


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

..这恰好是Tim的网络在2000年代的现状,但是如果我们拥有Alan的网络,它将在1990年代完成:我们将代替2000年前的世界拥有“ wordpress and friendster”同样,在20世纪40年代网络上开始使用它们时,也可以使用它们。

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

所以,这就是人们所说的蒂姆·伯纳斯·李(Tim Berners-Lee)通过将“破旧的静态网络”推向世界而杀死了真正的动态网络的意思。听说过“ Web 2.0”,“ Web 3.0”这两个术语吗?如果我们使用的是Alan的网络而不是Tim的网络,它们将被简单地称为“网络”。但是Tim的Web需要不断修订,因为它是如此静态。

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