显示标签为“Google”的博文。显示所有博文
显示标签为“Google”的博文。显示所有博文

2009年3月25日星期三

浏览器大战正当时

最近关于浏览器的新闻真可谓满天飞,这不IE8终于面世啦;Chrome1.0正式版也早已推出,Chrome社区正忙乎2.0及linux版本呢;Safari可也没闲着,才不久也来了个Safari4.0beta版,引得大众一番轰动;Firefox可也不断的忙乎着升级,从3.0一步一步升到3.0.7哪,以目前的势头可没暂停终止的迹象。。。

再说啦国内上网本可炒得不一乐乎,从供应商到硬件平台,甚至到用户的使用等等,可惜真正走到用户手中,或许还得要有些日子,其中一直让人好奇的是上网本究竟使用哪款浏览器内核,对用户而言仅仅上上网浏览浏览新闻、逛逛论坛、看看视频、参加参加网上社区就够了吗?有这样便宜的硬件平台及好用的浏览器吗?

如此林林总总让人目不暇接,于是在沉寂了一段时间之后,想借此机会总结总结自己的一些使用体会及对浏览器今后发展的一些看法。

一、各款浏览器大比拼
  • IE8
从IE8正式版本推出后的第一时间,就下载试用过它,经过一段时间的对比测试,第一时间使用的感受如下:
在浏览器大混战中IE8正奋力追赶,几乎没有独创或值得大说特说的新特性,几乎就是在模仿或抄袭其他浏览器受人欢迎的特性如多页签、多进程、web开发人员工具等;

IE8虽然在很多方面有所改进但仍然是IE系列浏览器,关键方面没有质的飞跃,好的方面有持续支持已有的框架、风格、设置、扩展等,令人诟病以久的W3C标准支持及推动仍举步艰难,这不ACID3测试还是保持在30分左右的水平呢?

经过一些测试发现其加载页面速度及占用资源方面,与Chrome相比仍然有一定的差距,总体而言Chrome要想超越IE系列浏览器关键要在扩展方式及应用方面向IE、Firefox学习,当然还要有用户推广方面更大的努力;

IE8虽然看起来步伐不是很快,但在其拥有庞大的用户基础之上进行稳步推进是非常值得肯定的,特别是它保持了对原有扩展的支持的基础之上,实现了多进程及安全方面的加强。从目前看来要想IE浏览器使用WebKit内核简直就是痴人说梦,忽悠忽悠而已,因为微软仍然对Web采取封闭而非开放合作的态度。。。
  • Chrome
Chrome浏览器自去年九月份推出以来就属当红炸鸡啦,赚足了眼球,当然Google及Chrome社区其实正不余遗力地加强Chrome浏览器的功能及满足用户的潜在需求及对广大网民的承诺,正与其一位开发人员所讲由于目前的浏览器太差,从而有想要开发浏览器的驱动力;

到目前为止其稳定性相比测试版本有了较大的提升,加载速度方面也算佼佼者啦,唯一的缺憾在于其扩展的支持,从其实现架构及WebKit内核来讲要达到类似IE ActiveX或Firefox Extension那样的方便也许难度不小;

令人值得称道的是其linux gtk版本或许不久就能面试啦,对linux用户来讲是一大福音;

  • Safari
Safari4.0beta版的发布有点出乎人们的意料,Apple在其网站Safari全新特色上对其特性进行过一番"吹嘘",通过仔细阅读其内容,发现Apple也似乎正努力的打造一款极具个性的Safari浏览器,其中从Chrome中学了不少东东如页签的位置、TopSite等,当然其中令人有趣的页签拖动还是独特的,还有类似的界面及操作风格延续了Apple的优良传统;

虽然其JavascriptCore内核没变,但起了个商业上的名称nitro,一时真让人莫名其妙,也许只要Apple自己知道改名的真正原因;

虽然其ACID3测试的得分在90分以上(Chrome80-90,Firefox70多一点),但其在Windows上的资源使用情况就没有宣称的那么好啦,特别是拥有Adobe flash的页面上;其架构上仍然没有使用多进程,与Firefox一样,但其消耗内存及CPU可比Firefox高的多,并且还不稳定,也许是Beta版的原因吧,看样其要想在Windows上分一杯羹难度不少;

那么Apple为什么还要"折腾"Safari哪?我想或许其算盘在Mac及iPhone上呢?Apple也许还担心哪天Chrome杀到Mac平台呢?要是现在不紧跟浏览器的发展,到那时Chrome壮大啦,自己又没有守住自己的领地哪滋味可就真不好受,再说Chrome使用的WebKit内核可是由Apple主导开发的呢?改个Javascript引擎的名字为Nitro,或许相比JavascriptCore、SFX起来,更好听,更像V8那样容易让人记住;

