HTML和编译器

时间:2009-07-12 16:24:42

标签: .net html theory compiler-construction

这个问题是一个更具讨论性的问题,是一个简单问题的具体问题。 编写基本HTML很简单,但编写快速轻量级标准,SEO最佳实践投诉,所有浏览器兼容的HTML页面都很难且非常耗时。

但为什么这么难?

在我看来很难,因为有数百条不同的规则需要遵循,规则是难以记住的,即使你记得很难将它们合并在一起而不是相互矛盾的形式和验证你工作的唯一方法是通过在您支持的每个浏览器中加载它并验证每个场景。

但它确实看起来像我们过去在其他编程领域遇到的问题,之前在高级语言的发明中,在汇编中编写程序看起来很像编写HTML文件,你被迫记住了数百种不同的规则对于性能,正确性安全性等,验证它们的唯一方法是执行程序。

在其他领域,高级语言编译器解决了这个问题,使语法更简单,进行性能优化,在执行前检查程序句法纠正。

您是否认为我们需要一种不同的简单语言来编写网页和编译器,这些语言可以使用这种语言生成特定于浏览器的标准投诉大小优化HTML?

您认为创建这样的语言和编译器是否可能?

8 个答案:

答案 0 :(得分:6)

我担心会有一些混乱。事实上,编写好的HTML很容易。很容易。编写错误的HTML也很容易,但这既不在这里也不在那里。

我认为你会发现,困难的是编写好的,跨浏览器,精美渲染的CSS。事实上非常困难。

没有多少抽象可以解决这个问题。只有改进所有浏览器的努力才能有所帮助;这不是一件小事。

另一个问题,这是一个更大的问题,就是最近HTML被滥用于它从未意图的事情;将极大作为“正确的”桌面应用程序实现的应用程序正在HTML和JavaScript中实现,因为它对于某些级别的开发人员来说“更容易”(正如您的帖子所强调的那样,这是一个肮脏的腐烂的谎言)。

兼容性问题不容易被打败;通过在错误的“平台”上实现事物,你就会让自己失败。这次得分。

网络不是一个平台;这是一种危险和绝望的混乱编织。当然还有电子管。

答案 1 :(得分:4)

就个人而言,我相信通过大量的准备工作,编写“基本”HTML和符合标准的HTML几乎没有什么区别。即使从头开始,我也不认为这更难。

同样,一旦你开发了一些网站,任何有关验证的规则都将成为第二种性质

答案 2 :(得分:2)

您所描述的是用于描述HTML页面的特定于域的语言。

答案 3 :(得分:2)

让我们以一种对你想要的方式公平的方式回答这个问题,但尊重HTML的无处不在。

如果你想要的是HTML的高级语言,它们已经存在。任何好的wiki系统都有一个简化的语法,抽象出“< html>< head> ...< / head>< body> ...< / body>< / html>”来自用户的管道。这就是PHP的目的,大多数流行的博客和维基系统都使用它。

您的投诉中涉及的另一个问题是标记语言(HTML)在从应用程序(服务器)到呈现器(客户端)的传输中用作中介。应用程序的意图可能会丢失,因为标记不是代码,而是文档描述语言。

您建议的是Web应用程序在客户端指示其执行的方法。有许多历史论据反对这一点 - 浏览器/平台选择的自由,对标准,隐私/安全问题的需求,以及可能通过将代码聚集为传输接口来打破MVC。

然而,该领域正在开展工作。看看XUL,它试图解决Mozilla浏览器上的问题;还Prism,这是一个非常早期的应用程序框架。另请参阅Google的GWTNaCl,它们有助于在网络上安全地整合“原生”代码。所有这些 imho 的问题在于它们将工作分配给客户端。我的信念是,安全地实现真正的客户端 - 服务器交互的唯一好方法是:1)可信任的云中介或2)虚拟化。

答案 4 :(得分:0)

整个浏览器的兼容性问题及其后果与公司之间的战争有关,这些公司很可能不会给开发人员带来任何痛苦,因为它的所有资金和市场份额都是如此。

企业用户和非技术用户很容易远离它。

答案 5 :(得分:0)

在充分尊重的情况下,我的印象是你要比较苹果和橘子。为什么?您声明现代编程语言负担从开发人员编写优秀代码的负担(通过应用优化)。恕我直言,这个陈述不太正确:没有优化编译器可以补偿开发人员实现 O(n²)算法,其中 O(n)实现也是可能的

回到原来的问题:我理解您需要构建符合标准的跨浏览器Web应用程序,而不需要花费太多精力。可能有人会(或者已经)想出一种元语言,它抽象了编写HTML的一些复杂性,但另一方面,现在已经可以使用许多模板框架/ CMS了。当然,您仍然需要在HTML中创建一次网站的蓝图,以便以后可以将其用作模板,但这也是一个元语言也不允许您摆脱的东西(甚至现代编译器都可以使用)在某些领域使用手工制作的汇编语言。)

答案 6 :(得分:0)

真正的问题不在于编写符合标准的HTML。问题是HTML + CSS是一个非常复杂的系统,没有参考实现,这使得标准基本上没有价值,因为你无法对它进行测试。

是的,您可以测试HTML和CSS的语法正确性,但与编程语言不同,语法正确的程序将产生什么影响的规则并不明确。实际的渲染规则需要解释,因此可以保证在可预见的将来会出现浏览器不兼容的情况。致cite Joel

  

你假装有一个   标准,但因为没有人有办法   为了测试标准,它不是   一个真正的标准:它是柏拉图式的理想   和一系列误解

答案 7 :(得分:0)

GWT,Dojo和ExtJS正是您所描述的。是的,它们需要javascript,但它们确实允许您避免记住许多“规则”(根据技术的程度或多或少)。

GWT尤其是一个很好的例子,因为它根本不需要您关注HTML,CSS或JS。你生活在纯粹的java土地上,交叉编译到一个网络应用程序,它只是工作。