在网站开发过程中,你会听到词语“标准”很多次。我的意思是,很多次。internet explorer因为不支持标准而广为诟病,opera自称是唯一的一个真正努力地完全实现标准的浏览器,而全世界的开发人员又相互责备没有遵循标准。可笑的是,大部分人根本不理解什么是标准或者它们是怎么变成这样的。
让我们以互联网上的头号神话来说起:w3c创造了标准。这完全是错误的。w3c宣称的目标是创造标准,但是它不能够在实际上创造它们。为什么呢?因为,很简单,标准是大多数人决定要做的事情。因此,网页标准是大部分浏览器厂商决定要追随的。w3c可以推荐应该怎么做,但是它没有权利强制实施。如果w3c真的可以创造标准,那么我们也不会仍然在等待相关的浏览器支持xhtml了,它在1999年就完成了。w3c没有能力强制浏览器厂商做任何事情;每个人都能决定自己想做什么。甚至参与到w3c的浏览器厂商都不遵循某些规范。
w3c在创建标准上曾经很传统的不好。它们真正擅长的是文档化和标准化已经在浏览器中实现的东西。这样导致了html 4 和dom 1的创建大部分是基于在ie 4中的创新。是的,同学们,微软在创建这些标准方面是比其它任何浏览器都更有影响力的,因为它们不断前进和创新而等不及有人告诉它们已经好了。
事实上,微软的很多创新都已经成为它们自己的标准,比如innerhtml 属性,xmlhttprequest 对象,通过designmode的富文本编辑。没有浏览器敢不支持这些;这使它们成为了标准。w3c现在正在走一些流程将它们引入到html 5 规范 和xmlhttprequest规范中。
责骂微软不支持标准似乎变得很流行,但是人们可以说,如果世界上最流行的浏览器不去实现某些东西,它就不会真正的成为标准。保守估计internet explorer在全球有80%左右的市场份额[2008年]。也就是说只有20%的互联网用户在使用“兼容标准”的浏览器。当只有市场上20%的用户使用它,它会是一个标准吗?
正如alex russell多次指出的,创新并不在w3c的手中。真正的创新,可以带动互联网发展的创新,需要来自于浏览器厂商。让自由的市场来决定浏览器中最有用的特性然后让w3c去规范它吧。那才是真正的标准。等到伟大的html 5规范在2022完成了,不会推动网络向前发展。得让像alex一样聪明的家伙开发浏览器才行[推动web进步]。