WebKit的发展来源于Apple,当然也离不开Apple,其对W3C标准的支持及扩展付出了极大的努力,这一点让人钦佩,特别是其对ACID3测试所作的努力及Javascript引擎实现方式的突破;

在这场浏览器大战中,没有Apple,没有WebKit,也就没有了大战的平台,虽然目前结果未知,但WebKit内核本身非常值得关注,也许WebKit内核的发展是大战成败的关键,有了Google、Apple、Adobe等的参与与使用,WebKit内核的市场份额经过大战之后肯定会得到大量的提升,其发展同样令人瞩目;

  • Firefox
Mozilla自从推出Firefox1.5,就逐步的从上一次失败的阴影中走出来,到了2008年推出Firefox3.0开始使用Gecko1.9,才让人真正的感觉到凤凰涅磐的滋味,那些家伙,狂热的技术追逐者,令世人刮目相看,其架构、其扩展性、其开放性、其开拓性,成为推动Web技术发展与应用的根本;

正可谓Firefox是这场浏览器大战的导火索,由一群对技术孜孜不倦的家伙发起对Web发展及应用的号角;这不其倡导的多页签、xul、xbl、npapi、cavas等,在Firefox上得到充分的应用与展现,有些方面IE、WebKit还在苦苦的追逐呢;网上有人评论Firefox离开了Google财务的支持,也许即将面临死亡,听起来有些骇然,从商业角度讲或许他是对的,但Mozilla社区对Web技术的开拓创新等却不会那么轻易的死掉,只要他们坚持这条道同时考虑考虑用户感受,先锋不会再次成为先烈,饿死的或许只会是那不思进取,抱残守缺的家伙。。。。

二、浏览器发展方向
浏览器的发展推动Web的发展与应用,同时Web的发展与应用促使浏览器更加的强壮,浏览器的发展离不开Web的发展,目前看来其发展方向应该在于:
  • 更加的标准化
也许IE被逼着卷入这场浏览器大战,不如说被逼着卷入标准化大战,Firefox、Chrome、Safari、Opera都自觉不自觉的坚持w3c标准,并且还不断的推动标准的发展,从目前的态势看Microsoft不得不应战,虽然极不情愿,也许大势所趋吧,识时务者为俊杰;

Firefox、WebKit正不遗余力的推动html5 video等标签、增加工作线程、跨域名XmlHttpRequest等,或许未来的标准就此产生;

  • 更加的开放
上面提及的几个浏览器大部分搭乘开源的顺风,实施开源,公开透明,行自由开放之风,这样Web的发展及应用或许更加的开放;

  • 更加的复杂
由于Web应用更加的复杂及多样性,对浏览器的要求及本地系统、硬件的要求越来越高,所以多进程的出现,从另一个侧面体现其复杂性及可靠性要求的提高。试想一个程序,它可使用来自世界各地形式各异的Web数据,同时尽可能的按照同样的方式展现给不同的用户,虽然有公共遵守的W3C标准,但要求其高效、可靠的完成,其实现本身的复杂性就可想而知了,如果Web数据进行更进一步的多样化,那其复杂度自然增加;

  • 小型设备化应用
由iPhone开启手机浏览互联网的新风,如火如荼的andriod、QtWebKit、Fennec、MiniOpera、UcWeb等正大力的拓展浏览器的嵌入式应用,上网本正是在这样的背景上进入人们的视眼,上网本还没火起来,曾经的维纳斯电视上网计划或许在不久的将来会真正的走进人们的客厅;这样看起来上面提到的浏览器大战似乎才刚刚开局呢。。。。


三、如何把握浏览器开发及商业应用
目前浏览器的开发主要体现在IE内核、Firefox Gecko内核、WebKit内核,从历史的角度看IE内核的扩展更加的容易,面对的PC用户庞大,但同样仅受限于windows平台使用;

针对Gecko内核,最近几年的extension快速扩展及应用普及加速了Firefox的发展与应用,并且得到一些开发者及网民的好评,同时其可应用于Windows、Mac、Linux平台,其扩展性令人赞叹;

而WebKit内核,发端应用于Mac平台Safari,名声大振于iPhone,Chrome的出现将其推到风口浪尖,其特性鲜明,虽然其移植性较好,可移植到不同平台,包括嵌入式应用,但其扩展性就没那么方便啦,有些平台对NPAPI插件的全方位支持也显得那么的难得,也许需要给他们一点时间吧,目前看来要想对其进行一定程度的开发难道还是不少。。。

从以前的历史经验中我们都知道浏览器这样一个软件,受到广大用户的青睐,可没有哪家大公司直接从中获得过与其实际地位相符的利润,包括免费捆绑销售的IE及Netscape等等,从这点看来与Office相比太令人惭愧啦,可见开发浏览器可不那么好赚钱,商业模式不是那么直接,那么写写扩展是否能获取一定回报哪,看看以前IE ActiveX的流行,或许能让我们打开一片联想的天地。

