从Google Chrome回归Firefox 4.0

2010年7月9日星期五

我曾经因为Firefox的缺点和Google Chrome的吸引,放弃了Firefox一个多月,在这一个多月中我用一个重度Firefox使用者的心态(简而言之就是“能不能”的心态,而不是“快不快”)去配置和使用了Google Chrome,在这里分享一下自己的经历和感触。首先要说的是因为Firefox 4.0的吸引,我又把Firefox变回了自己的默认浏览器。

为什么暂时放弃Firefox

Firefox 3.7a1 2010-02-14版后引入了新的图标,但是这组浮雕状的图标在我机器上严重拖慢了Firefox的界面和菜单响应,甚至影响了网页打开的速度。症状就是CPU一直居高不下。该问题一直没有得到解决,我也曾经尝试新的配置文件使用0214之后的3.7alpha,但是效果一直不理想。

为什么开始使用Google Chrome

要放弃Firefox肯定得有一个能替代的浏览器。老婆一直在使用Iron,我一直是抱着“她的需求比较简单所以Google Chrome就够了”的心态,自己并不使用它。后来看到Google Chrome的扩展中心真的提供了很多好的扩展,于是开始认真地对待Google Chrome,看看能不能把它打造成“自己的浏览器”。

Google Chrome的卖点是速度,这一点在刚刚开始使用的时候得到了很好的体现。尤其是我之前用FirefoxGmailGoogle DocsGoogle的重度AJAX服务非常痛苦,有时关闭Gmail后,浏览器都会假死好久。这一点对Google Chrome来说是得心应手的,毕竟Google Chrome的跑分能力在那儿摆着。如果说Google Chrome在功能上能够齐全一些,它就会吸引我去用。

真正让我开始使用Google Chrome的契机,乃是字体。Firefox的字体设置非常完备和明了,而Google Chrome的字体只能用 *惨不忍睹* 来形容,我这篇文章如果有一个相当苛刻的词汇,就得用来形容Google Chrome的默认字体。好在找到了Chrome Stylist扩展,用CSSGoogle Chrome的字体锁定为Myriad Pro + 微软雅黑。我这才开始愿意用眼睛看Google Chrome

Google Chrome的优势

冷启动快:这一点毋庸置疑,所以说,需要快速开关浏览器的话,Google Chrome的优势明显。

添加/禁用/启用扩展不用重启。这个是我目前认为Google Chrome最值得借鉴的地方,如果有了它,Firefox一样可以大大缩短启动时间。但是架构的不同让Firefox不可能直接把这个概念搬过来,而只能先通过Jetpack来实现一些简单的扩展。

Google Chrome的不足?

使用它一个月后,我又被Firefox 4.0吸引回去了。为什么我会这么快又放弃Google Chrome?除了一方面自己已然是Firefox的长期用户外,Google Chrome的一些不足让我又可以舍弃它。

** 资源开销巨大 **

Google Chrome是以速度为卖点的。在刚开始用的时候,倒没有觉得速度上的巨大优势是以什么为代价的。直到装了一堆扩展,把它打造成“自己的浏览器”之后,才发现每次启动时CPU风扇响个不停。冷启快不假,点下按钮到界面出现只要3~5秒,如果是无扩展的Google Chrome,界面出现基本上就是能用了。但是我至少有10个扩展是随浏览器启动的(其余有一些备用,因为Google Chrome启用扩展不用重启),这些扩展加载的方式是一个扩展一个chrome.exe进程,需要相当一段时间。也就是说,从界面出现,到真正可以把光标放到地址栏进行输入之类的操作,还要卡住5秒左右。

真正重要的是内存的占用,Google Chrome除了扩展单进程外,每个网站也是单进程的,任务管理器中一排的chrome.exe累加起来,我2G的内存都显得吃力。我不是任务管理器症候群,也一直认为内存闲置着不如不用,但是Google Chrome开着的情况下,再开一个Photoshop做设计,多休眠/唤醒几次之后,就会频频出现“计算机内存不足,请关闭Adobe Photoshop”的提示,而在使用Firefox的时候我甚至可以PhotoshopIllustrator同时开着。

在扩展装多了之后,Google Chrome打开标签页也频频出现一卡一卡的现象。Firefox也存在这个现象,应该是相应的扩展对页面内容进行处理需要额外的CPU开销。在硬件配置不变的前提下,这属于资源占用和软件功能不可调和的矛盾,但至少说明简单地换一个浏览器并不能解决问题——在功能提高之后,Google Chrome的速度也有比较大的下滑。

