xoferiF
热心会员
热心会员
  • UID6559
  • 注册日期2005-06-05
  • 最后登录2020-04-24
  • 发帖数418
  • 经验24枚
  • 威望0点
  • 贡献值4点
  • 好评度1点
  • 社区居民
  • 忠实会员
阅读:14324回复:8

对话Firefox Gecko内核开发者:李沫南[zz]

楼主#
更多 发布于:2006-11-04 13:30
http://blog.csdn.net/EricLee00/archive/ ... 61531.aspx
 
这些年来,随着浏览器的发展,浏览器引擎其实已经分为比较鲜明的几派,比如IE 的Trident,Firefox 的Gecko等.由。IE 浏览器的用户量相对庞大许多,所以国内许多开发者和用户可能对围绕IE开发比较熟悉。那么究竟围绕Gecko开发是怎样一种情况呢?技术上有哪些异同呢?为此我特别采访了一位拥有丰富Gecko内核开发经验的程序员李沫南。

 
Ericlee:请介绍一下你自己好吗?比如你从事Albatross开发的经历。
李沫南:我2002年烟台大学土木工程系毕业,在济南浪潮做了近一年.net上的ORMaping。03年11月加入北京共创开源软件有限公司,从事开源浏览器(起初是epiphany,后来是firebird)的开发。Albatross是在Firefox 1.0.x版本分支上改进的,在863项目《Linux下兼容IE扩展的功能增强性浏览器》的基础上,由当时共创开源浏览器部开发的。主要改进功能改进可参考:
http://albatross.cosoft.org.cn/future.html
2006年3月,从公司离职。目前主要从事基于浏览器的互联网爬虫和社区(站内)搜索引擎的开发。http://www.coreseek.cn
 
Ericlee:浏览器的内核其实可以分为Trident、Gecko,Presto、WebCore等等几种。请您谈谈Gecko 内核哪点最吸引您?它有与其它内核相比有哪些不同。
李沫南:如果都无法获取源码的情况下,IE的Trident内核实际上是最开放的。其接口设计的相对来讲最成熟,对外部应用程序支持的情况最好,这也是为什么IE外壳的浏览器非常多的原因之一。从我个人的经验看,越了解IE,越发现其设计的巧妙之处。
Oprera的Presto,我用Opera不多,不好评论;
WebCore和khtml 本身没有本地Window版本,这限制其在win32上的普及,不过,由于khtml本身不大,也许在移动设备上存在市场机会。
Gecko 核心设计的相对成熟,在无法获取源码的情况下,开放程度仅次于IE。由于其本身Open Source。实际上是目前开发程度最好的浏览器。Firefox的扩展能够给浏览者带来完全不同的浏览体验。我个人因为接触的比较多,对于Gecko的缺点比优点了解的可能更多一些。其中,最大的麻烦是系统各部分和JavaScirpt绑定的太紧,导致很难加入对新的脚本语言的支持;其次,应该承认微软 IE的很多设计方便了网页开发人员的开发,而Firefox在这些地方做的还很不够,当然这里里面有技术上的问题,也有法律上的问题。

Ericlee:国内许多浏览器开发都是外壳开发,请谈谈Gecko内核开发在技术上与外壳开发会面对哪些不同的挑战?
李沫南:浏览器的外壳开发和内核开发完全是两个不同的领域。相对而言,我认为内核开发更简单一些,因为其用户需求简单而明确,面对的使用者也都是程序员;外壳开发要面对最终用户,要考虑适应不同的用户使用习惯,特别是还要和各种弹出广告的网站做斗争
在技术上,其实内核开发和外壳开发很多地方是相通的,我认识的一些外壳开发者可以在非常短的时间内成为Gecko内核的开发者。不过内核开发和外壳开发还是有很多不同的,其中最大的区别在于引擎的可信程度,在外壳开发时,可以假设完全信任渲染引擎,假设其没有Bug;而在浏览器内核开发时,这些假设不存在。另外,对于程序员的要求也有很大的不同,特别是浏览器的DOM、插件、Layout和JavaScript模块,这些模块的部分代码对于性能的要求非常严格。我曾经犯了一个错误,在发行代码中多写了一句调试用的printf,结果导致CPU占有率增加了接近30%。而同样的问题,在外壳开发中则很少会遇到。
同样,在外壳开发中的鼠标手势、广告过滤和书签管理等功能在内核开发中根本不会遇到,可以这么认为,虽然外壳和内核都是浏览器开发,但实际上是截然不同的两种软件。

Ericlee:目前市场上有许多基于Gecko内核的浏览器,请谈谈你对他们的看法?
李沫南:市面上Gecko内核的浏览器主要分两类,一类是以Mozilla Firefox为代表的,用XUL作为界面描述语言的浏览器:这类浏览器往往继承了Firefox扩展性好的优点,早前的Madfox和Albatross就是这一类型的浏览器。

另一类是使用本地图形库作为界面的Gecko内核的浏览器:其中有Linux平台上epiphany、Galeon等;在win32上由Orca Browser、K-Meleon等。
一般而言,采用本地图形库的浏览器资源占用较少、速度相对较快,这一点和IE外壳浏览器一样,不过缺少了采用XUL作界面带来的扩展性。同时,由于Mozilla的嵌入接口提供的对外接口相对有限,导致目前使用Gecko做内核的采用本地图形库的浏览器的功能都相对有限。
其中,Win32平台上相对比较好的是Orca Browser,其实现了对应于IE平台的浏览器 Avant Browser 90%以上的功能。

