Reflections on Firefox
最近,ExtremeTech 有一篇 Browser Alternatives: Beyond Internet Explorer,比较公允地比较了几个 IE 的替换产品:Avant、Maxthon、Firefox、Opera 和 Netscape。
我乐于相信 Firefox 的用户们都是冷静而客观的,但自它的 1.0 版本发布以来,国内那种宣传的势头实在不能令人满意——当然,国外也好不了多少。
这个话题容易引起争议,我在别处也曾略谈过一点,今天权且展开,细细分析一下,也欢迎有兴趣的朋友多提意见。
废话少说,先提个问题吧,如果有这么一个软件,它具有所有 Maxthon/GoSurf.. 这类浏览器的功能,唯一不同的地方在于使用的是 Gecko 渲染引擎而非 IE 的渲染引擎,那你还会用 Firefox 么?
我想,不必急于回答这个问题,让我们先看看对浏览器的一点分析。
尽管 Web 出现到现在已经有 15 年的历史,但令人惊奇的是,人们浏览 Web 的方式到现在也没有大的改变:点击和翻页就是全部了。没错,不断有新的媒体出现:GIF、JPEG、Flash、Real…… 但不得不承认,Web 的主流信息还是由文字表达的,或者说,以文字为主,其他多种媒体为辅来表达的,这和人类获取信息的方式或多或少有关系:很难想象某一天我们全部放下书本,抱起电视来学习。
因而,尽管浏览器在这么多年中一直在推出新的版本,它们所能提供的功能却是大致相同的,我们容易发现真正在变化的是上述基本的功能——渲染页面、显示多种媒体、在链接中挑转、在页面中上下左右卷动——之外的那些,也就是作为一个应用软件应该给用户提供的功能:安全保障、分页浏览 (Tab Browsing)、快速搜索 (Search Bar)、广告阻拦 (Ad Block)、鼠标手势 (Mouse Gesture)。我希望找到更多,但实际上和浏览有关的功能,只需要这么多,当然不可否认,用户往往还会要求一些和浏览无关的功能,比如下载管理、换肤、RSS 阅读之类的,但毫无疑问这不是主要参考因素 (你总不会因为一个浏览器缺乏 RSS 阅读器就不用它吧?而诸如下载管理和 RSS 阅读,本来就不是浏览器的长处,大可以找到专做这个的软件来替代)。
(上)
沿着上面的分析,请允许我揣测一下用户选择浏览器时的心理:首先,基本的浏览功能必须没有问题,或者只有很小的瑕疵,如果有什么无法忍受的问题,第一步就筛掉了,比照 IE 和 Firefox,不管你说垄断也好,阻碍 Web 标准的发展也好,说一千道一万,总不能说 IE 对现下的网站的兼容性不好——我很清楚这里是 Web4C,宣传 Web 标准的 Blog,但上面这句话的确是平心而论。至于 Firefox,大家不妨跟我回忆一下它的前身,Firebird:我比较有印象的是 Firebird 0.5 和 0.6,0.5 的时候,显示网页的速度 (Win32 下) 相比 IE 有明显的迟滞,个人的感觉是至少慢半秒以上 (当然这只是个人感觉,不过有兴趣的朋友可以找来当时的软件,我们可以写程序公平地评测一下),而且——这是最主要的——大部分的 Tag Soup,它都不能显示正确。
没错,那是不符合标准的 Tag Soup,没错,所谓的正确就是 IE 定义下的样子,但这没什么好争辩的,在当时,作为一个浏览器,如果你不向着 IE 的方向改进,那就是死路一条,所以一点也不奇怪,当时无论是 Mozilla 还是 Firebird,根本无人问津。
到了 Firefird 0.6,无论是速度还是页面的兼容性都好了很多,我也渐渐见到有人提到这款软件,这就是向 IE 妥协的结果。不过,我从来没见过谁能坚持用这款软件的:相比 IE 还是太脆弱了。
为什么到了 Firefox 0.7 能够突然大受欢迎啊?和改了名字没关系,这个倒霉的软件在 Firefox 之前就已经改过至少两次名字了,完全是因为对 Tag Soup、DHTML 等等只有 IE 才支持的杂七杂八的页面的支持好了不止一点点。(另外界面和应用功能方面的改进也有帮助,这个容后再叙。)
总结上面这一节,浏览器在页面兼容性上的能力是硬指标,达不成就别想在这个市场里混,再举个例子,为什么 Opera 在国内一直不受欢迎呢?这么好的软件,速度快、能换肤、对标准的支持也很棒,怎么就是没有人用?无非是对中文的支持不好这一条原因罢了。内容都显示不好,其他的功能根本不必谈。
现在来看,Firefox 的成功,至少一半是因为在兼容性上,已经能和 IE 打成平手,虽然仍有小小瑕疵,但基本可以忽略。至于另一半原因,就是我们下面要谈的,界面和应用功能。
(中)
为什么说页面的显示能力只占成功因素的一半?很简单,Mozilla、Netscape 和现在的 Firefox 用的是同样的 Gecko 引擎,为什么单单 Firefox 火了呢?用运气来解释不能令人信服,相比 Mozilla,Firefox 改进的界面设计,以及提供的诸多应用功能才是它胜出的原因。
其实这也是一应 Firefox 宣传中都在吹的:分页浏览、广告过滤、插件……等等 (因为对页面的兼容性也实在没什么好吹的)。然而讽刺的是,这正是一种妥协的结果——当然你说它是试验也可以——试想,如果坚持 Mozilla 那种集成化的开发方式,哪里还有 Firefox,哪里还有 Thunderbird?尽管 Mozilla 官方网站上说得好听,“这是试验性的下一代浏览器,今后将全部进程到 Mozilla 套件中,作为其一部分”,但你想想看,如果某一天 Mozilla Foundation 真的叫大家抛弃现在的 Firefox,去用一个叫 Mozilla 的、身躯庞大的、附带了一堆你不需要的诸如 HTML Composer、Calendar、Mail Agent 之类附件的浏览器,大家不闹事才怪呢。
通俗点说,Mozilla Foundation 本来没有料到 Firefox 会这么受欢迎,没料到对自己传统的开发理念作个妥协就能这么受欢迎,现在势成骑虎,估计他们也只能顺水推舟了。
如果你觉得上面不是很严密的论证,那么我建议你自己去用一用 Mozilla,就会发现,那个玩意儿实在是太注重开发者了,以至于对用户算不上关心,以至于缺乏很多必须的功能,也就是上面提到的:安全保障、分页浏览、快速搜索、广告阻拦和鼠标手势。毫无疑问,作为一个用户我肯定是选择符合我需要的,我才不管你 Mozilla 的技术多么先进,对 XHTML、CSS 的支持多么完善呢,反正 99% 页面根本没用到那些 IE 不支持的技术。
总结以来一句话,IE vs. Firefox,白刃战乃是发生在界面和功能上。而我的观点是,尽管 Firefox 相比 Mozilla 作了妥协,做了许多方便用户的改进,但还远远不够,它还算不上一个最体贴用户的浏览器。
(下)
我可以举出很多例子来论证这个,先前和一些朋友的讨论中也提到过,这里允许我炒炒冷饭,我以为,Firefox 主要的几个缺陷是在:
一、插件。插件是优点,因为它允许用户想装什么自己去装,允许大家都加入开发者的行列提供多种多样的功能。同时插件带来了危险,第一,它给了 Firefox 本身的开发者借口,不去实现一些功能,比如说 Firefox 的分页浏览在 Options 中可以设定的功能根本算不上强大,但开发者认为既然有 Tabbrowser Preferences 和 Tabbrowser Extension 这样的插件,就不需要自己提供了,殊不知这既麻烦了用户,也带来了潜在的问题:第二、Brian Kernighan 和 Rob Pike 在 The Practice of Programming 中讨论大型系统的缺点时提到:一个完善耦合起来的,层层结构非常严整的系统,在它的每一部分都正确工作的情况下,这是一个完美的系统,结构清晰,实现优美。可一旦某个部件坏了,就像一台巨大的机器掉了一个齿轮,断了一根电线,却很难查出问题出在哪里,这正是这类结构化系统致命的弱点,想象一下现代的软件开发方式,某个软件可能基于十数个库,libc、OpenGL、libxml、MFC、zlib 等等等等,这些库各自又有相互的依赖,组成一个密密麻麻的网络,万一其中的某个库的某段代码错了,造成的结果是灾难性的。
我不想在这里夸大 Firefox 的问题,只不过想指出目前一个浮出水面的一些问题只不过是冰山一角而已,为什么 Tabbrowser Extension 功能如此强大,但却有许多人对它敬而远之,宁愿用不怎么强大的 Tabbrowser Preferences?还不是因为 TBE 会引发很多潜在的问题,比如地址栏有时会 Lost Focus,Copy & Paste 有时会失灵,有时会造成浏览器 Crash……同时,有这么多个开发者为 Firefox 开发插件,但却很难管理这些插件之间是否会互相冲突,某些插件是否会隐藏病毒:浏览器最多也就是提醒你不要从不信任的站点下载脚本,可用户在很多时候会盲目相信那些伪装。
最要命的是,如果你的 Firefox 真的出了问题,你还不知道究竟是它本身就有问题呢,还是插件带来的?如果是插件带来的,究竟是哪个带来的?你还得逐一禁用掉每个插件,以找出罪魁祸首……我只能说是一场灾难。
其次,我认为 Firefox 本身开发者的态度也很成问题,比如说现在来看,Mozilla/Firefox 的安全问题不是太少了而是太多了,但 Ben Goodger 用一句“Apache 的用户也很多,但 Apache 的安全问题比 IIS 少得多”来掩盖是很不明智的,毕竟 Firefox 不是 Apache,IE 也不是 IIS。现在 Firefox 的设计还有许多要改进的地方,可是恐怕铺天盖地的宣传已经让这些开发者冲昏了头脑,以为 IE 大势已去,下面的工作慢慢来就可以了——1.0 发布到现在已经几个月了?1.1 却要到夏天才会出现,这个速度相比去年,是慢得多了 (当然我们也可以理解为 1.0 纯粹是为了赶档期凑出来的产品,这使得后续的版本根不上步调了)。Roadmap 中说 2.0 会在 2005 年内发布,恐怕这只是个玩笑。当然了,Ben 可以用很多看似非常合理的话来解释,但用户从来不看这些,他们的看的是进度啊。
(结语)
还是回到开头的那个问题吧:如果有个软件,有 Maxthon 的功能,Gecko 的引擎,平心而论,你还会不会用 Firefox?
反过来说,如果 Firefox 没这个 Gecko 引擎,它还剩下些什么?
我以为考虑一下这些问题比举起旗子说 Firefox 就是好就是好要更合适一些。且让我做几个预测:
- 一年内,必有严重的 Firefox 安全问题出现;
- 一年后,宣传 Firefox 的网站大部分将连不上或者停止更新;
- 一年内,Firefox 的市场占有率上升到一定程度,会停滞下来。
一年后,我们可以逐条查证,看看我猜得对不对。
28 Comments