此外,Google Chrome对磁盘空间的消耗也比较大:在用户数据目录下有几个History Index文件和一个Thumbnail文件,到目前为此他们加进来已经达到了341MB。看来现在不用诟病Firefoxplaces.sqliteurlclassifier3.sqlite了。

** 功能和易用性 **

转去Google Chrome本来就是因为它在功能上的提高,这方面是值得称道的,毕竟Google的号召力吸引了大批的扩展作者。Chrome扩展中心里面也有很多优秀的扩展(下文会提到),相信Google Chrome在这方面还会继续进步。但是目前来说,Firefox的易用性和可扩展性依然对我很有吸引力。举个例子,Google Chrome的网页右键菜单至今依然是神圣不可侵犯的禁地。而对于一个普通的电脑用户而言,右键往往是最直接的“功能触角”,没有了它,调用很多功能将是相当复杂的事情。

Tineye反向图片搜索扩展来说,在Firefox里面,装上了之后只要对某个网页图片点右键便可立即呼叫这个搜索引擎。可是Google Chrome的右键不可侵犯,于是Tineye为它设计的同名扩展在安装之后,便会在工具栏生成一个Tineye按钮,在某网页看到自己想找的图片,你需要点击这个按钮,然后该扩展生成一个新的弹出式窗口,里面包含了该页所有的图片,然后,你去选中你要的那一张吧……说实在的我还蛮佩服Tineye的开发人员解决问题的能力,可是Flashgot(或同类下载器调用扩展)的作者们似乎仍然在捉襟见肘中,目前Google Chrome调用外部下载器依然是比较困难的事情——事实上我在用Google Chrome的这一个月中,凡是要调用外部下载器,我情愿打开那个很慢很慢的Firefox 3.7a1

Context Search的同名扩展,实现的方式是在你选中任何文本的时候自动出现一个小箭头,让你选择搜索引擎,这些搜索引擎需要你自己独立配置,而不是直接调用Google Chrome的搜索引擎。说起来Context Search想自动调用Google Chrome的搜索引擎也的确有难处:Google Chrome的搜索引擎往往是自己识别某个网站的搜索引擎代码后不加提示地加入到用户的搜索引擎列表中去的,这个功能我不能说它就不好,至少它让用户不需要自己学如何添加搜索引擎,但是用户还是需要在此后的地址栏输入中慢慢发现它们。

其余诸如BBcode这类很依赖右键的扩展都已经没有了自己的容身之处。

此外扩展想改变浏览器本身的一些行为也很难。例如Ctrl+Tab的顺序问题,在诸多使用多标签的应用程序中,Ctrl+Tab的顺序是MRUMost Recently Used),即用户可以通过反复按这个组合键(按一次后放开Ctrl)来在两个标签页之间切换,通过不放Ctrl连按Tab,在最近使用的标签页之间切换(或者按标签页的左右顺序切换,由某个about:config选项进行控制)。然而Google Chrome却无论如何都是按标签页的左右顺序切换,试想在两个标签页之间进行一些文字的复制粘贴,通过Google Chrome实现进来很难,不过我倒是找到了一个偏方:放弃Ctrl+Tab,而把另一个标签页拖成一个单独的窗口,这样可以用Alt+Tab来切换,后者是系统级的快捷键,遵守MRU

Google Chrome的地址栏合并了搜索栏的功能:书签、历史、搜索全部整合。有它好的一面——简约并节省空间。但是也有不足:提示条目太少,使得有时想找书签找不到,有时想找历史找不到。在Firefox中,首先提示的条目数可以自己定义,其次提示的内容可以加以限制(例如不显示匹配的书签条目)。最关键的一点:Google Chrome的书签没有Tag功能,大部分时候我无法通过地址栏找到我要的书签。

** 某些扩展 **

在这一个月的使用过程里,鼠标手势和平滑滚动是我认为Google Chrome比较不足的扩展。关于平滑滚动,我承认我有点先入为主,毕竟自己已经习惯了Firefox的平滑滚动(浏览器自带,并非扩展),但是Google Chrome默认的滚动效果我没法接受,几个平滑滚动扩展实现的效果也不好。最好的扩展应该是YASSChrome(Chromium Wheel Smooth Scroller),但是这个扩展在我的机器上使用时,一是会有“滚动到页面外”的奇特效果(在Ubuntu下的Firefox上用YASS,也是这个效果),二是会受到鼠标手势扩展Chrome Gestures的影响,后者自己也有一个平滑滚动的参数,而且即使不启用,也依然有效果,除非整个扩展给禁用了。最终只有割爱,放弃了平滑滚动扩展,只使用鼠标手势扩展和它自带的平滑滚动。

