师道 | 张经纶:导师唐荣锡与中国CAD的启蒙年代
作者简历
原题
零落成泥香如故
中国CAD的启蒙年代
原载微信公号知识自动化
唐老在2020年仙逝,而他一生所热爱的中国的CAD产业乃至整个工业软件,正是在这个时候迎来前所未有的重视。一个真诚的学者,点亮一个产业,留下了满天星火。
唐荣锡老师(1928-2020)一生孜孜不倦,在海拔近4000米高的美国落基山上作笔记,写下所见所闻,1989年7月
2020年是历史上难逢的多事之年。除了新冠这样的灾难,也有个人的巨大痛苦。9月10日教师节那天,给唐老师居住的老人院房间致电节日问候,无人接听,有种不祥的感觉。刚刚进入十月,北京那边传来了唐荣锡老师驾着金秋的云朵仙逝了。因为疫情,种种限制,无法赴北京与先生告别。
第二天,我访问了唐老师女儿May。May一家也住在Palo Alto,与我们为邻居二十多年了。因为疫情,我们在May家门口隔着一段距离聊了许久。May哽咽着诉说,春节从北京回来后,一直在重新办理回国签证,数月未果,未能照料老人走完最后一程。现在唐老师去世了,她身为女儿却无法回去告别并办理后事。我们除了安慰,强调有北京数个老师学生在照料,也没有更多的可说。
当时,北航出面发了讣告,组织部分师生在八宝山墓园开了一个追悼会。随后,我通过黄永红和宁涛二位师弟,建议每人写一篇唐老师的回忆录,汇集成册,以致永久纪念。下面就算我的一份吧。
1982年春节后,我们这届研究生开学了。这是文革后第一批大学生77级考上来的。我们航空航天制造工程专业的计算机辅助设计制造(CAD/CAM)方向,这届有6名新的研究生。对于新入学的研究生,第一件大事是选择研究课题和导师。当时,教研室有三个研究方向:第一个是唐老师领头和几位老师一起的计算机图形和三维造型方向;第二个是计算几何;第三个是工程数据库研究。研究生中许多同学喜欢报第一个方向的研究,因为有唐老师博导为首,师资力量强,研究项目也已经开始,比较成熟。
我们大学时期,第一门计算机编程语言Fortran,是唐老师上的课。唐老师是南方人,个儿不高,常背着一只发白的黄书包,骑着一辆旧的女式自行车。从不知道唐老师的外人眼中,绝不起眼。唐老师那时50出头,年富力强,学校的名教授。北航介绍的画报中,他是几个大幅彩色照片介绍的教授之一。他是教研室主任,北航第一批10个博士生导师之一,也是当时全国最年轻的博导。
教研室几个老师认为我选择计算几何方向比较合适,因为我在大学时期数学比较突出,曾经在北航77、78和79三届大学生数学竞赛中,胜过许多数学力学学生,获得二等奖,也是制造工程系中唯一的获奖者。大学毕业设计,我的课题是飞机机身与机翼两个任意空间曲面的相交曲线。我找了英国数学家的一个数学方程解法,并编程求出曲线上的点阵。
工程数据库导师是王人骅副教授,为人低调谦逊。由于这个课题是完全新的,王老师也是刚刚从学习开始,大家对这个项目感兴趣的人不多。其实,全球数据库领域也是刚刚兴起,全国从事数据库方面研究的教授也是屈指可数的。当唐老师征求我的意向时,我表示了愿意从事比较有挑战性的项目, 如果可以的话,想跟着王老师搞数据库研究。我也认为将来数据库应用也更广泛。唐老师微笑着说,我们的课题都很新颖,都很有挑战性的。
唐老师分享了为什么教研室定这三个方向,前面两个方向是关键技术突破,工程数据库项目更是系统整体性,在飞机设计,工程分析、制造,以及以后维护等集成上要起关键作用。我们想尝试一下能否用数据库技术解决各个子系统集成链接。唐老师在科研中跑在世界前驱,他领导的计算机辅助设计辅助制造,即使在欧美也刚刚兴起,用数据库技术为集成CAD/CAM各个子系统这个设想更是远见。
听了他的分享,使我心里更有一股涌动的热血。唐老师基本上认同我的看法,鼓励我再找些数据思考一下,同时建议我找王老师谈谈。不久,在教研室老师与研究生的会议中,确定了各位同学的导师和研究方向。我也如愿跟王老师研究工程数据库。
数据库是计算机科学中一个重要分支。王老师和我都不知道如何入门下手。其实,我们对数据库只知道一个基本概念,对于数据库的具体内容、技术,一窍不通。我除了选学研究生规定的课程外,还在计算机系选学许多有关课程,如数据结构、离散数学、语言编译、操作系统、数据库系统等。同时,我也每天在学校图书馆找报刊杂志,阅读相关的文章。大半年过去后,慢慢地知道了数据库的一些皮毛,如当前数据库的三种模型:树状结构的层次模型、网络结构的网络模型和表格形状的关系模型, 数据库操作的几种语言等。还写了一份自我感觉良好的综述报告。
有一天,唐老师找我问问最近有什么进展。听了我的汇报,他说,北航的图书馆数据不多,我的综述报告虽然对国内的数据库状态总结的不错。但是,国内技术远远落后,这样开始搞科研,跳不出框框的。他建议我没有课的时候,到中国科技情报所去看看最新的有关杂志和会议录论文,看看国外都在做什么,了解世界上最新的数据库技术和发展方向。唐老师不但指导找索引、做笔记、做摘要等技巧细节,还告诉我带午饭、坐车等生活细节。不难想象,这些都是唐老师自己经常去那里找资料的经验。
“只有了解世界上最新的研究,才能在研究中有创新,取得成绩。”唐老师说话语气很平淡,语速也不快,但是字里行间透露了明确坚定的意志。我们聊的很长。谈得差不多了,又到了放学时间,唐老师推着他的自行车,我们从教学区边走边聊,一直走到唐老师家的楼下。又聊了几分钟,看样子如果不是我自动告别,唐老师还会耐心地跟我交谈。
接下来在没有课的每天,我一早起来吃完早餐,多买二两一个的馒头和一些咸菜。把咸菜夹在馒头中间,用一块毛巾包起来,再把装满热水的水壶一起放进书包里,走出校门一段路,坐公共汽车去和平里那边的中国科技情报所。记得中间还要换一趟车,在大约十公里的路上,坐车加上两头走路,在路上大约要一个小时。北京的冬天,寒风刺骨。经过路上折腾,到中午的时候,馒头和水都已经冰冷了。
这些生活的艰苦,还不是最大的问题。最苦恼的是,英文论文中不认识的生词太多,靠查词典一个字一个字就像爬行一样。有些词虽然认识,但是却无法理解在文章中的意思,当时用的简明英汉是一般的词典,没有计算机专业词语解释。另外,在头几周中,一篇又一篇的文章读完后,不知道论文在讲什么事情,更不知道有什么观点和技术。想起唐老师曾经提醒过,开始的时候可能理解不了,不要紧的,要坚持下来。看完一篇论文后,再去读一遍论文摘要、引言和结论,抄下认为重要的句子,无论是否是重点。
唐老师的方法很管用的,读了大约50篇文章后,慢慢地悟出了文章的意思。再过一段时间,从论文摘要,能判断哪些文章是有关的、有用的,哪些文章可能是另外领域的,也能摘抄一些笔记了。如果从摘要觉得一篇文章特别好、特别相关,到公用复印机付费复制下来。交通费和复印费可以从唐老师那里拿教研室的科研经费本,去学校财务处报销的。两三个月下来,读了近两百篇论文,记录满了好几个作业本,复印了近二十篇论文全文。
通过这段时间的阅读原文论文,对国际上先进国家在数据库方面工作有了一点点的了解。但是,很少有关用数据库在工程方面的文章。记得伯克利大学计算机系的Katz教授有篇论文关于电路设计方面的数据管理,卡内基梅隆大学土木工程系的Eastman教授有篇论文谈到建筑数据的管理,美国标准管理局有个Step项目,定义几何数据的格式。我把这些都与唐老师和我的导师王老师讨论了几次。每次讨论后,再回头做一次总结。
同时,北航计算机系李龙江讲师带了79级三位研究生的毕业论文,做了一个BH81的学生成绩管理系统。那个系统有大约一万条程序。那时候,每条程序用一张卡片打孔表示。整个系统按次序装在5个抽屉里。我借出这些卡片,让计算机房打印出来程序,读了一遍,了解他们是如何做的。
慢慢的,我也有了一些自己的想法。我把这些想法,写成一篇中文的文章。当时,中国科学院下的计算所和软件所等单位,与美国几所大学要开一次计算机方面的国际会议。我把论文“关于几何数据库的数据模型的一点探讨”翻译成英文后,想去投稿。与王老师讨论后,想请唐老师指教一下,记得那是1983年夏天,已经放暑假了。我把英文论文抄在计算机打印程序纸的反面。那种打印纸大约比两张16开纸还大一点,两边有均匀的孔。正面已经被打印机用过,反面是空白。我把论文交给唐老师。他粗粗浏览一下,告诉我几天后他在教研室假期值班,约我一起讨论一下这篇论文。
航空制造教研室在教学区2号楼三层。夏天2号楼刚刚开始装修,整个楼咚咚地震耳的噪音不断的骚扰着,楼道里弥漫着灰土。在炎热的夏天,我们只得关上门窗。唐老师开门见山说,论文有创新见解,不错。但是,整篇论文的英文是Chinglish(洋泾浜英语),不是中国人是看不懂的。我们得花些时间整一整。唐老师先让我讲一讲为什么写这篇论文,主要论点,解决什么问题。在我叙述的过程中,唐老师一边记着笔记,一边不时微笑着点点头,提些问题。我开始有些紧张,唐老师眼中鼓励的目光,赞赏的互动,使我进入角色,自然起来。之后,唐老师先在我的论文上改了起来。改着改着,他觉得改了许多还不满意,就把那段重新写了一遍。有时候他对照着我中文的论文,大约英文部分实在写得不通。有时候他停下来,跟我讨论论文的观点,推理假设是否合理。唐老师思路很快,有些概念我重复叙述时有些糊涂,他反而敏捷地说出来了。在引言部分,他建议加放一张机械零件的图片,把数据库的几个概念与图片对应起来,这样概念比较具体清楚了。我把唐老师修改和重写后的每一张,誊写一遍。唐老师的字像印刷出来的一样,公公正正的,每个标点符号也是清清楚楚的。我们一起工作了一整天,还没有修改完十几张纸的论文。第二天又一起工作了大半天。在这篇论文中,唐老师花的时间和做的贡献都很多,王老师和我要求作者处签上唐老师的名字。唐老师坚决不同意。我们只好在论文后面写上一段感谢词。
我们把论文寄给那次中科院主持的国际会议。但是,两个月后被退稿了。我感到很沮丧。唐老师说,你的论文还是有一定价值的。那个会议是纯计算机科学方面的,对我们的应用方面的论文,不一定感兴趣。另外,当前这么一个会议,国内许多有名望的专家教授都想发表论文,论资排辈,可能挤掉我们了。你去找找美国有关的国际会议,可以再去试试。我想起阅读资料的那几个月,感到对我们研究最对口的是ACM/IEEE的Design Automation会议。我又去了一趟中国科技情报研究所,找到那个会议的下一个年会的通知,年底截稿。唐老师帮我又看了一遍退回来的论文,纠正了几个小问题。我重新打印一遍。把论文装入一个牛皮纸大信封,将从学校科研处拿到容许出国的证明贴在信封反面,去邮局寄出。第二年初,收到从美国寄来的一个大信封。我的论文被1984年召开的ACM/IEEE 21届Design Automation年会录取了。除了通知书,还有参加会议的有关资料和费用估算。唐老师告诉我,遗憾我们没有5-6千美元去参加会议,只得写封回信谢谢,不能在会议宣读论文,并与国际专家们讨论了。这样的决定也是当时中国对海外国际会议发表论文的通常做法。
在唐老师指导帮助下,作者在研究生期间的论文在21届IEEE/ACM Design Automation年会上发表,1984年
根据论文的思路,我设计了数据库数据定义语句(DDL),编写编译DDL的程序,生成计算机内部表示格式。我一个人,在硕士论文阶段无法完成整个数据库系统的设计和实现,因为工作量远远超出了硕士生的研究。唐老师对我的研究很满意,表示希望我成为他的博士生,完成整个项目。同时,唐老师和王老师指导我写了一篇中文论文,投在南京工学院开的全国计算机辅助设计和计算机图形学术会议。1983年12月下旬,我在南京工学院参加学术会议期间,有一天忽然有位南京工学院的老师来找我,说有人从北京来电话要我接。这是我人生中第一次有人打电话给我,就如来北京上学第一次坐火车。我拿起听筒,对方传来了唐老师熟悉的声音。唐老师还是带有上海口音,不紧不慢,问我论文宣读完了吗。答:上午宣读了。他说,马上去火车站回北京,有重要任务。回到北京后,唐老师说我们推荐你去参加中德合作的计算机辅助设计制造和支持集成系统(Computer Aided Design, Manufacturing And Support,CADEMAS)的项目,明天去中国航空制造研究所面试。记得那年唐老师和航空工业部代表团一起去了一次德国,回来后向教研室老师和研究生介绍过这个项目。唐老师当时是航空工业部科技委员会委员。中国航空制造研究所在北京的东郊,北航在北京的西北,一路坐公交要换乘5次车,两个多小时。制造所领导、著名的航空制造专家李声远老师,李仲汉老师,英文翻译欧阳春梅老师和航空工业部外事司领导等主持面试。因为我和另一位研究生同学李晓和是唐老师推荐的,大家对我们很客气,没有考我们难的问题,话语中明显表示已经是参加合作的中国队成员了。回到学校后,我对唐老师说,我还是希望能够继续完成博士学习,完成手头的项目。唐老师说,博士学习不急,参加这个国际合作项目,接触计算机辅助设计制造的先进技术,能帮助我以后博士项目质量更高、更有影响力。不久,航空工业部红头文件来北航,通知我和李晓和同学参加中德合作项目。我们一边参加出国前培训,一边写毕业论文,提前半年毕业,赴德国慕尼黑与德国最大的航空制造公司MBB(当时代表德国成为空客的三大股东之一)参加合作项目。当时,我们因公出国,人一定要在国内有一个挂靠单位,航空部领导希望我们分配在航空部部机关或航空制造研究所。我希望留校,主要还是念念不忘在唐老师那里读博士。当有的老师怕我留校占了名额,以我普通话讲得很烂,留校当老师要给学生讲课,没有人会听的懂为理由,反对我留校时,唐老师不快不慢的回答:张经纶回来后可以用英文讲课的。由于唐老师在学校的地位和对我的支持,我出国期间挂在系里,拿了四年没有上过一节课的老师工资。
作者硕士毕业论文封面,当时唐老师是飞机制造(703)教研室主任
我从北航校门出来的第一份工作,就是参与国际合作。
在这个过程中,唐老师通过几十封书信等,一步一步指导我步入实际工作,取得成绩。我的导师王老师也是一样。1984年4月初,我们乘坐中国民航,在印度新德里中途落地加油,到德国法兰克福,转机来到MBB所在的慕尼黑。
我们参加合作的中国队近20人,大部分成员都已经40-50岁了,他们的家属来京送行到机场。唐老师和王老师也一起坐学校派的客车送我到机场。一路上,唐老师分享一些他出国的经验。这是我人生第一次坐飞机。
6年前,我还是中国最底层的农民。短短几年,经历考上文革后第一届大学生、上研究生、出国的几个里程碑的巨变。当时,全国出国的人员很稀少。记得1985年春节前,留德博士、浙大副校长路甬祥教授带领赴欧洲中央慰问团在慕尼黑德国南部地区约100来人聚会时说,当时大约有3000多人在海外长期学习。
我们住在慕尼黑东南郊区Holzkirchen小镇。一旦安置下来,马上写了两封信,一封是给唐老师和王老师,另一封是给宁波老家的父母。
我们合作第一期项目分成四个小组:计算机辅助制造、计算机图形软件、数据库和系统集成、软件工程。我在数据库和系统集成组,组长是MBB的Grill博士,Grill是维也纳大学的计算机科学博士。小组德方成员还有Haefner博士,后来又来了Rauch先生、Flithner先生。中方副组长是西安飞机设计研究所副总师吴介琴先生。老吴几年前在英国飞机公司工作学习过两年。中方组员除我外,还有成都飞机设计研究所的陈振秋、沈阳飞机设计研究所的段致和、西安航空计算所的陈俊拔。李晓和同学在计算机图形软件组里。唐老师的许多信件都是写给李晓和和我的,有一部分信件在我手里保存,另一部分在李晓和手里。
我们数据库和系统集成的第一个任务是选择一个数据库管理系统。这是一个软件系统管理数据库。Grill 博士对数据库系统比较熟悉,用德文写了一本200页的实用数据库方面的书。他为项目写了一个数据库系统需求分析文件,和我们大家讨论。我看了发现,他没有考虑CAD/CAM方面的特点。例如,一个机械部件的某个组成零件,可以是零件A,也可以是零件B,但是二者只能有一个。这个上下组成关系,一般商用数据库系统没有考虑到。我根据研究生工作时候了解到的需求,给Grill博士提了几条意见。Grill博士有点惊奇,有中国人能够提出补充意见,而且是团队中最年轻的人,因为许多中方工程师一般有点敬畏德方工程师,再加上英文水平,在讨论中说不出一句话。他很高兴,接受了我的建议,加到文件中去,并在作者名字中,加上我的名字。这是这次合作项目,第一个文件有中方作为作者出现。在一次给唐老师的信里,提及这件事。唐老师的回信中,一方面鼓励积极参与,发挥应有的作用;另一方面,他提醒我要虚心学习,毕竟我刚刚出炉,没有实际工作经验。
那时,数据库市场是战国时期,没有行业领头羊。我们收集在市场上现场的数据库管理系统,去掉没有明显优点的系统后,主要考虑的有IBM主机上的SQL/DS和刚刚新出来的DB2、Ingres、IDMS、Norway出来的TORNADO、 Oracle等,而IBM是当时IT领域的没有之一的绝对老大。德方比较倾向IBM的DB2;Ingres是全球最著名的关系数据库系统,使用逻辑推理的语言来操作数据库;IDMS是世界上最有名的基于网络数据模型的管理系统,TORNADO系统也是基于网络数据模型的,在工业领域有许多用户,在欧洲很有名气。
Oracle是我提的。那时,在关系数据库系统中,Oracle明显落后于DB2和Ingres。但是我分析: DB2只在IBM的MVS主机上运行,根据巴黎协议不能对中国出口;SQL数据库操作语言已经有国际标准了,Ingres不支持。Oracle虽然还小,不像现在是世界上最大的数据库系统,但是,Oracle关系数据库系统也采用SQL语言,能够在多个操作系统上兼容运行,市场发展速度快、价格便宜。我的看法,得到中方同事和领导的支持。唐老师和王老师收到我的信后,还请教了北航计算机系搞数据库研究的李龙江老师,并得到了肯定。经过比较、讨论和测试,形成德方推荐的DB2和中方推荐的Oracle。最后,我们定下采用SQL语言的DB2和Oracle,作为CADEMAS项目的数据库管理系统。DB2由德方付费,中方花15万美元买了MVS、UNIX、DOS三个版本的Oracle。Oracle还请我们CADEMAS全体成员去慕尼黑市里一家饭店吃饭,庆祝销售合同签订。Oracle 在上世纪90年代起上升成为世界上最大数据库系统供货商,我也成为Oracle数据库系统研发的软件工程师,这是后话。
对于数据集成方面,德方CADEMAS项目经理Fisher博士,写了一个数据集成交换的数据总线(BUS)系统需求分析和系统框架的文件。数据库管理系统负责管理一个应用的数据库,如飞机设计的几何数据库、力学分析的工程数据库、飞机制造的制造工艺数据库,等等。BUS系统负责飞机设计制造中上下两个阶段之间的数据库数据交换。我担任了BUS系统的总体设计和具体设计工作。我把BUS系统的功能定义为数据定义描述、数据字典、数据交换、总数据库和众多子数据库的管理和总体控制等。在数据交换方面,我根据美国标准局STEP和IGES的概念,提出虚拟星型技术。经过几个月的努力,形成一份100多页的技术文件。这是CADEMAS项目中,第一个以中方为主出的技术设计文件。CADEMAS合作项目中方经理李声远老师对我的工作成绩十分欣赏,每次有这方面的问题都喊我去讨论,每次部领导和有关专家来德国都带我一起去汇报工作,见了部长、副部长等高级领导。我们项目的中方组长老吴对我也十分支持和大方,包括对李经理直接找我了解工作。1985年9月,应航空工业部要求,我们项目回国叙职。叙职会议在航空制造工艺研究所附近、北京通县的一个星级酒店召开。航空工业部主机厂和研究所的技术骨干领导都来了,唐老师作为中国CAD/CAM领头人,也来参加了。会议先开一个全体人员参加的大会,在领导简短开场白后,只安排两个报告,李经理的项目总结报告和我的BUS系统设计报告。李经理是航空部著名飞机制造专家,大家都认识他。我是新手,会后许多人都向我打招呼,我不知所措。李经理给我介绍对方,有多人都是航空部某个局的局长、处长,某个主机厂、所的总师等,如雷贯耳的名人政要。随后,按项目小组分组讨论交流,每个项目同事都在小组介绍工作。唐老师对我的成绩很满意。晚宴时我们在一桌,一边吃饭一边讨论。叙职二天会议后,项目成员放假回家探亲二周。唐老师对我说,你年轻没有成家,还担任这么重要的工作,回家去看父母一周,提前回到北京,与国内专家再具体讨论讨论,了解实际情况和需求。研究与实际结合,要有应用目标,这是唐老师的口头禅。
我欣然答应。在唐老师的建议下,我在北航与沈阳飞机研究所副总师崔德刚等主机厂所的五六个技术领导和专家,讨论了数天。唐老师有空时也过来参与,他说的不多,主要一直在做着笔记。他对我的BUS系统的主要顾虑是系统太庞大、太复杂,建议关注部分关键部件,先实现试试。唐老师对我回国期间的生活上很照顾,回家来回都让我坐卧铺,北航期间在招待所给我二人一间的房间,不是大通铺。当时,这些都是副教授以上的待遇,我虽然毕业留校,但是还没有任何职称,不符合这样待遇的。
叙职结束回到德国后,我们数据库和集成小组如唐老师所建议,开始了关键部件的实现工作。中方组长吴介琴负责数据字典研发,陈振秋负责数据交换,段致和和陈君拔负责语言编译和功能实现,Rauch先生等负责数据库设计,我负责产品数据版本控制和管理的档案(Archive) 管理系统。Archive系统中,我先定义了产品结构模型,描述产品部件的层次关系结构,每一零部件数据的不同版本,某一个产品的某个版本的层次结构中,每一个所属的零部件由哪个版本组成。这些零部件层次结构和版本所属,可以用API进行描述、显示和有关操作。每个零部件的某个版本和下属所有组成零部件的版本整体数据,按用户的数据操作权限,可以进行借出(check out) 和存盘(check in)操作。一个用户对某个零部件的某个版本借出后,进行修改或工程分析等,完成工作之后存盘。借出和存盘之间,形成一个事务操作(Transaction)。一般商务应用系统中,一个事务(如银行转账事务,从一个账号减去100元,在另一个账号加上100元)发生在很短的时间,数据库系统用锁(Lock)保证事务的一致性。在我们的工程应用中,一个事务从借出到存盘之间需要一定的时间,甚至几天、几周。对于那个事务牵涉到版本数据,可能多个用户需要同时使用。这样,我们不能用简单的锁机构来保证事务的完整性。这是一个数据库领域没有解决的长事务(long transaction)问题。我研究了这个问题,研发了一套机构,通过借出的锁,加上用户标记,存盘时与所借出的所有用户进行协调,取得所有借出用户同意后,存盘的版本数据,或取代原版本,或产生新版本。新的版本会对上下零部件的版本进行系列更改。
Archive系统大约由2万条Fortran语言写成,经历近一年的时间,期间与唐老师和王老师多次书信讨论,得到他们的宝贵指教。唐老师常说,我们搞工程的,一定要做实用东西。唐老师对我能够研发出实用的Archive系统,比设计BUS系统更为满意,并要我写个易懂的文件,编进他主编的书中。1987年初,CADEMAS第一期项目结束,大部分中方参加合作的同事都回国了。第二期项目主要是航空工业部下属主机厂和主机设计所派人来学习和接受成果。因为我的Archive系统是主要成果之一,领导决定我留下继续第二期项目,负责数据库方面和Archive系统,培训第二期项目的工程师使用。后来,听说Archive系统在航空设计制造中起了很大的作用,也输出到航天工业部系统。
在CADEMAS项目的后期,我和唐老师书信中,也开始讨论我进一步深造,成为他博士生学习的话题。期间, CADEMAS项目软件工程组的德方成员Willmertinger博士介绍我认识了慕尼黑技术大学的Reiser博士。Reiser博士在Bayer教授下面做研究,她介绍我认识了Bayer教授。Bayer教授是数据库中索引技术B树的发明人,B树也以他的姓氏的第一个字母命名,在国际计算机科学领域很有名。Bayer教授对我做的工作也感兴趣,也与唐老师联系了。唐老师对学生有好的深造条件,一贯很支持的。但是,在Bayer教授联系CADEMAS项目商谈在职开始博士学习时,很遗憾被航空部领导以出国是为了合作项目为理由给否定了,即使是在职一边工作一边学习。之后,按唐老师的安排,还是继续在他那里读博士。
唐老师认为,我在德国接触了一些实际工作,回国后还会继续与航空部下属主机厂所接触,有了很好基础。唐老师希望我去美国学习一两年,掌握了解世界上最先进的技术和理论。这样,博士论文能做成有分量、有影响了。
我按美国数据库领域有名的教授中,写信联系了几个教授。Stanford大学Wiederhold教授,University of Illinois Urbana-Champain超级计算机中心的Chen教授, Florida大学数据库系统研发中心的Su教授对我感兴趣。唐老师对Su教授在数据库技术应用在制造工程中的项目特别感兴趣,建议我去Su教授那里学习。同时,唐老师也帮助我与北航研究生院、人事处联系转成博士生方面的事情,包括人事变动、入学考试、修课要求、去美国进修等。
国内机构重重,办事慢慢,唐老师虽然是北航名教授,在办事过程中也多次受了官员的气。在来往书信中我也感觉到了。最后,我们决定CADEMAS项目结束后直接去美国最简单。
唐老师思想开放,在80年代顶住各方面压力,帮助许多年轻人赴海外深造,无论是自己的学生,还是其他来求助的学子。项目完全结束回国前,我宣布去美国学习,唐老师承受了极大的压力,上面逼唐老师给我电话,劝说回国。我在电话中当着官员的面,撇清去美国与唐老师无关,使唐老师少受他人指责。现在唐老师已经去世,我也可以公开这段历史,感谢唐老师的恩情。
1988年1月,我从慕尼黑美国领馆拿到签证,马上以访问研究员(Visiting Researcher) 的身份,从德国来到Florida大学Su教授的数据库系统研发中心。唐老师和王老师历尽各种困难,帮我从北航拿出学习成绩单,写好推荐信,帮助我申请博士生学位。同时我也参加IBM CAD项目,负责数据交换研发。
不久,唐老师来美国访问,他飞到Denver来看我。我住在Boulder市,就在Colorado大学Boulder分校旁边。IBM研发中心在大约20公里外的Longmont市。因为我租的公寓很小,晚上唐老师与我在一张床上过夜。我准备周末带唐老师去Denver附近游玩一下,列了几个方案。唐老师对城市等旅游景点不感兴趣,我们选择了去落基山国家公园。Boulder其实就在落基山的山脚下。
落基山山脉是北美的脊梁,落基山国家公园很大,面积有26万英亩,以海拔高著称,海拔超过3600米的山峰就有70多座,最高峰Longs Peak海拔达到4345米。
我们沿着山脉,开了1个多小时,来到一个分叉路口。我在休息处,问老美哪条路去高山的游客中心。老美友好地回答,两条路都去那里,左边的路是大路,右边的路没有铺设,但是很漂亮。他说他们准备走右边的那条路上去。
我们听到“风景漂亮”就很激动,就跟着他的车开上了右边的那条路了。这是一条1920年开通的Old Fall River Road老瀑布河路,至今依然维持着最原始最接近自然的原貌,不但没有铺路,许多不靠山的一边是悬崖,而且没有护栏保护,整条路段坡度陡峭,转弯很急,路上坑坑洼洼,大部分的路段只能容一车通行,真心让人手脚发麻,尾椎发酸。
我刚刚学会开车不久,车技不好,两手紧紧的握着方向盘,生怕一个拐弯,一个路坑颠簸,把车子蹦到悬崖下去。坐在副驾驶座上的唐老师在悬崖一边,大约为了鼓励我,一脸很镇静。这段路虽然不长,不足9英里,我开了一个多小时,成为车队队长,后面长长地压了一大串车子。幸亏老美都很Nice,一路没有按喇叭催促抱怨。
终于,我们来到了目的地高山游客中心,我长长地吐了一口气,感觉如死里逃生,背上都冒出汗了。高山游客中心海拔12005英尺,有一块不大的停车场,一个厕所、咖啡厅和小礼品店。虽然是夏天,山上还是很冷。我们转了一会,看看巍巍蔓延到大山,拍照留念。然后,吃自己带来的午餐。我怕唐老师吃冷东西不好,想去咖啡厅买些热点的食物和饮料。唐老师坚决不让,怕我刚刚工作费钱吧。唐老师有点高山反应。我们不久下山了。这次选了34号公路——山脊路(Trail Ridge Road),不到20分钟就回到了三岔口。经过Boulder几天一起和交流,唐老师很高兴我从极其困难的处境中走了出来,而且工作成果也不比读博士差。
1990年代初,我加入了心中仰慕的天使公司——Oracle,从事数据库系统研发工作。自从1985年回国述职,完成CADEMAS项目,转移到美国,10年后首次回国。我在首都机场一下飞机,第二天就来看望唐老师。那时,唐老师在北航逸夫馆办公,我们在那里畅谈3小时。
中午,又喊了我研究生导师王老师,还有北航管理系常务副主任陈良犹老师和张国钧老师夫妇,在北航招待所食堂吃饭。唐老师坚决反对到外面餐馆就餐,嫌多花时间多花钱。陈老师和张老师是我老家宁波附近的人,在我上大学研究生期间,待我如亲人,每逢节假日请我去他们家吃饭。从这以后,每次来北航,我们就在招待所食堂欢聚就餐了。
我搬到加州硅谷以后,先住在Fremont市,后来搬到斯坦福大学旁边的Palo Alto市,上天注定的缘分一样,一直都与唐老师女儿May一家是邻居。唐老师每次来美国,我都有幸能经常与他见面,坐下来一聊都是数个小时。
唐老师退休后,不但仍然对科技感兴趣,而且仔细了解美国的生活、社会和政治。他告诉我他读了英文原文的美国历史,对美国200年历史很赞赏,先进的民主自由制度,保证了美国科技领先地位。
我也多次把唐老师请到家里,还喊一些北航的校友朋友一起聚聚,唐老师总是亲和地与每个人交流,不时地记着笔记。有几个不熟悉的朋友,看唐老师记谈话内容,有点尴尬,打住话题。我看到赶紧解释,这是唐老师几十年的习惯,记录所见所闻,不用担心什么。
有一次,唐老师还步行从May家到我家。虽说我和May是“邻居”,但是两家还是有2.5公里的距离。但唐老师乐在其中,甚至还带来了自己做的馒头花卷之类面食。
2013年底,北京的同门师兄弟姐妹,给唐老师举办85周年生日Party。我在南京创业,特意赶到北京,代表美国的几个同学(马德昌、陈景阳、王南欣、吕律、张志宏),一起给唐老师送了一个iPad作为生日礼物。我还在座谈会上发言,介绍在美国各个同学的近况,重点介绍了同学们的孩子,都上了美国顶尖大学。唐老师听着一直高兴地微笑着。晚上晚宴,主办的同学,安排我坐在唐老师旁边,度过了幸福的好时光。
唐老师退休后花时间写了两个小册子。一个是2013年1月22日完成的《北航飞行器制造工程系历史回顾拾遗》,大约有100页。唐老师从自己出生的家庭、求学过程、留苏学习和跟俄国人合作的经历,到一步步发展飞机制造工程系和专业的发展,特别是娓娓叙述了1970年代中开始进行计算机辅助设计制造的研究过程,对北航数个著名教授、教研室老师和研究生也做了精诚的描述,对国内外相关技术状态了如指掌、介绍详尽。
唐老师分享了这篇长文给我,使我学到许多东西,特别是唐老师待人接物的诚恳、友善和谦虚态度。我也跟唐老师坦诚交流了对北邮校长方滨兴院士的不同观点,认为他主导的防火墙对中国的进步很有害。我能感觉到唐老师不同意我的观点,但还是很耐心听我叙述解释。
唐老师另一个作品是与他堂兄唐荣智老人合写的家史《唐吉生家史拾遗》。唐老师出身书香门第,兄弟姐妹都身手不凡,在各行各业多有建树。我们学生中最熟悉的是导演动画片的唐老师的姐姐,因为唐老师在研究计算机图形学中提起过想与他姐姐合作搞计算机动画。书中还有许多唐家照片,也包括唐老师和他太太王秀珍老师,唐老师孩子May一家等。这本家史于2012年12月印刷,由唐老师女儿May赠送给我。
我最后一次见到唐老师是2017年11月初。10月底,我作为北航硅谷校友会会长,应邀参加北航65周年校庆。校庆活动一结束,黄永红和蔡强二位师弟陪我去老人院看望唐老师。遗憾我们到时,唐老师已经开始吃午饭了,未能请唐老师一起吃饭。我们等唐老师吃完饭,在他的房间聊了一会儿,又到外面走一走。那时,唐老师走路已经很缓慢了,但是还能健谈。没有想到那是最后一次见面。而现在,师生已经天地分离了。
我们一直有一个50多人的微信群:唐荣锡弟子群。在京的几位同门在有条不紊的商讨着先生的后事安排。我远在太平洋的对岸,心有余而力不足。我想起英国作家狄更斯的一首诗,抄在群里:
抄狄更斯《告别》送唐老师
“无意苦争春,一任群芳妒。零落成泥碾作尘,只有香如故。”虽然唐老师以92岁高龄过世,心里还是好久好久空洞洞地难受;虽然唐老师与他太太在天堂欢聚了,我们却再也看不见他老人家了;虽然毕业几十年了,老师的恩情一辈子记在心里。而唐老为行业发展的那些不可磨灭的业绩,也将深深铭刻在中国CAD产业发展的史碑上。