coredump 发表于 12-2-2012 23:06:19

WebKit逐渐成为新的IE6?

历史总是在某个时候重演,这不,IE6离开历史舞台(国外,市场份额不足1%了)之后,webkit内核的浏览器成了大家的心腹大患,于是各种口诛笔伐开始了,甚至比当年打击IE6更甚……
标准与事实标准
最近10年,IE6对标准的支持让所有开发者都很头疼――事实上虽然在国外基本没人用了,但是在国内还远远没有 结束,到现在IE6还有40%+的市场份额――IE6垄断了浏览器市场,它就是事实上的标准,所有的网站都要首先兼容IE6然后再兼容W3C标准,于是我 们通常要为它对标准的不支持和自身的各种bug付出很多很多的时间和精力,所以你在一些页面中看到针对IE6甚至IE7的很不友好的行为或者源代码时,请 理解一下前端开发者们极度苦逼的心情吧。。。
但是现在情况发生了很大的改变,IE6死了,而另一个垄断者webkit来了:
[*]最近几年,webkit在apple的带领下发展很快,对W3C标准的支持方面一直在和opera/firefox赛跑。[*]托Google Chrome和Chromium开源项目(基于webkit内核)的福,webkit市场份额大增,Chrome在国外已经有接近四分之一的份额了,而国内,各种“壳”浏览器的“极速”、“快速”版等都是基于chromium开发的,也算是webkit[*]在智能终端,iOS+Android垄断了市场,它们的内置浏览器都是基于webkit内核,于是webkit成了移动终端的No.1。所以在前几天,2月7日,在W3C的CSS工作组的一次会议上,Firefox/Opera/微软都表示,将支持-webkit-前缀的CSS语法。
于是国外各个大牛们开始各种吐槽,包括W3C联合主席丹尼尔・格拉兹曼带头讨伐,担心webkit会阻碍开放标准的发展。。。
但是,罗马不是一日建成的:
[*]W3C联盟开发标准的流程是,会员单位发起某项提议,W3C接受后成立小组,然后开始写相关标准,经历草案、RC、建议等几个阶段后,才可以成为成熟的标准(详细流程可以查看@junchen的介绍)[*]浏览器对实验性的CSS属性,比如W3C的草案阶段的CSS3属性或者W3C会员自己发起的一些新功能(如之前提到的CSS3 Region技术就是由Adobe发起的),会采用私有前缀-prefix-部分支持,待相关技术成熟并且浏览器能完成相应的测试用例之后,才可以去掉前缀。[*]CSS3的各种新特性,基本各个浏览器最初都是用私有前缀来渲染――虽然现在有的最新版本的浏览器对某些属性已经不需要私有前缀了,但是对于旧版本,还是要做下向下兼容,前端开发的工作量大大增加,通常要写4种不懂的前缀。[*]于是出现了一些解决方案,比如LESS/SASS可以建一些能够重用的变量,还有一些类似-prefix-free的js方案。。。[*]webkit现在成了移动终端的垄断者,一些移动网站/app开始不兼容webkit以外的浏览器。[*]Firefox干脆开始支持某些-webkit-私有属性――最近半年陆陆续续在MDN上看到一些这方面的信息,泪流满面。。。[*]于是在2月7日W3C的会议上,浏览器厂商对这个问题进行了讨论,结论就是大家都支持-webkit-吧,而firefox无奈的称之为囚徒困境。。。结语和争论事情演变到现在,罪魁祸首还是垄断,垄断者就成了事实上的标准,于是很多开发者为了降低开发成本会开发一些只兼容webkit的网站或应用。
但是依然对其它浏览器厂商的行为表示非常不解:
[*]将来webkit没落了,firefox上去了,那么大家都改成支持-moz-前缀吗?这种方法解决不了根本问题啊;[*]W3C的存在就是要提供一套标准的方案,你们既然能支持-webkit-前缀的功能,为什么支持不了标准行为呢?[*]向webkit妥协之后,拿什么和webkit竞争?[*]webkit作为一个开源项目,自己希望看到这样的结果吗?当然,对于前端开发者,我还是希望大家不要偷懒,要保证自己项目的可访问性和可用性,这是最基本的用户体验。

转载自:前端观察,http://www.qianduan.net/of-anti-webkit-of-war.html
页: [1]
查看完整版本: WebKit逐渐成为新的IE6?