但是鼠标手势的流畅感和功能性依然无法比拟我在Firefox中用的Mouse Gestures Redox。例如:滚轮手势不能用来灵活地切换标签页,取而代之地是出现一个列表。在有新标签页占用资源时,浏览器会卡住,导致手势失灵(不过这一点Firefox也是一样的,依然是硬件能力的问题,因为系统繁忙的时候也有可能无法处理连续的键盘和鼠标动作)。另外Google Chrome的扩展设置页面看着像一个标签页,事实上不具备普通标签页的特性,一个明显的例子就是鼠标手势不可用,往往会影响迅速关闭一系列标签页的动作。

** 号称的功能(暂时)没有效果或没有实用价值 **

* 独立进程

Google Chrome一个很吸引我的功能是多进程:一个网站的所有标签页共用一个进程(并非一个标签页一个进程),这个进程崩溃了,浏览器的其它标签页不会崩溃。相比于Firefox一杆子打翻一船,这个功能能减少崩溃带来的损失,例如论坛发帖白写几千字。

不过很可惜,用 Google Chrome的一个月,这个功能基本上没有享受到。预设的情况是,如果只有一个标签页崩溃,Google Chrome会给你一个深蓝底的页面,中间是一个类似“囧”字的图标,刷新即可显示这个崩溃的标签页。事实上我基本上没有碰到这种情况,我碰到的全都是“Chromium has crashedrestart now?”,点重启,会提示你是否恢复崩溃前的标签页。可是这一点Firefox也完全不赖啊:除了内存不能为read/written这种“硬”崩溃,只要崩溃管理器来得及捕捉到崩溃信息,就可以恢复标签页。而且这也不是Google Chrome的卖点。不仅如此我还发现,想看这个“囧”得不行的小人也不是没有办法:把网络切断,Google Chrome马上给出一排扩展崩溃的信息,这真的有点奇怪。也就是说,在关机之前,如果忘了关Google Chrome,则100%出现崩溃的提示。

相比之下,同样是整个浏览器崩溃掉,Firefox做得更好一些,如果可以进行崩溃恢复,在文字编辑框中写的文字很有可能可以保留,而Google Chrome则肯定无法保留。

不难想像要实现标签页独立的安全保护(多线程?)还有很长的路走,所以说我暂时不期待Firefox实现该功能了。

* 同步功能

Google Chrome有着Google得天独厚的同步功能,书签同步早已是默认的功能,最近的新Builds中又加入了扩展同步,让Firefoxfans们好不眼馋,但是平心而论,这两个功能都还是刚刚起步。书签同步利用的不是Google Bookmarks,而是一个Google Docs的暂存档,并且无法直接查看网络上存放的书签。这一点Xmarks做得更好些,可惜Google ChromeFirefox书签格式的不同(尤其是没有Tags)使得用Xmarks来在两个浏览器之间同步也显得不太可能。

扩展同步则吸引了相当多的眼球,为了测试,我在Windows 7Ubuntu Linux底下各安装了最新支持同步的Chromium 6.0版。在Windows 7下先打开同步功能,然后到Linux底下启动Chromium——的确很快,扩展一个个不加提示地就被装上了。不加提示?对,不加提示。这让我有点担忧,不加提示,你知道我想从哪台电脑同步到哪台电脑呢?我在A机器上删除了一个扩展,是马上被B机器的版本同步回来,还是到时候B机器上那个相应的扩展在同步过程中被删除?

目前还没有扩展设置的同步,我想这才是用户比较关心的。但是,通过长期使用Xmarks,我自己也觉得同步这种事情是相当复杂的,所以暂时也不再对这功能望眼欲穿,我情愿要一个优秀的备份扩展。

** 其他 **

在使用Google Chrome的过程中,经常会出现一崩溃,扩展就没了的现象。例如,我之前还挺喜欢Google Chrome的把Application shortcut功能,也就类似于Firefox之前的尝试——Prism。用户可以把常用的网站例如Gmail生成一个快捷方式,双击后打开一个没有地址栏的窗口直接访问相应的Web App(在Win7中可以直接Pin到任务栏)。不知道为什么后来就不能正常工作了,例如我任务栏有一个Google TaskApplication shortcut,在Google Chrome运行时,点击这个快捷方式直接会造成Google Chrome崩溃。再重启Google Chrome后,就会丢失一系列扩展。需要去Chrome Extensions Center一个个装回来,虽说扩展设置并没有丢,但不能不让人担心。何况最要命的是Google Chrome不像Firefox,备份一个配置文件目录到时候拷贝一下就行了——我至今没有找到方便的方式能通过备份还原把Windows下的配置同步到Linux下去。

