为什么HTML/JavaScript/CSS不是编译语言,它们会是什么?

ser*_*erg 40 html compiler-construction interpreted-language

为什么HTML/JavaScript/CSS不会成为编译语言(甚至可能合并为一种编译语言)?如果浏览器运行"浏览器虚拟机"和html/javascript/css源可以通过编译为"浏览器字节码"怎么办?它不会对开发人员和用户有很大帮助吗?

我可以看到一些挑战:

  1. 如何处理数以万计的现有页面?使这个编译可选,所以如果你想要你可以使用普通的旧HTML.如果您想为浏览器提供已编译的页面,请使用.chtml.

  2. 搜索提供商如何索引页面?制作一个可以将字节码反编译为精确原始源的反编译器(例如像flash一样可以反编译).或者搜索提供商可以使用相同的虚拟机并从中获取所需的数据.

  3. 如何使其与所有浏览器兼容?有一个集中开发人员(比方说w3c)来开发这个虚拟机,然后每个浏览器都会嵌入它.

但是好处呢?

  1. 速度.
  2. 尺寸.
  3. 没有更多"松散"和"半正确"的HTML.它是正确的还是不会编译.
  4. 在每个(支持的)浏览器中看起来都一样.

如果不是字节码,那么至少有一些原生压缩,html可能不是最有效的数据存储方式.我知道有gzip但是为什么每次在服务器上压缩页面并在浏览器中解压缩,如果我们可以压缩一次并将其提供给浏览器?

那么是什么阻止我们走这条路(好吧,除了付出巨大努力才能实现这一切)?

Dav*_*kle 19

啊,但是Javascript正在成为一种编译语言.使用TraceMonkey查看Firefox 3.5 .与你知道谁的浏览器相比,这是非常快的.确实,JS永远不会是C,但它是一种比C更动态的语言,并且在很多方面使它更具表现力和强大.

就HTML而言,我认为HTML缺乏有效性并不会对速度造成巨大损害.我认为将视觉表示和操作DOM组合在一起的引擎需要更好(嗯,IE,我正朝着你的大方向看......).CSS合规性需要变得更好,CSS本身需要变得更强大.(使用CSS 3人上车!)

但我确实认为Firefox和Chrome的速度会越来越好,以至于人们真正开始将它用于主流应用程序开发.这很有趣.Adobe似乎将Flash作为动态Web内容的平台销售,MSFT正在销售用于动态Web内容的Silverlight,而Google只是想真正改进HTML和Javascript以显示动态Web内容.到目前为止谷歌的表现相当不错,我必须说......

  • 5年后 - 他们赢了!! :-) (4认同)
  • 通过获取HTML/CSS/JS中的所有内容,我宁愿google*win*! (3认同)

Ken*_*ith 1

请参阅此处,了解之前关于此事的讨论

并非所有给出的原因都一定有效,但一个重要的原因是,除非您是 Google,否则服务器端 CPU 周期比客户端周期更有价值:因此让客户端更容易编译/优化什么通常是动态生成的 HTML/JavaScript,而不是服务器。