五千年(敝帚自珍)

主题:【原创】Chrome程序初探(序) -- 素里太守

共:💬73 🌺137
全看树展主题 · 分页首页 上页
/ 5
下页 末页
家园 那个料是什么?SMG?

越看代码心越虚,越写帖子手越软。

家园 FIREFOX在WINDOWS下编译应该用CYGWIN吧

我没用过,瞎猜的。有名的开源项目(比如LINUX内核)的门槛都相当高,因为里面真正写CODE的大都是在大公司里上班职业干这些的,不是在业余时间玩票的。这种情况下只是业余玩就会感觉困难,因为时间不够,文档太少(这个是管理的问题),和你的水平如何倒是没多大关系。

从这个意义上说开源项目有点偏离了方向。

家园 Mozilla/Firefox 不是纯编译的

FireFox 主要的外观行为都是通过 XUL+XBL+JavaScript 来完成的,这些都给予一个基本的Gecko渲染引擎。 从某种程度上说, Firefox浏览器扩展其实和浏览器的界面本身没有本质的区别,这也是为什么firefox是目前扩展性最好的浏览器。

Chrome 没有看过代码,所以不敢妄加断言,但是最起码IE的方式就和firefox不同,所有的组件都是COM,当然都是通过C++来完成的。

对于 Firefox 而言,目前还没有一个ide能够同时搞定 C++/IDL/JavaScript/XUL/XBL/DTD/CSS, 在这种情况下,即便给你一个 .SLN 也没有多少实际上的意义~~~

家园 回肉猫,兼老成都。

2肉猫:

不管外观行为如何,对OS来讲FIREFOX首先是个进程,那些XUL+XBL+JavaScript不过是被FIREFOX进程装进来的数据。从这点上讲,IDE同时搞定C++/IDL/JavaScript/XUL/XBL/DTD/CSS是没有必要的。俺发感叹的目的就是想找个俺熟悉的工具来剖析静态的链接和动态的调用关系。当然,俺也可以搞点“特殊手段”,比如Image File Execution Options。这个吗,简直就是霸王硬上弓,不够绅士风度。

所谓扩展性的好坏取决于掌握开发工具和手段的人群的数目。

无论如何,你的帖子是本线目前最有“质量”的回帖之一。

2老成都:

看了FIREFOX的开发网页,装了CYGWIN.不过看了这种windwos上的“仿真环境”一点也不来情绪,起码现在不想去掌握这个东西,还是直奔俺的CHROME主题。

一并谢过,送花。

家园 Firefox XPCOM 的作用就是避免静态链接

十年以前这种基于组件的模块化编程技术还是很时尚的! 主要是Microsoft COM取得的巨大成功。

Mozilla主要还是借鉴了COM的概念,创造了XPCOM。并广泛应用于Gecko引擎。基本上来说 在Gecko当中,主要都是通过接口进行xpcom编程。

不过目前这种,二进制级别上的模块化编程好像已经不时髦了,目前mozilla对这种完全的接口化编程也不敢冒了! 下一代的XPCOMGC 实际上是倒退了一步。不强制要求接口化编程,编程的语言也已经退化为C++和JavaScript,其他语言(如:Python)的支持都将会被逐步拿掉。无论怎么说 Gecko对于一个新手都是一场恶梦。需要大量的基础知识,同时又没有好的IDE来支持。就好像要求你用mfc编程,但是又不让你用VC6一样。感觉肯定是很痛苦

其实无所谓是啥东西,能花点儿时间好好看看学习学习都是很好的。

P.S. WebKit for Windows 的 porting 也不错。可惜只是一个Web引擎,没有Chrome这么完整。

家园 所谓事务之螺旋上升。

目前技术手段早已经是你中有我,我中有你,没有一个特别明显的界限。但一个明显的问题是GOOGLE为何为VS的开发者提供各种SLN和VCPROJ文件?难道仅仅是开发手段的不同吗?----背后更深层次的市场推广策略?

不管如何,得“人心”者得“天下”。这里的人心就是广大的用户和许多默默无闻的程序员。充分体谅用户(Windows 程序员)的感受,Google的理念再次在CHROME中展现。

家园 确实是手段不同,没法给sln啊,除非移植时是用VC重写

那帮人是在非win环境下写的程序,天然就没有SLN之类的东西,如果移植到windows时是用vc编译的,那倒有可能提供sln,比如python就是(不过即使这样也有不少人是给个makefile.win),而如果赶上在windows下也是用gcc编译的,那显然不可能有sln之类的玩意,很大的工程多数人都不愿意用另一种编译器重来一遍吧。

家园 这个其实不难

简单做一个工具生成相关文件就可以了,关键是想不想做而已。

比如在很多java的开源项目里,就会同事提供几种ide的项目文件,虽然作者可能只是emacs来进行开发。

家园 先读文档,再读代码,然后再读文档......

杜先人教导我们:读书破万卷,下笔如有神。华教授说:读书先由薄到厚,然后由厚到薄。

先前说Chrome的文档读了个7788,实在是孟浪的很。而后开始读代码,读的文档又忘到爪哇国里去了,简直就是在读“浆糊书”。然而再读文档,思路又开始清晰了。希望自己的帖子不要是“浆糊书”,可事情那里是这样的简单。要不,咱也去喝口水?

Chrome的提纲内容已经从7个变成了9个。怎么下笔?

俺准备在本线中保留提纲内容的“普及版”,另外再开9条线对应提纲的9项内容,更加详细地讨论其中的代码。

各位河友,土鳖抗铁牛。

家园 所以Chrome 用了 SCons

SCons / CMake 这样的构建工具,实际上提供了这种可能性。而且极大的简化了劳动强度!

家园 不是的,java编译器都一样,C编译器可不同,尤其是VC

遑言跨平台,就是同在window上VC跟C++Builder用的语法细节、具体实现都不一样,光准对IDE写个文件运气好也能凑合,但要发布就得把代码看一遍,看看有没有用到编译器特性的地方

PS:其实微软自己的程序大多不也是有makefile、source,却没dsw、sln

家园 del
家园 熊仔莽撞的认为XPCOM就是CORBA.

因为看见idl了

家园 想找sln就看看gluezilla或者mono下的东西

那里面有。NET1.1的sln

家园 嗯,XUL这个东西跟微软的XAML有的一拼

都是用标记来规划界面的。Gecko的引擎好像是gtk还是什么的。以前河里有人说,mac在win下的软件就是运行在gtk还是什么的下的。

全看树展主题 · 分页首页 上页
/ 5
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河