** 缺少交流讨论 **

这也是我用Google Chrome越用越孤独的原因。我以为Google Chrome的得势,相应地在国内会有比较热闹的讨论区(我的参考是Ubuntu,小红伞,卡巴斯基),可是我搜索了一下,国内有两个论坛是比较热门的Chrome论坛,我在两个论坛都注册了,可惜,有一个论坛用Chrome自己都无法登录,遑论发帖交流。另一个论坛在我注册的时候,主讨论区已经7天没有人发帖,查看了一下帖子内容,我想知道的都没有。

Google Chrome的优秀扩展

作为Firefox用户,能在Google Chrome找出的优秀扩展不多,也不足为奇。Chromed Bird是我印象最深的Twitter扩展,它的功能性和易用性远远超过了EchofonTwitterfox)。另外是一些Google服务的扩展,例如Unofficial Google TaskDayHikerGoogle日历扩展),Reader PlusGoogel Reader强化)都是不错的推荐。Ultimate Chrome Flag是一个集成了IP地址解析/国旗/PageRank/Alexa Rank/WOT信息的大型扩展。至于其它,不是逊于Firefox,就是Firefox中已有类同。

为什么回到Firefox

那是因为Firefox 4.0b2pre。虽然暂时淡出了Firefox的世界,但是还经常回到Firefox中文社区看看讨论,不经意间看到Firefox 4.0的发布。其实在开始用Google Chrome之前,我一直试着用新建配置去尝试2010-02-14之后的几个3.7a1/a2版本,但是那套新图标始终让Firefox的界面响应缓慢。但是Firefox 4.0给我的第一印象是足够快,我开始的时候还跟自己开玩笑说,嗯,图标少了好多,所以不觉得慢了,后来发现不只是这样。我又跟自己说,装多了扩展肯定会慢一点的,可是Google Chrome装多了扩展照样慢啊。于是我说服了自己来看看这个4.0b2pre

界面上变成了标签页置顶,除了标题栏没有隐藏,已经很像Google Chrome了。这一点我在很长时间都不太赞同,我比较习惯标签页在底下,不过好像Mozilla团队已经彻底关上了这扇门,标签页不再可能放底下了。好在(笑),使用Google Chrome的这个月我已经习惯了标签页在上面……界面简约了一些,开始时略微有不适应,主要是菜单栏不见了,橙色的按钮里面又没有全部的菜单选项,后来才发现可以按一下Alt调出来。我对界面要求不高,屏幕面积多一点,少一点,不是要命的事情,但是如果要优先牺牲性能去搞界面,我觉得有点本末倒置,因为Firefox本来就不太快。

但是这个Firefox 4.0给我的印象是很快!最明显的是之前提到的类似“关闭Gmail后,浏览器都会假死好久”的现象不复存在了,从地址栏输入Gmail地址到看到信件列表只要3秒不到。再装上Adblock之后,很多页面都是眨眼间就打开了。诚然,比起裸体Google Chrome的点链接后秒开还是略有延迟,但是已经大大接近了,尤其是最后渲染页面的视觉效果非常好:一瞬间全部显示出来,完全没有原来的那种自上而下显示出来的印象。而且我听说Google Chrome快的方式是DNS预读,我查了一下也不太理解它的原理。

我又试着装了几个扩展,我承认在装扩展的时候我显得有点谨小慎微,生怕这短暂的迅捷马上毁在Firefox的扩展臃肿手里,而我之前是一个使用50多个扩展的人。即使是现在我也不能确定装回这么多扩展是不是会把Firefox 4.0拖回到原来那个Firefox 3.7,但是经过了使用Google Chrome的这样一个真空期,这个新的Firefox 4.0暗示我也需要改变自己的一些习惯,去尝试着从纯粹的“能不能”的心态过渡到“能不能+快不快”的混合心态。

结语:

如果前天有人要我推荐一个浏览器,我会问对方是一个喜欢速度的人(Google Chrome)还是功能的人(Firefox),如果今天这个人再问我,我会说,用Firefox吧。