设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 Firefox 查看内容

热点揭密:为何Mozilla要固守Gecko内核

2008-9-16 21:14| 发布者: joejoe0332| 查看: 4582| 评论: 1

  随着Google推出WebKit内核的Chrome浏览器,一些技术狂热分子开始盘算Mozilla的Gecko内核是否即将走到尽头。然而尽管WebKit日渐流行,那些熟悉WebKit与Gecko的差异,并对Gecko大加赞赏的人还是认为,Mozilla在未来版本的Firefox中使用WebKit内核的可能性尚无从谈起。

  Webkit的优势



  Webkit是一个开源的HTML渲染引擎,由苹果公司基于KDE的KHTML项目开发而成。我们从Chrome的评测中已经看Webkit是一个非常轻量的渲染引擎,因其紧凑干净的代码基础,出色的标准支持,以及很小的内存占用而备受赞誉。这些品质使得Webkit成为众多浏览器的热选内核。

  Webkit主要用于苹果的Safari浏览器与iPhone,但一些重要的厂商如Adobe,Nokia,Trolltech也使用这个核心。Webkit的用户中还包括一些不太知名的浏览器,包括iCab,Omniweb,Shiira,以及Epiphany。在一些二线操作系统,如Haiku,Syllable,甚至Amiga,Webkit也大行其道。越来越多的开发者,使用Webkit开发富Internte应用(richInternetapplications)。Google在对众多内核进行评估之后,为Android移动浏览器,以及Chrome桌面浏览器选择了WebKit。

  开发者对Webkit公认的评价是:这是一个非常出色的渲染引擎,可以用于众多场合,它的吸引力让很多开发者开始怀疑Mozilla的Gecko内核是否还有市场。


  苹果为什么抵制Gecko



  Gecko源自Netscape,并早于KHTML,Gecko因庞大与复杂的代码基础而频遭诟病。Gecko非常强大,但代价高昂,复杂,高内存占用。因此,在很多场合Gecko的众多功能反而成了负担。

  Gecko内核过于复杂的原因是Gecko意图提供除了HTML渲染之外的更多功能。Mozilla早期的野心很大,Mozilla最早的应用套件包括浏览器,邮件和新闻组程序,Web设计工具,IRC聊天工具。除了渲染HTML,Gecko还要提供一种应用广泛的,基于XML的用户界面生成引擎,XUL。XUL被用在所有这些程序中。XUL现在仍用在Firefox中,用来生成用户界面,因此造就了Firefox最有价值的重多扩展应用。

  Gecko过于复杂的另外一个原因是XPCOM,一个强大的组件系统。虽然XPCOM为Gecko带来很多激动人心的功能,让这个渲染引擎实现组件化,然而,这个功能被一些开发者滥用,当ArsTechnica2004年采访Mozilla开发者ScottCollins的时候,ScottCollins说,对XPCOM的滥用是Mozilla犯的几个主要错误之一。

  鉴于XUL和XPCOM所带来的复杂性,苹果自然要考虑为Safari选择一种更轻量的内核。苹果要设计一款可以和Mac操作系统紧密结合的浏览器,他们还预见到,这个引擎应该支持移动设备,他们因此认识到KHTML比Gecko更合适。

  2003年,当苹果决定在Safari中使用KHTML的时候,Mozilla的MikeShaver曾在博客中承认Gecko的缺点。他同时预言,苹果会成为他们推广Web标准的联盟。他写道,

  “小而精练曾是我们的苦苦追寻的目标,Gecko的庞大与臃肿在各种评测中拉了我们的分数,如果我不得不写一个新浏览器,我会考虑Mozilla之外的选择。我希望Mozilla向Safari/KHTML学习,因为它们用1/10的代码实现了非常棒的功能。”


  Gecko洗心革面带来Firefox3的火爆

  2003年以来,发生了很多变化。Gecko代码基础已经发展了很久,Gecko依然复杂,然而它的很多历史遗留的缺陷正被一一攻破,Gecko为Firefox3带来众多革新,为整个Web浏览体验带来非常显著的改善。

  Gecko1.9使用跨平台的Cairo渲染框架,对SVG的巨大改进简化了代码并引入一些非常Cool的功能,如全页缩放,同时,重构的reflow算法,让Gecko通过Acid2测试成为可能。Mozilla还非常显著地降低了对内存的占用,甚至超越了Safari和Opera。

  对XPCOM的使用被大大减少,XPCOM对资源的占用通过一个新的循环回收器得到减低。这个工作仍在继续,Mozilla将在Firefox4中进一步减低XPCOM的负担。Gecko的其它缺陷也在新的开发中被一一正视,比如,Firefox3.1的Alpha版中就已经加入对CSS3的支持,另外一些性能的改进会让Gecko更具竞争性。Mozilla的TraceMonkey引擎将可能包含在Firefox3.1中,这将显著地提高JavaScript性能。

  从技术的角度,Gecko现在非常稳固,丝毫不比Webkit差。一些证据显示,Gecko正在进军移动领域,这在不久前还是不可能的事。Mozilla拥有资源,开发经验以及社区支持,这将引导Gecko进入任何Webkit所能进入的地盘。

  为什么Gecko备受第三方青睐?



  值得一提的是,Gecho的诸多独特功能颇受第三方开发者青睐。业界已经出现不少基于MozillaXUL的应用,例如,Songbird音乐播放 器,Miro视频播放器,以及ActiveState的KomodoIDE。这意味着,第三方开发者可以使用XUL和JavaScript在装有 Firefox的机器上构建富Internet应用。同样,我们看到一些复杂的XUL程序正被设计成Firefox的扩展,例如,Pencil,一个 GUI界面原型绘制程序,该程序最近曾荣获Firefox3扩展设计大奖。

  即使一些Webkit阵营的公司,也在Gecko和Firefox投入了非常客观的资源进行研究。例如,Nokia正在投资一个 FirefoxQtport项目,而Adobe也在同Mozilla合作开发Tamarin,一个用于AdobeFlashActionScript虚拟 机的JavaScript引擎。

  很明显,Gecko拥有Webkit所有的功能,性能,以及低内存占用优势,同时拥有其它渲染引擎所不具备的高级功能。尽管Webkit的狂热者认为Webkit更好,但Firefox没有任何理由舍弃Gecko。


  解释为什么Webkit不是Firefox的未来



  我们曾问过Mozilla的现任VP工程师MikeShaver,他对Gecko与WebKit之争有何看法,为什么他认为Gecko仍然重要。他在Email回复中说,

  “我对开发Webkit的人充满敬意,也欣赏他们的工作。他们的努力让Web变得更好。而Mozilla本身也在这种竞争,以及同Apple在Web标准的合作中变得更好。”

  虽然MikeShaver尊重Webkit的技术贡献,但他相信,Webkit的开发模型以及它的生态系统导致这个内核不适合Firefox。

  “我们的众多项目,从桌面,到移动设备,到XUL,到雷鸟,都使用一个统一的引擎,这为我们带来诸多好处。如果你看一下Webkit,就会看到他们有 很多不同的项目,这些项目最终是否会聚焦到一起还不得知。如果要启用Webkit,我们需要对这个产品进行大量剖解,而让这样一个飞速发展的替代品加入进 来未必是好事。同时维护多个引擎是很艰难的工作,我们不想找这个麻烦。”

  同时,如果启用Webkit,Webkit的运作模式,以及苹果透明度的缺乏也将对Firefox带来负面影响。

  “我觉得如果那样,我们的日子将非常难过,在我们的社区,补丁与评测都非常透明,比如,我们不会因为那些只能用于苹果的Bug跟踪系统而漏掉某个 Bug。对我们来说,引入Webkit并继续保持我们以前的透明度将降低我们的效率,而我们也不愿失去这些透明度。我们的体系在我们这边运转得很好,他们 的体系在他们那边也运转得很好,我不认为有哪个体系可以在两边都如鱼得水。”

  结论

  客观地讲Gecko的技术优势非常明显,而向Firefox迁移Webkit的代价又很高,我们以前也讲过,拥有多样性的产品与竞争是一件好事。

  Gecko和Webkit之间有很多东西可以互相学习,但用Webkit替代Gecko并没有道理,MikeShaver最后提到,“我们象所有人一样关注Webkit,也象所有人一样挑剔Gecko,然而将二者互换既不现实也没有意义。”

  英文原文:http://arstechnica.com/articles/paedia/mozilla-committed-to-gecko.ars/2

酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部