Ericlee:Firefox 这两年越来越引起人们的关注,去年11月发布的1.5版非常的成功,请您谈谈对Firefox浏览器的看法。在技术上比Trident内核浏览器有哪些优势?
李沫南:最大的优势,全部源代码开放
在渲染方面的优势,由于Firefox使用了动态布局引擎,其显示网页内容的速度比IE 快的多。这个我认为是Firefox最大的有时,显示网页的速度快也带来了浏览者工作效率的提升。
安全方面,我不认为Firefox会比IE好多少,就其实现上,也并没有为安全做特别的设计。如果FF有IE一样的用户基数,也会有同样多的漏洞。不过,由于开源的原因,用户基数的增加同时也会带来开发者的增加,考虑到这些因素,总体而言Firefox将更安全。

Ericlee:许多人都说Firefox2.0比1.5版并没有什么进步,你是这么认为吗?
李沫南:2.0的代码我还没有时间仔细研究,不过评价一款有自己内核的浏览器,最终界面仅仅是一个方面。浏览器引擎实际上更接近.net和JavaVM的角色,就想你很难通过javaVM的命令行界面来评价JavaVM的改进一样,你也很难通过最终用户界面来评价一款浏览器内核。
Ericlee:从开发角度看,比如对DOM里的对象原型的扩展,Firefox与IE哪个浏览器的扩展性更好?
在两个技术层面有两个不同的结论。在内核层面,在同样都有源码的前提下,Firefox对DOM对象的扩展没有IE方便,这也是过去一直困扰我们的问题;不过在JavaScript方面,Firefox比IE强大,早期的Albatross其中有一部分IE特性的支持就是通过脚本来实现的。


Ericlee:微软重新对 IE浏览器的投入, 使浏览器市场竞争变得更加激烈,你如何看将来的浏览器发展方向?(浏览器除了作为网络内容阅读,与应用程序结合的角度看,会如何发展?)
李沫南:我个人认为,未来浏览器终将消失,扮演和.net平台和JavaVM类似的角色。

Ericlee:你如何看待国内的开源浏览器开发氛围?
李沫南:其实,开发浏览器内核并不难,至少没有大家想像的难,比开发操作系统内核简单多了。一般一个有中等c++开发经验的程序员学习1-2个月就可以上手。至于具体能作到什么层次,需要看个人的努力程度了。至于开发Firefox浏览器外壳(做扩展)则相对简单一些,有一定的网页制作基础就可以了。
国内的开源浏览器开发氛围,怎么说呢?和国内的开源软件的大环境很像,公司的领导还很难接受自己投资开发的软件拿出去让其他人“白”用,而国内的开源浏览器开发最大的问题在于高质量的开发人员太少,当然,这可能和国内的大环境有关。如果不能很好的解决程序员的生存和发展问题,开发人员短缺的问题将一直存在。

Ericlee:可否向广大软件开发者分享一下你的软件开发成功经验?
李沫南:我现在离成功还很远,只是一个合适的卒子放到了合适的位置而已。{具体还需要增加,主要强调数学和基础知识在程序开发中的重要性}
 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1361531
Jacky-Q
千年狐狸
千年狐狸
  • UID6896
  • 注册日期2005-06-20
  • 最后登录2012-07-23
  • 发帖数1076
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2006-11-04 13:30
Ericlee...这个名字好眼熟.
为了节省精力,再也不去理会发帖数少于10的人提的问题了.
CrossBud
黄金狐狸
黄金狐狸
  • UID7038
  • 注册日期2005-06-29
  • 最后登录2016-08-31
  • 发帖数5948
  • 经验12枚
  • 威望2点
  • 贡献值40点
  • 好评度20点
  • 社区居民
2楼#
发布于:2006-11-04 13:30
总体来说还是不错的,不过我觉得程序员的视角和从用户出发的产业运作视角还是不同的
比如对于最终用户来说,个人就浏览器发展方向上和他有着完全相反的见解
msky
千年狐狸
千年狐狸
  • UID14649
  • 注册日期2006-09-21
  • 最后登录2023-04-03
  • 发帖数2959
  • 经验166枚
  • 威望0点
  • 贡献值12点
  • 好评度9点
  • 社区居民
3楼#
发布于:2006-11-04 13:30
不错,学习了一些东西
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-04-29
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
4楼#
发布于:2006-11-04 13:30
的确是一个有见地的人
Firefox More than meets your experience
Jshow
小狐狸
小狐狸
  • UID16288
  • 注册日期2006-12-17
  • 最后登录2006-12-25
  • 发帖数28
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2006-11-04 13:30
Jacky-Q:Ericlee...这个名字好眼熟.回到原帖

有点想大陆FX界的名人Eric Chu
Jshow
小狐狸
小狐狸
  • UID16288
  • 注册日期2006-12-17
  • 最后登录2006-12-25
  • 发帖数28
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
6楼#
发布于:2006-11-04 13:30
不知道楼主给的地址是不是原文啊?
yjhdeys
火狐狸
火狐狸
  • UID22704
  • 注册日期2008-01-21
  • 最后登录2010-03-12
  • 发帖数140
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
7楼#
发布于:2006-11-04 13:30
现在才了解啦一些  不说我还是小白呐
soze
小狐狸
小狐狸
  • UID28205
  • 注册日期2009-03-08
  • 最后登录2012-08-05
  • 发帖数17
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2006-11-04 13:30
很中肯的访谈
游客

返回顶部