我正在阅读 O'Reilly 的Learning XML Book 并阅读了以下内容
HTML 在某些方面倒退了一步。为了实现真正有用所需的简单性,必须牺牲一些通用编码原则。...回到通用编码的理想,一些人试图将 SGML 用于 web ...这被证明太难了。
这让我想起了 StackOverflow 播客,他们在其中讨论了适用于浏览器的格式不佳的 HTML。
我的问题是,如果标准像现在开发人员希望的那样严格,互联网还会成功吗?
我正在阅读 O'Reilly 的Learning XML Book 并阅读了以下内容
HTML 在某些方面倒退了一步。为了实现真正有用所需的简单性,必须牺牲一些通用编码原则。...回到通用编码的理想,一些人试图将 SGML 用于 web ...这被证明太难了。
这让我想起了 StackOverflow 播客,他们在其中讨论了适用于浏览器的格式不佳的 HTML。
我的问题是,如果标准像现在开发人员希望的那样严格,互联网还会成功吗?
缺乏标准的执行丝毫没有影响网络的采用。如果有的话,它帮助了它。该网络最初是为科学家(通常对编程没有耐心)设计的,用于发布研究结果。所以自由解析器允许他们不关心标记——足够好就足够好了。
如果它没有在科学家中取得成功,它就永远不会迁移到学术界的其他地方,也不会从那里迁移到更广阔的世界,今天它仍然是一项学术活动。
但是现在它已经在更广阔的世界中出现了,我们应该取缔吗?我认为任何人都没有这样做的动机。浏览器制造商想要市场份额,但他们不会因为对正确显示的页面感到不满而获得市场份额。内容网站想要接触到人们,而仅仅通过正确地出现在 Opera 中并不能做到这一点。像现在这样的开发者大厅是不够的。
此外,前端开发人员(与视觉设计师相比)可以收取大量费用的原因之一是因为他们了解各种浏览器的来龙去脉。如果只有一种正确的方法,那么它可以自动完成,并且不再需要那些人 - 好吧,无论如何,不需要程序员的薪水。
今天网络上的大多数歧义和不一致不是来自未封闭的标签之类的东西——而是来自一个浏览器到另一个浏览器的 CSS 语义不一致。即使所有的网页都是奇迹般地格式良好的 XML,它也无济于事。
html 只是“标记”文本而不是一种具有运算符、循环、函数和其他常见编程语言元素的语言,这一事实使得它可以被松散地解释。
人们可以将这种松散的解释关联为使标记语言更易于访问和使用,从而允许更多“未受过教育”的人访问该语言。
我个人的看法是,这与互联网的成功关系不大。相反,让互联网“成功”的是交流和共享信息的能力。
它严重伤害了互联网。
我记得听过一个与从事 HTML 2.0 规范和 IIRC 工作的人的播客采访,当时围绕着遵守标准的解析器的严格性进行了一场大辩论。
该论点的获胜者使用了当时流行的“一个实施良好的系统应该在它接受的内容上是自由的,在它的输出上应该是严格的”方法。
AFAICT 许多人现在认为这种方法过于简单——原则上听起来不错,但实际上很少在实践中起作用。
IMO,即使 HTML 从一开始就非常严格,对于大多数人来说仍然足够简单。一开始的吸收可能会稍微慢一些,但从中长期来看,会节省大量的时间/金钱(数十亿美元)。
有一个原则描述了 HTML 和 Web 浏览器如何能够成功地工作和互操作:
在你接受的东西上要自由,在你输出的东西上要保守。
什么是“正确”和“可接受”的 HTML 之间需要有一定的自由度。因为 HTML 被设计为“人类+rw”,所以我们不应该对标签汤有这么多口味感到惊讶。在任何需要人类参与的地方,灵活性都是 HTML 的优势。
但是,这种灵活性增加了处理开销,当您需要为机器消耗创建一些东西时,这很难证明是合理的。这就是 XHTML 和 XML 的原因:它带走了一些灵活性以换取可预测的输入。
如果 HTML 更加严格,那么更容易的东西就会产生互联网成为主流所需的网络效应。