程序員創業故事之 追夢有限元軟件
軟件行業一直流行一個說法,開發人員都要面臨一個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歲并不是適不適合繼續編程的分水嶺,不清楚自己的發展方向,受到周遭環境的影響,隨著年齡的增加,工作之外的影響和隨之而來的惰性的增加恐怕才是程序員們真正需要解決的問題。