阻碍Web开放的不是WebKit,而是Web开发者的短视

2012 二月 18
by Lisober

近日,据国外媒体报道,W3C联合主席Daniel Glazman指出,与IE相比,苹果和谷歌移动浏览器(都基于开源Webkit引擎)的主导地位对Web开放性的影响更为恶劣。因为在Web标准发展的途径。新浏览器通常会引进最终成为标准的新技术,但最初这些新技术只出现在一种浏览器中。Web编程人员在使用这些试验性的技术时,他们必须在命令前加一个前缀。例如,“-webkit”前缘表明基于WebKit的浏览器支持的功能。一旦新功能成为标准的一部分,得到所有浏览器支持,编程人员就无须再使用前缀了,因为他们无须再担心自己是为一种特定浏览器开发代码了。

国外前端开发技术博客WebMoney针对Daniel Glazman的言论,发布阻碍Web开放的不是WebKit,而是Web开发者的短视。全文如下:

虽然这听起来非常不切实际,但是事实上,比比皆是的网站骄傲地宣称“使用InternetExplorer效果最好”的时代才刚刚过去。谢天谢地,那个时代已经成为过去式。IE6不再主导着整个Web

然而,虽然IE6已经成为过去,不幸的是,其根本问题网站仍然面向并只面向单一的网络浏览器IE6的时代并没有什么变化。

这次的罪魁祸首是WebKit,渲染引擎,用以开发iPhoneiPadAndroid等手机浏览器。但是,这次情况不同于IE6的是,WebKit开发商并没有做错什么,是Web开发者创造了只面向WebKitWeb

相反,编写能够在所有浏览器上运行的代码,可能意味着只在它们的CSS规则的基础上上额外添加的三行代码,甚至是一些规模最大的网站只面向WebKit编码。

在周一的CSS工作小组会议中,情况急转而下,MicrosoftMozillaOpera宣称打算添加一些–webkit前缀的CSS属性支持,也就是说,由于Web开发者只使用–webkit内核,其它浏览器必须添加–webkit支持或。

其风险在于,如果其它浏览器都采用–webkit内核,那么整个为CSS标准所做的努力都白费了。相反,不只针对单一的CSS规范编码,开发者需要为不同的供应商添加预定义。正如CSS工作小组联合主席DanielGlazman所说,“我认为这并不是正确的做法,这是我们工作小组头一次提出这么不靠谱的建议。”

供应商通过允许浏览器厂商在官方标准发布之前使用CSS功能,来指定–webkit–moz帮助web开发者。预先指定的旨在帮助提升在web中添加新功能的速度,。不幸的是,同时这种预先指定被广泛地滥用。

对于大多数web开发者来说,WebKit是当前主流的移动浏览器(事实上,Opera是唯一使用最广泛的移动浏览器)。但是,甚至这些误以为WebKit的优势都不是真正的问题。问题是正如上面所提到的—Web开发者只面向WebKit开发。

需要弄清楚的是,FirefoxIE,和Opera也支持这些功能。大多数情况下,在响应的浏览器中使用的–webkit属性有-moz-ms-o等前缀词。CSS3中非常受欢迎的功能,像border-radius,transformgradients,和amination等属性在所有主流浏览器中都有不错的表现。开发者只要额外添加三行代码就能使他们的网站兼容FirefoxIEOpera。但是他们没有这样做。

问题在于web开发者,而不是浏览器。Glazman发动大家号召,要求web开发者“不要再设计只面向WebKit的网站了,特别是在添加几行CSS属性就可以添加对其它浏览器的支持。”

Glazman和其它人都不支持AppleGoogle应该停止创新或者尽可能快的开发新的功能。正如CSSWGMozilla的代表TantekÇelik在周一几分钟的发言所说的一样,“我想,Apple想尽可能快地进行创新,我不想Apple在创新和开发新功能上面放慢速度。因为这样能够帮助Web成长和创新。

AppleGoogle同时开发了一些只针对WebKitdemo,这件事为广大的开发者树立了负面的“榜样”,这样会致使开发者得出结论:只有WebKit支持这些功能。

是什么导致这种专门针对–webkit开发的行为让人头疼呢?原因是有非常简单的解决方案使开发者开发出针对多个平台的网站只需要按照开发者的意图进行预先定义就OK了。幸亏使用当前的工具不需要添加额外的代码。像SASSLESS这样的预处理使添加额外代码变得十分简便。如果你不喜欢SASS或者LESS,没有关系,你可以使用cssprefixer,这款软件可以解析你的CSS代码,并且在你把代码发布到Web之前根据你的需求添加预定义(如果你喜欢,还有一种客户端自动预定义的解决方案)。

这样对你的网站来说是不错的选择,但是剩下的30000个网站怎么办呢?好吧,你可以E-mail那些开发者,让他们知道他们的网站并不是运行在最受欢迎的移动Web浏览器上,让他们知道他们并没有使用那些最受欢迎的浏览器所提供的服务。如果你是个程序员,或者Web开发者,你可以使用Molliza开发者ChristianHellman花了不少精力做出的Pre-fixthewebPre-fixtheweb正在寻找志同道合的开发者,帮助他们寻找Github中只运行在Webkit内核上的项目,并且使这些项目增加对其它浏览器的支持,为CSS代码中添加一些预定义,扩展JS代码来开发适当的特征检测,并发出Pull请求。换句话说,就是修复整个Web

我们Webmonkey的工作人员希望开发者意识到开发只针对WebKit的网站是在浪费时间。如果你只对iOS用户感兴趣,就学 Instagram只开发本地App好了。正如Hewlett-PackardsCSSWG代表PeterLinss,所说的,“在Web中,只开发针对特定平台的网站没有任何优势可言。”对于开发者来说,这的确没有任何优势,特别是有一个自动的预定义的工具可以代替你所有工作的时候。如果你想让你的网站支持整个Web,慢慢学习技术,使你的网站能够支持整个Web。擅长做你所做的事情,并且要以正确的方式去做。

原文出处:WebKit Isn’t Breaking the Web. You

阻碍Web开放的不是WebKit,而是Web开发者的短视

发表回复