程序员创业故事之 追梦有限元软件
软件行业一直流行一个说法,开发人员都要面临一个35岁选择的坎儿,或是转行,或是转为其它职位。这似乎成了软件行业的一条定律。
然而,当看到一位年近古稀的老人在61岁时出任一家软件公司的总经理,67岁每天仍用数个小时的时间进行编程工作,成为该软件公司唯一的核心技术掌控人,并且也是唯一制作该公司每代产品核心部分的技术人员时,原来信奉这条定理和面临35岁选择而困惑不已的人们,你们作何感想?
这位老人就是梁国平。这家公司是北京飞箭软件有限公司。
梁国平,1938年11月出生,1963 年,毕业于南开大学数学系,并于同年进入中国科学院数学研究所,现为中国科学院数学研究所研究员,美国加州大学伯克利分校客座教授。多年来,他一直从事偏微分方程数值方法及其软件的研究工作。偏微分方程是描述客观世界数量关系的一种重要的数学方法。大量的工程、科学、技术和生产能问题常常归结于微分方程的求解,例如弹道轨迹、铸造成型、气象研究、压力容器等等,而有限元方法是求解偏微分方程的一种有效的数值计算方法。成立于1999年的北京飞箭软件有限公司就是专门从事有限元软件的研发和销售服务工作。
梁国平毕生都致力于有限元的软件研发工作。早在1963年,他就提出分层解法理论,所编制的有限元软件获得石油部重大科技成果奖。从1980年开始为期两年作为访问学者的身份前往美国加州大学继续研究有限元知识,在那个时期,梁国平结识了同在有限元软件业十分有名的专家,在有限元知识和软件编制方面都受到了很大的影响。
在美国访问的这段时间里,梁国平看到了国外有限元领域的发展,逐渐深刻地认识到,由于有限元软件的适用面广、通用性强、程序复杂、编程和计算存储量大,所以编写和开发需要大量的人力和时间,这是一般没有专门的软件研发机构而要用到有限元软件的公司和研究所所远远不能承受的;同时,用户是无法根据自己的需要去修改通用软件固化的算法,而这又是用户经常会涉及到的问题。
于是在1983年,梁国平回国后,萌发了要利用自己对有限元的知识和积累了多年的软件开发经验制作有限元程序自动生成系统,根据需要自动生成代码,来帮助所有涉及到有限元计算的工作人员获得所需要的计算软件,让他们只用关心自己所需要的有限元偏微分方程和算法,而不用花费大量时间在研究如何让它转化成可以进一步使用的有限元程序以及编写代码上。
按照梁国平的想法,他要提供给有限元计算的工作人员一个平台,工作人员向平台输送需要计算的偏微分方程及其算法,平台就能根据需要,输出可供求解和其他计算使用的Fortran代码。开始着手编制有限元程序自动生成系统时,梁国平已经45岁。历经数年,在52岁时,梁国平终于开发出该系统的第一版。该版解决了有限元程序中线性部分的程序自动生成问题。之后的两年内,又完成了非线性的程序自动生成的部分。
1990年,梁国平完成了最初的版本并命名为FEPG。在那之后,他再度来到美国加州大学,在该校的土木工程系和地质系开始广泛推广自己的有限元程序自动生成系统。在土木工程和地质学领域,涉及到有限元的运算非常多。在使用了该系统之后,地质系的一个教授论文产出大大多于同时期的数量,这些得益于系统自动生成了程序,能够利用生成的程序很快获得需要的计算数据,使他从编写计算软件代码的繁重而耗时的工作中解脱出来,有更多的精力和时间对本专业进行研究。
推广FEPG初试成功后,梁国平回国,开始在国内进行推广。由于国内使用的有限元计算软件都是国外的产品,并且都是不可定制的,一种算法使用一个软件,价格十分昂贵,而梁国平的软件是一个开放的平台,不受使用者输入的方程和算法类型的限制,涉及到各种有限元计算的使用者都能够通过这个平台获得所需求解的全部Fortran语言程序,所以,该软件获得了科学研究者的欢迎。在高校,学生可以通过这个开放的平台,研究生成的程序算法,而不会陷入到开发计算程序的学生离职后,别人无法读懂或者继续编制那几万行的计算软件的危机中。因此,在教育领域中,梁国平的软件同样大受欢迎。
在继续推广和完善的过程中,FEPG被越来越多的科研单位和高校以及各种各样涉及到有限元计算的机构使用,它的影响力逐渐强大了起来,先后在1994年和1995年获得了中国科学院科技进步二等奖和国家科技进步二等奖。获得这些奖项之后,梁国平却认识到,FEPG还只是停留在科研软件的基础上。由于科研软件和商业软件相比有天生的弱项,例如没有友好的图形操作界面等,因此仍然需要有具备一定专业知识的人进行操作,然而要能够让更多的人和机构使用FEPG,必须让它商品化,这需要吸收更多的人参与到FEPG的商品化开发中来,而不是仅靠一个人的力量。于是,梁国平开始筹划应用公司的形式来进行FEPG的继续开发和推广,让FEPG商品化。
经过3年的酝酿和筹资,终于,1999年,在梁国平61岁的那年,北京飞箭软件有限公司在北京瑞星电脑科技公司董事长兼总经理王新和台湾著名企业家陈荣课的个人投资和帮助下成立了。梁国平作为飞箭的总经理和总工程师领导着开发团队对FEPG开始进行全面地革新,逐步从界面和易用性以及使用需求方面进行商品化优化。
在2000年互联网兴盛的时期,飞箭的投资商提出是否能将FEPG的系统放到互联网上,提供给用户网络的运算和支持。当年,梁国平带着他的开发团队就利用网络通讯和中间件技术成功地开发出全球第一个在线有限元程序自动生成系统,即iFEPG。用户通过网络将有限元问题的偏微分方程和算法传送到FEPG服务器,由服务器生成全部的有限元程序并传回客户机,在客户机上自动编译和运行,直接获得用户所需要的运算结果。iFEPG作为一个免费的产品,虽然提供的是FEPG普通的功能,但是由于利用了网络的方便性和友好的界面,iFEPG的用户迅速地增加,一些国外的高校和研究机构也开始利用iFEPG进行有关的计算研究。
至此,梁国平仍然不满足,所谓老骥伏枥,志在千里。他一直希望FEPG有更大的使用范围。并且认为只有将技术应用于生产才能真正体现出技术的价值。他希望能通过不断地改进FEPG,使它不仅仅能够被高校和科研机构广泛使用,也能够在工程、企业单位里发挥它的作用,帮助企业进行复杂问题的数值模拟。而要在企业里进行应用,必须使用高性能计算,支持并行计算才能满足企业级的计算规模的要求。而他很早就认识到高性能计算的重要性,早在1996年作为博士生导师的他就带领着学生研发并行有限元程序的自动生成系统,即后来的pFEPG。历经8年艰苦的钻研,终于在2004年获得成功,填补了我国可以采用并行机作计算的通用有限元软件系统的空白。这一成功,使得FEPG系列产品得以在企业内推广成为可能。并且通过网络方式和pFEPG的并行计算的结合,使得这一技术可以在网格计算的领域中得以应用和发展。
现如今,67岁的梁国平仍然活跃在FEPG开发的第一线上,每天数个小时进行FEPG的版本优化和功能实现的编程工作。这些,不禁让我们开始怀疑本文开头提出来的那个所谓的定律,那个35岁的界限真的存在么?不过,可以看到,梁国平老人的经历也有他的特殊性:
1.从事的领域专业性非常强
有限元程序自动生成系统是个专业性非常强的领域。本身有限元计算的产生也才不过几十年,在数学计算领域来说是个非常新的概念了,而研究有限元程序自动生成系统的人员全国也只不过两三个。专业的特殊性和涉及研究的人数较少使得在这个领域中坚持研究的人员相对容易崭露头角。而这些成就感容易让一个人意志坚定,坚持研究和开发工作。
2.深厚的复合型知识和能力的积累
梁国平老人同时在有限元计算和编程方面都有数十年的知识和经验的积累。使得他十分清楚在有限元的领域内用户的需要,并且能够将这些需要利用自己的编程技术经验实现出来。倘若是任何一个方面相对较弱,就只能流于那些单纯的研究人员和编程人员割裂而无法沟通完全的情形中了。
梁国平老人的经历固然有他所在领域的特殊性,但是,我们也同时看到,在决心要做FEPG到后来pFEPG的实现,中间时间跨越了20多年。在这20多年中,他一直非常清楚自己要做的是什么,于是不断地进取、探索,抓住机会去发展这个目标,并且能够结合技术发展的脚步,结合了最新的技术概念,这些恐怕是抛开领域特殊性而在软件开发领域通用的成功方法。
所以,也许35岁并不是适不适合继续编程的分水岭,不清楚自己的发展方向,受到周遭环境的影响,随着年龄的增加,工作之外的影响和随之而来的惰性的增加恐怕才是程序员们真正需要解决的问题。