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

共:💬73 🌺137
分页树展主题 · 全看首页 上页
/ 5
下页 末页
        • 家园 回肉猫,兼老成都。

          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这么完整。

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

              因为看见idl了

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

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

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

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

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

                • 家园 这个其实不难

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

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

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

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

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

                    • 家园 你没太懂我意思

                      我的意思就是使用工具生成不同环境的特定信息文件,包括编译器相关的native的东西都可以处理。 这个东西其实在c++里面也有,我看过一些开源的小玩意就有。

                      只要规划好就ok了, dsw,sln什么的都可以生成么,反正都是文本文件。这样做确实方便了不同开发环境的用户,尤其是初学者,否则很多人可能拿到源代码根本无所适从。

                      在java应用里面也经常有类似的要求,针对不同平台编译发布不同版本。特别是开发手机类应用的时候,不同型号的手机差异相当,这时候就需要从分利用工具来做条件编译打包。有时候不同的开发人员有不同的开发环境需求,我们从版本工具拉下源代码以后,也是使用特定的脚本工具生成对应的IDE相关配置文件,开发人员直接导入自己ide就可以run了,而手工进行设置,不当费时间,还很有可能出错。

                      这些都是简单的重复体力劳动,为啥不让程序去做,要人去做?

                    • 家园 del
                  • 家园 所以Chrome 用了 SCons

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

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

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

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

      • 家园 呵呵,FIREFOX的源码俺玩过~~

        标准的GNU源码编译方式

        ./configure

        make

        make install

        在windows上也一样(可能不需要make install).这是一种跨平台的方法.

        不过有一点,这种默认的方法的配置选项不太好,你可以修改.mozconfig文件来配置编译选项.

        chrome是怎么个样子我不知道,不过mozilla为了提供一个跨平台的应用程序框架,可是做了不少工作的.基于这个框架,开发了firefox,thunderbird等等一堆"鸟"玩意.

        老兄要是对mozilla感兴趣,可以去http://developer.mozilla.org/看看.设计确实很精巧.而基于mozilla框架开发程序,也挺有意思,xul+javascript,简直就跟写HTML一样简单.

      • 家园 为啥叫Chrome?

        Mozilla的一个Extension而已?

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


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

Copyright © cchere 西西河