SHellweb项目是我4年以前(2006年),自己发起的一个用Perl编写浏览器的项目。
今天,我不得不宣布这个项目正式结束了。
开始这个项目的原因:我对于那时浏览器的各个方面都不满意,而又没有解决的方法,只能自己动手写。而Perl有现成的html解析库,又有cairo这样的底层绘图库,将这些东西融合起来应该很简单。
实际开发过程中,确实也是很简单。做一个简单的html渲染还是比较容易的。但是javascript解析器阻碍了我,用perl来编写一个javascirpt解析器还是比较困难的。
虽然当时想着可以用Perl来代替javascript的作用,来自由的操纵DOM是一件很美妙的事情;DOM的显示可以完全自己掌握也是件有趣的事情。可以自由的实现渲染方法,但现实是比较困难的。
所以,项目就一直耽搁下来了。
过了这几年,我对于某种语言的执着没有那么强烈了。也开始使用多种语言做开发。特别是我认识到了,对于脚本语言而言,确实有暂时无法迈过的鸿沟。所以,这个项目就相当于放弃了。
而今天,我来宣布shellweb结束的主要原因是:
1. 用Perl5来编写GUI客户端虽然理论上可行,但实际操作上不符合主流。perl5还是不适合于编写GUI客户端,无论大家如何尝试。例如:perl-gtk项目,win32-gui项目,opengl项目,最后的结果都证明了Perl5还是无法被普及用来编写GUI(虽然,这种尝试还是很有意义的,也证明了脚本语言编写GUI方面的长处)。所以,用perl5来编写浏览器这个GUI,从底层来说的困难还是难以逾越。
2. Chrome已经足够好了。 这是我宣布shellweb正式终结的主要原因。 Chrome推出了4.0版,我看过了。我认为Chrome这一版基本上提供了我想要的任何开发接口,除了编程语言必须是Javascript以外。Chrome的架构已经足够好了:底层用webkit做渲染,javascript引擎用的V8,提供HTML5支持(可以自由绘制图形,可以有socket连接),提供插件支持(完全通过JAvascript与HTML实现),在Javascript中提供更加底层的API给JAvascript使用。
总之,Chrome现在架构已经实现了我当初所设想的shellweb项目中应有的东西:使用脚本语言就可以编写任何东西。当然,这种实现是通过两方面的努力来完成的,第一就是HTML5对于HTML的扩展;第二就是Chrome对于整体软件架构的把握(chrome把javascript放在了首位,统一了开发形式)。
另外:我个人的感觉chrome还不是像firefox那样,firefox也是把javascript做为自己的编程语言。但是firefox有自己的xuL文件,这是一种xml格式的数据文件。而在chrome中,则完全是html、json格式与javascript。这种模式更加利于开发者的编写,未来也更容易扩展。
未完...
阅读(830) | 评论(3) | 转发(0) |