阻碍Web开放的不是WebKit,而是Web开发者的短视
近日,据国外媒体报道,W3C联合主席Daniel Glazman指出,与IE相比,苹果和谷歌移动浏览器(都基于开源Webkit引擎)的主导地位对Web开放性的影响更为恶劣。因为在Web标准发展的途径。新浏览器通常会引进最终成为标准的新技术,但最初这些新技术只出现在一种浏览器中。Web编程人员在使用这些试验性的技术时,他们必须在命令前加一个前缀。例如,“-webkit”前缘表明基于WebKit的浏览器支持的功能。一旦新功能成为标准的一部分,得到所有浏览器支持,编程人员就无须再使用前缀了,因为他们无须再担心自己是为一种特定浏览器开发代码了。
国外前端开发技术博客WebMoney针对Daniel Glazman的言论,发布阻碍Web开放的不是WebKit,而是Web开发者的短视。全文如下:
虽然这听起来非常不切实际,但是事实上,比比皆是的网站骄傲地宣称“使用InternetExplorer效果最好”的时代才刚刚过去。谢天谢地,那个时代已经成为过去式。IE6不再主导着整个Web。
然而,虽然IE6已经成为过去,不幸的是,其根本问题—网站仍然面向并只面向单一的网络浏览器—较IE6的时代并没有什么变化。
这次的罪魁祸首是WebKit,渲染引擎,用以开发iPhone,iPad和Android等手机浏览器。但是,这次情况不同于IE6的是,WebKit开发商并没有做错什么,是Web开发者创造了只面向WebKit的Web。
相反,编写能够在所有浏览器上运行的代码,可能意味着只在它们的CSS规则的基础上上额外添加的三行代码,甚至是一些规模最大的网站只面向WebKit编码。
在周一的CSS工作小组会议中,情况急转而下,Microsoft,Mozilla和Opera宣称打算添加一些–webkit前缀的CSS属性支持,也就是说,由于Web开发者只使用–webkit内核,其它浏览器必须添加–webkit支持或。
其风险在于,如果其它浏览器都采用–webkit内核,那么整个为CSS标准所做的努力都白费了。相反,不只针对单一的CSS规范编码,开发者需要为不同的供应商添加预定义。正如CSS工作小组联合主席DanielGlazman所说,“我认为这并不是正确的做法,这是我们工作小组头一次提出这么不靠谱的建议。”
供应商通过允许浏览器厂商在官方标准发布之前使用CSS功能,来指定–webkit和–moz帮助web开发者。预先指定的旨在帮助提升在web中添加新功能的速度,。不幸的是,同时这种预先指定被广泛地滥用。
对于大多数web开发者来说,WebKit是当前主流的移动浏览器(事实上,Opera是唯一使用最广泛的移动浏览器)。但是,甚至这些误以为WebKit的优势都不是真正的问题。问题是—正如上面所提到的—Web开发者只面向WebKit开发。
需要弄清楚的是,Firefox,IE,和Opera也支持这些功能。大多数情况下,在响应的浏览器中使用的–webkit属性有-moz,-ms,-o等前缀词。CSS3中非常受欢迎的功能,像border-radius,transform,gradients,和amination等属性在所有主流浏览器中都有不错的表现。开发者只要额外添加三行代码就能使他们的网站兼容Firefox,IE和Opera。但是他们没有这样做。
问题在于web开发者,而不是浏览器。Glazman发动大家号召,要求web开发者“不要再设计只面向WebKit的网站了,特别是在添加几行CSS属性就可以添加对其它浏览器的支持。”
Glazman和其它人都不支持Apple和Google应该停止创新或者尽可能快的开发新的功能。正如CSSWG中Mozilla的代表TantekÇelik在周一几分钟的发言所说的一样,“我想,Apple想尽可能快地进行创新,我不想Apple在创新和开发新功能上面放慢速度。因为这样能够帮助Web成长和创新。”
Apple和Google同时开发了一些只针对WebKit的demo,这件事为广大的开发者树立了负面的“榜样”,这样会致使开发者得出结论:只有WebKit支持这些功能。
是什么导致这种专门针对–webkit开发的行为让人头疼呢?原因是有非常简单的解决方案使开发者开发出针对多个平台的网站—只需要按照开发者的意图进行预先定义就OK了。幸亏使用当前的工具不需要添加额外的代码。像SASS和LESS这样的预处理使添加额外代码变得十分简便。如果你不喜欢SASS或者LESS,没有关系,你可以使用cssprefixer,这款软件可以解析你的CSS代码,并且在你把代码发布到Web之前根据你的需求添加预定义(如果你喜欢,还有一种客户端自动预定义的解决方案)。
这样对你的网站来说是不错的选择,但是剩下的30000个网站怎么办呢?好吧,你可以E-mail那些开发者,让他们知道他们的网站并不是运行在最受欢迎的移动Web浏览器上,让他们知道他们并没有使用那些最受欢迎的浏览器所提供的服务。如果你是个程序员,或者Web开发者,你可以使用Molliza开发者ChristianHellman花了不少精力做出的Pre-fixtheweb。Pre-fixtheweb正在寻找志同道合的开发者,帮助他们寻找Github中只运行在Webkit内核上的项目,并且使这些项目增加对其它浏览器的支持,为CSS代码中添加一些预定义,扩展JS代码来开发适当的特征检测,并发出Pull请求。换句话说,就是修复整个Web。
我们Webmonkey的工作人员希望开发者意识到开发只针对WebKit的网站是在浪费时间。如果你只对iOS用户感兴趣,就学 Instagram只开发本地App好了。正如Hewlett-Packard’sCSSWG代表PeterLinss,所说的,“在Web中,只开发针对特定平台的网站没有任何优势可言。”对于开发者来说,这的确没有任何优势,特别是有一个自动的预定义的工具可以代替你所有工作的时候。如果你想让你的网站支持整个Web,慢慢学习技术,使你的网站能够支持整个Web。擅长做你所做的事情,并且要以正确的方式去做。
原文出处:WebKit Isn’t Breaking the Web. You
阻碍Web开放的不是WebKit,而是Web开发者的短视