为什么Mozilla要固守Gecko 内核
[i=s] 本帖最后由 King 于 2008-12-27 13:34 编辑 [/i][color=#ff0000]核心提示:[/color][color=#000000]基于WebKit内核的Chrome浏览器的发布,让曾经由于火狐而引起的浏览器风暴再次席卷而来,一些狂热份子逐渐开始追究起内核问题,甚至将Mozilla内核Gecko也拉入战斗。在他们中,浏览器之争已经变成了内核之斗。
[/color]随着Google推出WebKit内核的Chrome浏览器,一些技术狂热分子开始盘算Mozilla的Gecko内核是否即将走到尽头。然而尽管WebKit日渐流行,那些熟悉WebKit与Gecko的差异,并对Gecko大加赞赏的人还是认为,Mozilla在未来版本的Firefox中使用WebKit内核的可能性尚无从谈起。
[b]Webkit的优势[/b]
[align=center][img=200,162]http://www.chinaz.com/upimg/allimg/080911/0915130.jpg[/img]
[/align]
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内核是否还有市场。
[b]苹果为什么抵制Gecko[/b]
[align=center][img=240,159]http://www.chinaz.com/upimg/allimg/080911/0915131.jpg[/img]
[/align]
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带来很多激动人心的功能,让这个渲染引擎实现组件化,然而,这个功能被一些开发者滥用,当Ars Technica 2004年采访Mozilla开发者Scott Collins的时候,ScottCollins说,对XPCOM的滥用是Mozilla犯的几个主要错误之一。
鉴于XUL和XPCOM所带来的复杂性,苹果自然要考虑为Safari选择一种更轻量的内核。苹果要设计一款可以和Mac操作系统紧密结合的浏览器,他们还预见到,这个引擎应该支持移动设备,他们因此认识到KHTML比Gecko更合适。
2003年,当苹果决定在Safari中使用KHTML的时候,Mozilla的MikeShaver曾在博客中承认Gecko的缺点。他同时预言,苹果会成为他们推广Web标准的联盟。他写道,
“小而精练曾是我们的苦苦追寻的目标,Gecko的庞大与臃肿在各种评测中拉了我们的分数,如果我不得不写一个新浏览器,我会考虑Mozilla之外的选择。我希望Mozilla向Safari/KHTML学习,因为它们用1/10的代码实现了非常棒的功能。”
[b]Gecko洗心革面带来Firefox3的火爆[/b]
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所能进入的地盘。
[b]为什么 Gecko 备受第三方青睐?[/b]
[align=center][img=320,236]http://media.arstechnica.com/news.media/320/sb1.png[/img]
[/align]
值得一提的是,Gecho 的诸多独特功能颇受第三方开发者青睐。业界已经出现不少基于 Mozilla XUL的应用,例如,Songbird 音乐播放器,Miro 视频播放器,以及 ActiveState 的 KomodoIDE。这意味着,第三方开发者可以使用 XUL 和 JavaScript 在装有 Firefox 的机器上构建富 Internet应用。同样,我们看到一些复杂的 XUL 程序正被设计成 Firefox 的扩展,例如,Pencil,一个 GUI界面原型绘制程序,该程序最近曾荣获 Firefox 3 扩展设计大奖。
即使一些 Webkit 阵营的公司,也在 Gecko 和 Firefox 投入了非常客观的资源进行研究。例如,Nokia 正在投资一个Firefox Qt port 项目,而 Adobe 也在同 Mozilla 合作开发 Tamarin,一个用于 Adobe FlashActionScript 虚拟机的 JavaScript 引擎。
很明显,Gecko 拥有 Webkit 所有的功能,性能,以及低内存占用优势,同时拥有其它渲染引擎所不具备的高级功能。尽管 Webkit 的狂热者认为 Webkit 更好,但 Firefox 没有任何理由舍弃 Gecko。
[b]解释为什么 Webkit 不是Firefox 的未来[/b]
[align=center][img=280,224]http://media.arstechnica.com/journals/linux.media/wallpaper-firefox.jpg[/img]
[/align]
我们曾问过 Mozilla 的现任 VP 工程师 Mike Shaver,他对 Gecko 与 WebKit 之争有何看法,为什么他认为 Gecko 仍然重要。他在 Email 回复中说,
“我对开发 Webkit 的人充满敬意,也欣赏他们的工作。他们的努力让 Web 变得更好。而 Mozilla 本身也在这种竞争,以及同 Apple 在 Web 标准的合作中变得更好。”
虽然 Mike Shaver 尊重 Webkit 的技术贡献,但他相信,Webkit 的开发模型以及它的生态系统导致这个内核不适合 Firefox。
“[b][color=Purple]我们的众多项目,从桌面,到移动设备,到 XUL,到雷鸟,都使用一个统一的引擎,这为我们带来诸多好处。[/color][/b]如果你看一下 Webkit,就会看到他们有很多不同的项目,这些项目最终是否会聚焦到一起还不得知。如果要启用Webkit,我们需要对这个产品进行大量剖解,而让这样一个飞速发展的替代品加入进来未必是好事。同时维护多个引擎是很艰难的工作,我们不想找这个麻烦。”
同时,如果启用 Webkit,Webkit 的运作模式,以及苹果透明度的缺乏也将对 Firefox 带来负面影响。
“我觉得如果那样,我们的日子将非常难过,在我们的社区,补丁与评测都非常透明,比如,我们不会因为那些只能用于苹果的 Bug跟踪系统而漏掉某个 Bug。对我们来说,引入 Webkit并继续保持我们以前的透明度将降低我们的效率,而我们也不愿失去这些透明度。我们的体系在我们这边运转得很好,他们的体系在他们那边也运转得很好,我不认为有哪个体系可以在两边都如鱼得水。”
[b]结论[/b]
客观地讲 Gecko 的技术优势非常明显,而向 Firefox 迁移 Webkit 的代价又很高,我们以前也讲过,拥有多样性的产品与竞争是一件好事。
Gecko 和 Webkit 之间有很多东西可以互相学习,但用 Webkit 替代 Gecko 并没有道理,Mike Shaver 最后提到,“我们象所有人一样关注 Webkit,也象所有人一样挑剔 Gecko,然而将二者互换既不现实也没有意义。 ”
以上文章转自:
[url=http://www.chinaz.com/News/IT/09113Ma2008.html]为什么Mozilla要固守Gecko 内核(上)[/url]
[url=http://www.chinaz.com/News/IT/09123Q232008.html]为什么Mozilla要固守Gecko 内核(下)[/url] 一头成年的大象,要想跳跳舞,其目的和方式,自然不是那些小松鼠们能理解的。
一路走好 [i=s] 本帖最后由 xneo 于 2008-12-27 11:23 编辑 [/i]
好文。
一个是兼容,一个是专攻。
业内人士觉得理所当然的事,在我们这些缺乏相关知识门外汉看来,不是看看表像就能理解的。 这个嘛,呵呵,对普通用户来说好用就行 好像很久前就看到这文章了,大概在google chrome刚出来不久 普通人来说,哪个内核不重要,关键是好用。 支持楼上啊,什么内核无所谓的,说实话我也不是很懂啊,不过又有什么关系,反正firefox能用就行了,用惯firefox的毛病就是用其他的浏览器老觉得功能太少,看着傻了吧唧的…… lin下用opera总是不爽,还是回归Fx了…… 为什么要非此即彼呢?现在几个主要的内核各有自己的特点,满足了不同种类的需要,何必将自己的好恶强加于人?让他们自由竞争去吧。 非此即彼都是狂热者的论调,其实存在既有价值,压倒性的优势是不存在的。
WebKit 注重精炼、高性能,而 Gecko 则相当于一个平台,二者的定位、特长都不相同。 还是firefox好用些 受众不同罢了。。。资源占用这个年代不是最优先考虑的~~应该是人机交互才是重中之重 Maxthon 3.0 也用上 webkit 內核了。
页:
[1]