专访孙辉:从程序设计不及格到挑战软件开发禁地(上)

相信参加过 CSDN2007 英雄大会,或者关注过这场大会的朋友们一定会对大会第一天的“创业论坛”记忆犹新。在这个创业论坛中请到的各位嘉宾都是有着深厚沉淀的前辈们。

循着这次大会的痕迹,我们来到了孙辉老师的面前,孙辉老师曾是大学数学系的副教授,因为对软件开发无限的热情很早便投入对软件开发的研究行列中。对 Windows 有很深的认识,可以说是见证了整个软件行业在中国迅速发展的全过程。

这次我对孙辉老师进行采访除了因为他对软件开发的领悟是沉甸甸而有厚重感的原因之外,还因为他是 Tangram 的创始人。那你有没有想到过,这位追逐软件开发十几年的老程序员在他的大学时代计算机程序设计是不及格的;又有没有想到过当初的选择只为改变清贫的生活,我们讲述孙辉老师那极具份量的软件开发历程就如同翻开了一本厚厚的中国软件历史书。


孙辉 老师将自己的软件生涯划分成了六个部分向我们描述:

第一部分,学习软件。大约是 1984 年的时候,我们学习最基本的 Basic 语言,很不好意思,我的成绩是不及格,其实我的程序逻辑与我的思维习惯差别极大,即使现在也是一样,总是数学逻辑居于首位,因此,我走到软件界其实是一个人生玩笑。

我的大学同学也许都想不到我会从事软件开发。真正开始学习软件开发是 1991 年末的时候,作为年轻的数学老师是很清贫的,因此,学习软件开发的动机自然是改变一下生活状态,但事与愿违,我一直是以学习数学的方式学习软件,因此,一直没有改变生活的清贫,反而钻牛角尖,一直在努力搞清楚一些比较系统级别的东西,与实际的软件项目距离甚远。

这个阶段之所以难忘是因为女儿出世,我必须承担相当部分的教学工作(包括我爱人的),许多学生都是我最初的老师。我学习的起点就是 Windows SDK ,没有 C 语言基础,因此,啃下来这个东西,是我最得意的一件事情。

1994 年,当我在大学给计算机专业的研究生开设 Windows SDK 课程的时候,听课的学生中就有最初给我讲 DOS 操作系统的学生。我对 Windows 底层的理解基本就是那个阶段奠定的基础。

第二部分, Win95 的面世。 Win95 是影响我编程的最重要的东西,最早知道这个东西是通过一本很大的英文杂志,就是著名的“ BYTE 杂志”,这个杂志很大,每一页都相当于现在的报纸页面的大小,当时 Win95 还没有正式命名,其 Code Name 是“ Chicago ”, 1994 8 月,我是通过两套坏损的最早的 Beta 版安装盘将这个系统安装成功,尽管有几十个文件失效,但还是如愿以偿了,我给研究生上课的系统,就是用这个 Chicago ,当时听课的学生感觉到非常惊讶,有立体感觉的窗体,与 Windows 3.1 形成了鲜明的对比。

这个操作系统使我进入如醉如痴的状态,那个阶段,我对 VB3.0 VC++1.0 ,以及 Borland C++ 3.1 等已经非常熟悉了,然而新的 Win32 接口却十分陌生,因为 Chicago 仅仅是测试版本,相关的 SDK 是无法得到的,想起这些,真是感觉今天的开发者是多么幸福。

1995 年我们能够得到的面向 Win32 的开发工具就是所谓的 Visual C++ 2.0 ,是 Microsoft

Windows NT提供的,但还不支持的Win95 Common Control,因为当时的NT版本是3.1。即使Borland 及时提供了新的C++版本,但对Win95的支持也是很有限的,事实上,Win95后不久,Microsoft就有了Visual C++2.12.22.3版本,但局限当时的条件,我们无法得到。

我最终放弃 Borland C++ 是因为 Visual C++ 4.0 的出现,尽管今天有了 Visual Studio 2005 ,但我最难忘的还是 Visual C++ 4.0 ,这个编译器使得我几乎放弃了所有的其他东西,包括 Delphi Visual Basic Borland C++ 等等。

我最早接触 MFC 类库应该是学习 Microsoft C/C++ 7.0 的时候,那个时期 MFC 还非常的“小”, Microsoft 还没有正式推出 Visual C++ ,但 CObject 的基本轮廓已经形成,我对 MFC 突破性的理解肯定是通过 VC 4.0 版。 1995 年到 1997 年,是我对 COM 技术深入理解的奠基性性质的阶段,对 IE 编程技巧的积累基本就是那个阶段形成的。

