专访孙辉:大学数学系副教授挑战软件开发禁地(下)

Tangram挑战软件禁地 构思插件体系引擎

上一篇我们分享了孙辉老师深厚的软件开发经历,接下来我们就要进入Tangram,在这里面一起细细体会这些年孙辉老师对软件的理解和心血。

现在 Tangram 的开源部分有两个版本,一是 Tangram 的开源版本,另外一个是 Tangram Lite 版本,其中都包含了许多很实用的开发技术,当然,开源部分是整个 Tangram 框架的一个子集。那么 Tangram 到底是一个什么样的项目?从字面上看, Tangram 是 中国古代的游戏“七巧板”,这是典型的古代中国的朴素思维方式,即“以有限驾驭无限”的基本构想,中国古代的先哲们很早就有“金、木、水、火、土”繁衍世 界的认识,无论是“金、木、水、火、土”繁衍世界,还是“七巧板”,都是体现一种构造哲学的设想,另外一个类比可能是门捷列夫的元素周期表,通过这个周期 表,人们看到复杂世界的简单的一面。

Tangram 的基本出发点是,通过 COM .NET 组件形成的一个“基”,按照一个组合法则,形成一个“公共组件资源空间”,这个空间的成员是由有限个“ COM 、或 .NET ”组件形成的一个组合体。我们希望“公共组件资源空间”能够成为相当大的一类软件的公共基础,这意味着,这类软件支持“公共组件资源空间”中的每一个元素。

产生开发 Tangram 项目想法源于多年的实际开发经验,对技术、项目的积累达到了一个阶段之后我觉得软件系统的不可回避的一个问题是软件系统具备“不完备性”,因此, Tangram 最主要的用途是对这种不完备性的一个有效的补充。因为 Tangram 最突出的特征就是实现了一个灵活的软件插件引擎, csdn 的韩磊先生曾经建议将其命名为“逆向插件体系”,我觉得这是一个有趣的建议。

Tangram 的思路是作为一个“插件体系”的引擎,是一个十分值得期待的新颖的软件构思。 Tangram 框架的目标就是开发满足上述描述条件的软件系统,目前, Tangram 支持的“公共组件资源空间”是由“ COM 控件、 .NET 控件以及 C++ View ”对象作为原子生成的组合体形成的集合。

Tangram for IE Tangram 的第一个示范性的产品,作为这个产品的结果, Internet Explorer 将产生任意多个定制化的框架,每个框架都相当于一个“第三方”浏览器,如下图:


1:Tangram for IE,在IE框架中直接架构自己的软件框架

未来的规划是我们希望Tangram可以自然的与主流商业软件进行“桥接”,例如,Tangram框架与Office结合,作为一个概念图,我们可以给出一个实验阶段的运行截图:


2: Tangram Excel 结合,使得业务软件框架直接架构在 Excel 基础之上

另外一个概念性质的截图是TangramEclipse的结合:

3:Eclipse中的Tangram,图中兰色加亮的标签窗体中的框架结构来自Tangram

通过这些年来对于 MFC 的了解,孙辉老师个人坚持认为 MFC 很难在近几年内被淘汰。他说作为一个严肃的 C++ 开发者,对 MFC 提出批评的时候,一定是需要很熟悉 MFC 的,否则批评就一定是苍白的。

很多人都认为 WTL 是很优秀的产品,但 Microsoft 始终不给其正规产品的定位,这一点很说明问题。许多开发者在没有深刻认识的前提下批评 MFC 是一种浮躁的表现,几年前孙辉老师曾经在 CSDN 论坛中发过关于 MFC 方面的一个帖子,当时许多朋友都参与了探讨 MFC 的各个方面,从许多方面看, MFC 都是一个禁得起推敲的框架,大而臃肿是每个框架发展到一个阶段都必须面对的问题,作为一个研究课题,孙辉老师说:“ MFC 的批评者或许是 MFC 框架的最大受益者。”

“我觉得,无论你是否喜欢,在 Microsoft 平台上用 C++ 开发,至少应该批判的学习 MFC ,我接触过一些自己写框架的开发者,他们觉得自己的东西可以替代 MFC ,大部分的作品我觉得经不起推敲,经得起推敲的应该是那些熟悉 MFC 的作者的作品。 .NET 框架的类库结构可以看出许多与 MFC 相似的思路,这也很说明问题。”

如果要问“基于 MFC 编程认识到哪一点是最重要的” ?我觉得 MFC 的思想方法是十分重要的,著名的 QT 框架的许多想法就是从 MFC 框架借鉴而来的,很早的时候,许多人用 Borland C++ 类库与 MFC 比较,说 MFC 如何拙劣,但 MFC 现在还健在,但 OWL 已经消失了,面对一个经典的框架,本来就基础薄弱的我们,为什么有时间品评 MFC 的优劣,而不进行深入的学习呢?

我想对 Windows 平台下的 C++ 开发者说的是,如果你真的讨厌 MFC ,那么你应该耐心的了解这个东西,直到找出 MFC 令你讨厌的地方,如此,你才能够更上一层楼。

Tangram 中的每一行代码,都是孙辉老师经历的见证。在对 Tangram 做不断完善的过程中,孙辉老师意识到了仅仅有技术是无法成就一个产品的。通过交流其实有很多朋友都影响过 Tangram 这个技术框架。孙辉老师特别提到了 CSDN 的袁德俊先生,他的设想使 Tangram 框架中加入了 IE 插件的构造能力,在与哈尔滨的曲春雨先生的交流中形成了 Tangram 框架中灵活、自由的 IE 扩展框架, Tangram for IE 最后的技术框架的确定与 CSDN 的蒋涛先生、韩磊先生的不断磨合也有着极为密切的关系。

“人不能经历所有的事情,即使你具备相关的能力,但客观的环境会让你根本无法知道你更适合做什么,在不断的交流中,我捕捉到种种思考点进而促使 Tangram 不断的丰满。”孙辉老师这样心存感激的说道,

“我的教育背景也是产生 Tangram 项目的另外一个关键因素, Tangram 技术构思是开发者的盲点,其中的技术技巧不是关键的因素,构思点是关键的原因,我觉得形成 Tangram 的基本想法的重要因素之一是我是基础数学科班出身的背景。究其本质而言, Tangram 更像一个数学问题,只不过是用 C++ 解决的。”(全文完)

你可能感兴趣的:(专访孙辉:大学数学系副教授挑战软件开发禁地(下))