webkit笑傲江湖,悲乎?乐乎?

        2013年情人节的前一天,著名浏览器厂商Opera宣布将其下一代的Opera由自家的Presto引擎切换到Chromium。由于Chromium是Google Chrome浏览器基于Webkit内核改进的引擎,这意味着,硕果仅存的独立内核浏览器Opera也将加入webkit的大家庭。

        至于这是不是一个好消息,我想,所有的前端开发人员都会欣喜地奔走相告吧!虽然Opera在中国的份额可以小到忽略不计,但此事有可能引发的多米诺效应却不容小觑,要知道,移动浏览器,几乎就是webkit的天下。至少我,作为一枚前端,会扭过头不怀好意的看着那个蓝灰色的图标说:“小子,你认输吧!”

        几乎每个前端都必须在遵循W3C标准的同时把代码写到兼容四大主流浏览器内核的程度(当然,根据你网站访问者使用浏览器所占比可能不同),而兼容性问题则花费了前端大量的时间,而大多数需要解决的兼容性问题,都和Internet Explorer有关,尤其是IE6。嗯,haslayout确实是朵奇葩。尽管全世界的人民都在问webkit会不会取代W3C成为事实上的标准,这也与我们没有什么关系。因为阻止我们的,不是可有可无的Opera,而是举足轻重的IE6.0,而在可预见的未来,IE6的消亡仍然是一个漫长的过程。而被世界淘汰却在大陆仍有相当份额的IE6,依然是阻挡中国大陆前端前进的巨大绊脚石。

        谁在为IE6续命?

        在谈论这个话题之前,我们首先来看看IE6当初在中国大陆是如何风靡的。Internet Explorer从Win95开始作为Windows操作系统的默认浏览器,此后Microsoft每发布一个新的Windows版本,都会集成当前最新的IE浏览器。而IE6,则作为Windows XP操作系统的默认浏览器出现了。在Windows XP带着IE6出现的2002年(XP于2002年10月25日发行,但我的印象里,它于2002年才在中国大陆普及开),Apple尚处于复苏的开端(苹果电脑公司(2007年更名苹果公司,当年推出首款iMac,次年推出基于Webkit的Safari for Mac),谷歌还仅仅是一家以搜索引擎为主要业务的公司,而Mozilla基金会还在一大堆冗杂的项目之间徘徊(AOL于2003年就反垄断案与Microsoft达成和解,随后正式解散网景,2004年,Mozilla基金会才开始着手研发Firefox),移动互联网还处于萌芽阶段,这时,IE的占有率超过90%。

        因此,它完全可以把W3C制定的标准晾一边去。由于对html的理解不同,奇葩的三像素bug、双倍边距bug等等就应运而生了,据不完全统计,IE6的bug多达四十多种,这其中的大部分需要前端工程师使用hack解决。如果算上Office的短命组件FrontPage加入的各种IE私有标签(这些标签大多数其实都可以改用CSS来实现,而不必要去占用一个DOM的节点),IE6下的HTML简直就是我们常人看哈哈镜一般滑稽。当然,不支持InPrivate(被戏称为“色情模式”的隐身浏览模式)、不支持Ajax、不支持CSS3和HTML5都是后话,至少在当时看来,它还没有那么糟糕。

        这就引出了一个问题——它何以成为前端发展中的绊脚石呢?

        要知道,IE6在之后风靡的十几年里,都没有任何变化(即使Microsoft在IE6饱受诟病后及时地推出了更高版本且更标准的IE7、IE8,但在国内,鲜有一般网民去升级,此事将在后面论述),但互联网环境,无论是大陆还是世界,都发生了翻天覆地的变化。而IE6,则难以适应。至今,IE浏览器的份额在世界范围内已经跌落到百分之六十几(我没有查具体数字,仅凭记忆,如有谬误请及时指出),这一数字相信还会继续减少,IE6的份额,在世界范围内已经跌落至百分之十以下,而在2013年的大陆,它的份额居然依然达到至少百分之百分之二十五!如果考虑到第二名奇虎360安全浏览器百分之二十左右的份额(360安全浏览器并不是自主内核浏览器,而是基于IE内核或IE/Chromium双核的浏览器,若安装360安全浏览器的操作系统IE为6.0版本,则其实际上会按照IE6渲染网页,尽管奇虎曾表示360安全浏览器已经自带内核,但没有证据表明它已经不依赖于IE内核),那么IE6泛滥的问题就依然相当严重。

        IE8(我记得大概占有百分之十五左右的份额)作为一款W3C标准浏览器尚且可以被接受,IE7仍然有相当的份额,但由于指定它为默认浏览器的Windows Vista是一款失败的产品,其消亡指日可待。问题是:为什么用户都不去升级自己的IE6?

        举个例子,我妈是从四十岁以后才接触使用计算机的,她现在已经可以熟练使用word、在淘宝上购物了。然而,浏览器的概念对于她而言却相当模糊,当她厌恶起那个蹩脚的蓝色e图标后,便很自然而然地切换到搜狗拼音输入法推荐的搜狗浏览器上,因为相对好看的界面、标签式浏览、拦截广告和各种傻瓜式的操作。当然,在使用之前她也许并没有发现搜狗浏览器原来那么棒。但在这个互联网环境下我们想安装“搜狗浏览器”实在太容易了。比如很多网站闪眼的广告,点一下,同意下载,OK;比如你不经意间安装某个有趣的软件(不止搜狗拼音输入法)顺便没有把最后那个小勾勾去掉。——事实上,大部分网民都不会去掉这个小勾勾,即使是二十岁非计算机专业或不从事相关工作的年轻人,不然一些安全辅助软件的“C盘大文件搬家”功能岂不是废了?

        安装搜狗浏览器如此简单,升级Internet Explorer又需要怎么做呢?首先,你得去微软官网,或者国内各大下载站,找到你要下载的Internet Explorer版本,你会发现IE9根本不能用于你的XP系统,而IE8却分为32位版或64位版,我该怎么选择?好吧,我猜我应该选32位版,在漫长的安装之后,它还会不厌其烦地提醒你重新启动,这一系列复杂的操作在大多数中国大陆网民看来都是不可理喻的。更何况一般网民不使用IE的理由也是用户体验差,和什么内核无关,他们大可以把360安全浏览器作为默认浏览器而把IE6晾一边去,尽管在前端开发人员看来这并没有太大区别。

        而内核浏览器厂商对于中国大陆,仿佛都比较缺乏热情,在做自主内核的Maxthon份额受到以360安全浏览器为代表的一批新秀的挤压,Safari专注于满足Apple用户(尽管也推出了Safari for Windows),Firefox只有一堆技术狂在追,Chrome很受挫。倒是国内一些做浏览器的厂商(当然是出于自己的商业利益)很热心,广告都做到央视了,没有自己的内核,做IE/Chromium双核已经算是推动W3C实践了吧!

        消灭IE6,真的不是靠几个人、几家公司呼吁就能做到的,别指望用户去理解你,去了解相关技术。你能为用户切实做些什么,符合他们的习惯,让他们认可你的东西,他们才有动力去抛弃旧的东西。

        另一个不得不提的为IE6提供源源不断生命力的,正是我们自己,这些技术人员。

        但是我们很无奈。公共管理机构是官本位的,尽管财大气粗,他们也不会重视频繁的信息系统更新换代,而巧的是,不管我们个人、还是我们的客户(企业),都绕不开它。你去在线订购车票,可能必须使用IE;你登录网上银行,可能必须使用IE;你登录大学的选课系统,可能必须使用IE。企业去一些管理机构办事,而这些网上大厅,依旧Only For IE。我们编写一套Only For IE的B/S系统,这并不是我们的本意,因为客户有这样的需求。我们可以在网站上挂出升级提示来替代无休止的Ie6兼容性测试,但这样会付出大量用户流失的巨大代价。这一点,我倒是比较羡慕知乎,因为知乎是不管低版本IE浏览者死活的,原因在于:哪个使用搜狗、IE6的用户会知道知乎?知道知乎的,又有哪个会用IE6?甚至连IE都不可能用。

        再说点题外话,IE的插件(比如BHO插件)开发者甚少,即使有,在国内比较常见的也都是诸如XX工具栏之类的,而针对其代理设置的插件貌似真不多。而Chrome、Firefox则有着极强的扩展性,这其中就包括代理插件,而使用代理插件则...

        回到正题,假如webkit一统江湖,到底是一件好事还是坏事呢?

        这真的很难衡量。首先我们可以问一下:当年IE6一统江湖是好事还是坏事?现在看来是坏事,可是当时,在HTML/CSS还没有大行其道的时候,在CSS3还没有诞生的时候,编写Only for IE6的网页也同样是一件非常省心的事情,尽管这违背了W3C的标准,不是吗?webkit长期独霸,会不会也会造成此类长久损害,未可知。但我认为,保持浏览器内核的多样性是很有必要的。Gecko、Webkit、Presto或IE内核各自对代码的理解不同,正是他们之间的博弈,才造就了今天不断完善、更新的W3C标准。而作为W3C标准浏览器,他们之间的兼容性Hacks都是我们可以容忍的范围。之前说了一大堆IE6,则是希望以史为鉴,不要再让Webkit成为下一个IE6。

        当然,我认为Webkit成为下一个IE6的可能性并不大:首先,Webkit是开源的,Safari、Chrome都基于Webkit,但后者又是基于Webkit衍生出的Chromium,即使都Webkit内核,两者还是存在区别的。其次,Firefox的内核Gecko同样开源,且同样优秀,Microsoft已经开始重视浏览器的战略地位,IE更新的步伐较以往加快,IE9无论是兼容性、安全性、用户体验还是对HTML5/CSS3的支持都不错,面对强势进攻的Webkit,他们是不会坐以待毙的。、

       而单纯回答浏览器内核趋向统一是利大于弊还是弊大于利,我可以直接引用知乎工程师Rio的回答:

  • 从用户的角度看:绝大多数用户都不清楚浏览器引擎为何物。用户能够选择的是浏览器产品本身,至于底层如何实现这样的技术细节用户才不关心。
  • 从 Web 开发者看:当然是越少浏览器引擎越好,开发、测试的成本都要小得多,需要 hack 解决的 quirks 也少得多,需要加班熬夜和抓狂的时候就越少,幸福度也越高。
  • 从 Web 生态看:当然也是越少越好。Web 开发者花在兼容性上的时间越少,相对而言他们花在实现功能和稳定性上的时间就越多,这对用户和整个 Web 体验而言都是好事。
  • Web 标准是手段,不是目的。早年浏览器都是私有代码的时候,我们需要一套标准来确保 Web 不被某一家公司通过兼容性垄断而劫持【微软曾经通过 IE 干过这事】。然而 WebKit 是开源的,“coding to Web standards” 和 “coding to WebKit” 这两种哲学对于保证 Web 不被垄断这个大目标而言并没有本质不同。大不了随时 fork 嘛。
  • 现在 Web 面临的最大挑战不是浏览器太少,而是体验太糟糕,特别是在越来越重要的移动平台上几乎完败给了原生 app,特别是原生 iOS app。抛开支付、渠道等客观原因不谈,单从开发的角度而言,为 iOS 这种高度统一的平台做开发的惬意和为兼容多浏览器多版本的抓狂相比,我相信没有一个思维正常的产品导向的开发者会喜欢后者。你能想像 Loren Brichter 需要花多少倍的努力才能够在三大主流浏览器中完美实现 Letterpress 的流畅体验么?那几乎是不可能的任务。

        最后,我真的需要怀念一下Presto内核的Opera。


        Opera并不是我的主浏览器,但我对Opera有着不错的印象:低配置计算机上较快的启动速度,贴心的缩略图预览,比其他浏览器更快的页面载入速度,较好的兼容性(浏览Only for IE页面也没问题)都给我留下了深刻印象。Opera同时也是走在技术前列的浏览器,君不见,HTML5文档有多少链接都直接指向了Opera网站,可见其对Web标准的贡献。另外,Opera移动版有着不错的份额,而且,能把for PC的页面完美显示在手机上真的很棒,Turbo加速也相当给力,完爆国内通过切换内核来宣称的高速的浏览器。

        印象中那个快速、小巧、贴心的Opera真的远去了,但我同样相信Opera做出此决策是基于深思熟虑的,也许这样Opera会把注意力放在更好的用户体验或其他功能的开发上,也许单薄的Opera只有站在Google巨人的肩上才能继续存活下去。就Opera本身而言,也许内核真的不重要,重要的,是用户的认可。Presto内核的Opera真的很优秀,希望在切换到Chromium之后,Opera能秉承这些优点并且更上一层楼,而不是和猎豹、360安全浏览器这等站在同一个起跑线上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值