第三部分,应该是 1997 年的后期,这个阶段我开始接触实际的大型项目,这个阶段差不多在北京交通部有接近一年的蹲点,当然,是以个人的身份,不能耽误学校的工作,因此自然很辛苦,每个月都要往返大连、北京。真正意义下的 WWW 编程是这个阶段开始的,用 C 语言编写 Microsoft ISAPI 扩展,在当时是很具有挑战性质的工作,那个阶段,没有今天的 ASP 技术,因此动态网页实现是用 C++ 实现的,比常规的 CGI 要有技术难度。 1999 年的时候,我基本形成了以 VC++ 为主,但也可以熟练驾驭其他诸如 Borland Delphi/C++ Builder ),以及 VB 等流行的开发环境的个人色彩比较浓厚的技术特色。

第四部分,应该是 1999 7 月,这个阶段我正在负责国家税务局的出口退税审核系统(金税工程的子系统),当时我在海外申请了 VBA SDK ,这是当时的梦想,我在 1996 年接触 IE4 早期 Beta 版的时候,就对脚本语言印象很深, VBA 最初的印象是来自于 Office4.0 ,但使我感到震惊的是 1996 年流传出来的 Excel97 Beta 版,其中 VBA 独特的 IDE 给我留下很深的震撼性的印象,我潜意识里有强烈的感觉,那就是开发自己的能够集成 VBA 引擎的软件系统。

VBA SDK 使我领略了软件框架的魅力,也的确感觉到自己技术深度的肤浅,曾经无所不能的“感觉”,忽然间荡然无存了, 1999 年 的那个阶段,给我最深的感受就是在技术上你真的看到大海了,那种个人渺小的感受,我至今难以忘怀。国家税务局的项目,对我个人而言是一次痛心的失败,但项 目应该是一个成功的项目,这个项目使我充分领略了技术与项目是完全不同的两件事情,虽然我可以延续这个项目,我谢绝朋友的挽留,选择了北京。

第五部分, 2001 年后。退税系统在 2001 年九月完成了,这个阶段最大的收获是使我认识到软件架构体系的逻辑结构。 Tangram 的萌芽状态就是这个阶段的产物,由于这个项目的复杂度,因此,在当时的条件下,我们能够实现 VC 开发的主框架与 VB 开发的业务界面动态对接应该是一件很不容易的事情,我也在这样的项目中实际的运用了多语言结合的编程模型,因此,一个懵懂的技术框架悄悄的形成了。

2000 8 月退税项目一期结束后,我开始考虑这个新的技术框架的结构, 2001 9 月,我带着这个框架的雏形来到北京,做了部分走访、调研,当时我住在北京灵图软件公司,那个时期灵图还是一个创业初期的年轻公司。离开北京后,我的决心差不多确定了,这个技术框架就是现在的 Tangram

第六部分,北京创业。北京创业是非常艰难的, 2002 年,携妻带女我们一家迁居北京,北漂状态一直持续着,伴随种种艰辛, Tangram 如同我的另外一个孩子在这样的环境中艰难的成长着。我的家庭、我过去的学生们以及一些科学院的前辈们(例如软件所的何川老师等等)给我极大的支持,直到今天他们依然是我坚定的支持者。

Tangram 到北京的时候,已经具备最初的雏形了,但作为一个新的构思, 2002 年的北京能够理解我想法的人很少,随着公司的失败,我必须面对各种各样的新问题,这些问题许多北京的创业者都必须无奈的面对, Tangram 的技术转折点也就是出现在这个阶段。由于公司出现问题,我与 Microsoft 的两个合同无法执行,进而我在 Tangram 系列中的一个关键的技术,即通用的 VBA 集成开发框架无法市场化。

2003 年九月,我不得不重新进入 Tangram 的新一轮开发,这个阶段是挫折、与沉淀并存的阶段,没有经历的人永远也无法体验,有人问我提高技术修养的关键是什么,我很难回答,如果必须回答的话,那么就是这种经历,缺乏这种经历,你很难上一层楼。这个阶段应该是最难忘、最有成就感以及最有收获的阶段。

我几乎是屏住呼吸听孙辉老师讲完了这段历史,“我过去很喜欢下围棋,现在已经差不多荒废了,因为时间基本被开发工作瓜分了。偶尔翻翻书架上的数学书,但往往产生一丝苦涩,毕竟一个永久的遗憾永远无法挽回了。”

不过软件专业与数学的渊源颇深,特别是基础数学中的各种数学结构,大体都是很复杂的架构体系,因此,就软件架构而言,数学专业对它有天然的亲切感,所以其实孙辉老师也并没有离开数学太远。对于自学编程语言,孙辉老师送给大家最珍贵的经验是“执着与经得起失败”,好的开发者必须执着,同时正确的面对失败。(未完待续)

究竟孙辉老师带给我们的Tangram是怎样的一份惊喜,敬请期待下一期专访:Tangram挑战软件禁地 构思插件体系引擎

 

你可能感兴趣的:(专访孙辉:从程序设计不及格到挑战软件开发禁地(上))