从更大的角度看,直接从浏览器本身来收取费用如Opera及以前的Netscape,是比较难的,关键得从应用服务来收费,如Firefox从内嵌Google搜索栏来获取收费,Adobe从嵌入的Flash插件来获取丰厚利润回报,但是一个好的扩展应用则需要对浏览器本身及其应用的充分理解。

也许上网本及各式各样的嵌入设备的出现再加上捆绑免费的浏览器,正是浏览器获取应用及回报的另一途径。

在浏览器扩展的同时及时提供优秀的Web应用或许是获取商业利润的又一方式,这或许是Google、IBM等大力推广云计算的良苦用心啦。

面对如此林林总总的方式,作为一个开源浏览器的爱好者,你找到了利用浏览器或其技术实现利润收入的方式了吗?也许大家还有更好的方式,不免大家一起分享分享。。。

2008年9月5日星期五

体验新鲜出炉的Google Chrome浏览器

2008年9月2日新一款浏览器终于诞生了,她的名字叫做Chrome,出自名门之家Google,早在N年前就听说Google想推出自己的浏览器,但经过多年的励精图治,其庐山真面目终于大白于天下,一时间网上各种测评、预言等等满天飞,经过这几天的学习研究,作为一个开源浏览器内核爱好者,从自身的角度来学习观察它,现将自己初步了解的Google Chrome浏览器总结如下:

一、学习Google Chrome Comic
Google为了有效宣传Chrome,通过漫画的形式来表达自己对当前浏览器的一些看法,以及他们的实现方案即Chrome,总结起来其主要内容如下:

1、Stability,Testing and the Multi-process Architecture
其中着重描述浏览器稳定性的要求及其独特的多进程架构,同时强调Chrome经过Google搜索引擎抓到的大量不同页面测试,其稳定性拥有独特的优势,这一点是其他浏览器的测试无法比拟的;

从技术的角度来讲,采取多进程架构来实现浏览器,目前来讲确实是独一无二的,是其他浏览器无法比拟的,但多进程架构本身在Yahoo!Widget及Apache等早有成功的应用案例,技术难度没有太多的创新,相对多线程架构来讲,增加了大量IPC方面的内容,其实IPC的实现与应用在OS的实现当中拥有大规模的应用。

但多进程架构是否真的象Google所宣称的那样稳定,会不会带来诸如CPU使用过高,整个浏览器资源是否太多?特别是window句柄是否过多?因为浏览器毕竟是个图形界面程序,而不仅仅是网络程序。

通过对其Process Models初步了解,其体系上也考虑到诸如Process-per-site-instance、Process-per-site、Process-per-tab、Single process等方式的选择,但其整体效用如何还需实践的考验,当然其出发点还是够强大的,正如N年前他们设计浏览器时所宣称的那样,浏览器就是一个互联网平台,作为一个互联网平台所能显示的页面及应用越来越多,其稳定性应该是首要解决的问题,他们采取的方案就是向OS学习,采取多进程,由一个主进程来管理浏览器的一切。

2、Speed,WebKit and V8
从漫画当中,我们可看到Google对浏览器的方方面面都早有相当程度的研究,但WebKit渲染内核是否速度最快,其实值得商榷,但其代码简洁,方便学习开发,倒觉得真的很对。

至于V8对javascript的实现是否真的很快也很难讲,虽然它对javascript的实现方式有所调整,但是否真的有那么高效率很难讲,毕竟似乎没听说过它在其他地方使用过并有良好表现。

其中网上就有很多人对其对其它javascript的实现如SpiderMonkey、JavascriptCore的评价特别是垃圾回收方面有很大的争议。

3、Search,UI
这方面Chrome本身应该没有太大的创新,虽然其提出标签页放在最上方,但其好多想法早在Firefox、Opera中有所实现。

4、Security,Sanboxing and safe Browsing
对于安全的考虑,其中sanbox及phishing等方面,Firefox早有相应的处理机制,只不过其sanbox可扩展到进程层,有了一定的提升,但其本质还是基于同源策略等,同时根据V8的介绍其中提供了对对象方法、属性权限的控制管理,这一点比JavascriptCore要强大,不过SpiderMonkey其实早有提供,至于其具体Security实现是否也有诸如Firefox中的SecrurityManager还须继续观察。

5、Gears,Standards and Open source
其中特别提到对Web应用的扩展是基于Gear来实现,由于前期对Gear的实现扩展方式未曾了解,可能以后须加强对这方面的学习。

但总的说来,其扩展性应该与Firefox相比,还是有很大差距,Firefox中提供了一整套的xpcom、extension、xul等可以让开发者从浏览器的方方面面来扩展,但Chrome因为其渲染部分使用了WebKit,要让开发者象扩展Firefox那样方便的扩展Chrome浏览器应该几乎不可能。目前来看要扩展Chrome需要使用Gear或相当通用的NP Plugin技术。

二、切身体验使用Chrome
2008年9月3日一早第一时间就下载试用了Chrome浏览器,感觉其体现了Google一贯的界面简单,操作简便的风格,并且省掉了很多操作如全屏、打印预览等,一时间觉得让人无所适从,同时页面加载速度及内存占用等方面并没有太突出的表现,特别是打开20个以上的页面后,再在不同页签之间切换,往往有停顿的感觉及空白页面的现象出现,这一点在Firefox3中那怕是50个页签也没有出现类似的现象。

通过地址栏在不同页签中打开20个不同的网站,对比Chrome及Firefox3的使用情况发现,Chrome的加载速度至少比Firefox3慢20%,而整体占用CPU及内存资源,Chrome比Firefox至少多20%,对计算机系统的影响也较大,在加载完网页后不进行任何鼠标操作的情况下,Chrome主进程或Plugin进程还继续占用大量CPU,而Firefox3中则几乎不占用CPU,或许Chrome整体架构或架构对Flash Plugin等方面的支持还存在或多或少的问题。

总之毕竟是第一个测试版本,能有不崩溃及正常使用的效果,比上次第一个Safari版本发布的效果好多啦,特别是对中文、英文等不同语言的支持方面。从初步使用的感受来看,应该还是挺不错的,应该可打80分以上。

三、初步研究Chrome源代码及相关网站
第一时间阅读了其开发网站Chromium developer Documentation中的相关内容,其中对相关内容的说明可谓专业而详细但不够全面,不愧为Google主推的Open Source,有兴趣的话可以好好阅读阅读。

其中对于Chrome的编译与调试一篇更是特别实用,按照其中的说明经过30-50分钟就可轻松的编译出一个Chrome,这一点在Firefox、WebKit等开源项目中是很难办到的,同时其中包含许多第三方库的编译,而不象一般的开源项目往往需要将第三方包从其他地方下载再编译,充分的说明了Google在Open Source方面的大力支持,对开源社区来讲应该是个福音,它极大的方便了开源项目的开发,从这点讲我们应该感谢Google。

通过初步分析其源代码及其架构说明,Chrome浏览器的主要特别之处在于多进程通讯、管理及V8,并将WebKit嵌入到其中。

而与WebKit相关的网络库使用的是WinHttp、图形库使用Google自己提供的skia,而不是苹果的CoreGraphic或者Cairo等,同时对WebKit的Port方面也是自己提供的一套Interface,这样看来Chrome对WebKit的使用主要是Render Layout及页面处理流程方面。

至于其他模块诸如libxml、libxslt、libjpeg、libpng、sqlite、pthread等与WebKit中使用的相一致。今后若有时间可对其进行进一步的分析。当然其中包含很多Google自己提供的V8、Gear等等。

四、总结
通过对漫画及相关文档的学习研究及实践等,虽然Google强调其开源、稳定、安全、扩展等特性,但其架构本身对Web方面并不象Gecko那样非常开放,Gecko通过对xpcom、xul的支持大大的扩展了Html及其应用支持,这一点Gecko应该还有相当的优势。

虽然从Google看来这正是其看不上Gecko内核而采取WebKit内核的原因,因为相对简单的WebKit内核还在Android方面也有优势,而Google对RIA方面的支持,也许没那么大,其支持方式应该更像Adobe AIR一样,而不象Gecko那样支持xul一样。

从整个Chrome浏览器中体现了Google一贯的作风,简单,代码也要简单,而Gecko它太复杂,复杂得让人难以掌控。

自从Google推出Chrome之后,各种评论特别多,尤其是Google与Mozilla的关系,以及Firefox的发展,有些人悲观地预计3年后Firefox将被Chrome超越甚至让人遗忘。

但是通过初步的学习研究,个人感觉Chrome的实现方式与Firefox的实现方式还是有本质上的差别,Firefox以前获得大家认可的优势如安全、快速、易扩展等优势依然存在,同时很早以前Mozilla的开发者就认识到其在开放平台及易扩展方面的巨大前景及无人可敌的优势,也许Mozilla的优势就在这里,只要坚守住啦,目前看来Google、Microsoft都短时间内难以超越Mozilla这一点。

一点个人看法,希望能激起大家一点共鸣,大家都能更好的利用Web技术。

好好研究研究Chrome,她毕竟是个新生儿,并出自名门之家。。。。。

五、参考资源
Google Chrome Home