今天終於下定決心,把我使用的程式設計環境從Delphi轉變成Lazarus了。這也許是一個明智的選擇,但做出這個決定的過程包含了辛酸和無奈。
這應該是我第三次安裝Lazarus了。以前安裝之後總是感覺有很多不盡人意的地方,最終還是放棄了。這一次,也許是因為我看到了希望,也許是Lazarus的發展達到了我需要的程度,總之,我下定決心要使用Lazarus了。
說起Delphi,這個伴隨我半生的程式設計工具,讓我又愛又恨。它給我的工作帶來了幫助,給我的生活增添了色彩,也消磨了我生命的大部分時光。
我的生活離不開程式設計,我的程式設計很長的一段時間以來Delphi,但Delphi的不斷升級讓我感覺到了疲勞。從Delphi3到DelphiXE,經過 一次次的升級之後,我不再升級了,而不再升級的結果是我的程式設計環境與新的作業系統距離越來越遠了。距離感帶來的不適讓我產生了更換開發環境的想法,經歷的多年的選擇之後,我最終決定選擇Lazarus。
說起我的程式設計生涯,總會想起年輕時的事情。
記得還在上學的時候,我在泰山腳下的工人文化宮參觀了一個新技術展覽,其中讓我感觸最深的是計算技術的發展。在展覽中看到的計算機是一種叫手搖計算機的東西,現在說起來可以算是古董了,但那個時候還是一種先進技術。不過,那個時候已經有了比較原始的電子計算器,工作中已經可以不再使用手搖計算機了。這種古董並沒有普及,原因是價格太高,而它的功能很大程度上代替不了我們的老祖宗發明的計算工具——算盤。
看了展覽之後,正值那一學期開設的一個新的課程:計算機程式語言。當時的教材是學校的老師自己刻板後油印的,學習的內容是一種適用於PC-1500袖珍計算機的Basic語言。這時候我對計算機的未來有一個預言:計算機將成為未來工作中不可或缺的重要工具。出於這種預言和對未來的期待,我開始到書店裡購買有關程式設計的書籍。不過,後來才知道,由於不知道程式語言是依賴於計算機型號的,也不知道需要開發環境,所以花了很多冤枉錢,也浪費了很多時間。那時候我買了Basic、Cobol、Fortran程式設計的書籍,在沒有計算機的情況下學完了全部的內容。當時能夠上機測試的只有PC-1500袖珍計算機。一年後學校買了蘋果計算機,但是我那一級學生的計算機課程已經成為過去式,沒有使用蘋果計算機的資格了。為了測試自己學習的結果,費了好大的勁才獲得了當時學校裡唯一的計算機老師的同意讓我到計算機教室裡參觀了一次。
參加工作後我首先從事的是工程設計。大量的結構計算、工程測量結果的計算、水力學計算等等需要消耗很多的時間和精力。一項工程的設計如果花費半個月,那麼計算的時間就需要差不多十天甚至更多。為了節省時間,一臺因為沒有人會用而在倉庫裡沉睡的PC-1500袖珍計算機成了我的專用品,凡是需要重複計算或者試算的計算過程我都編寫了程式,這也成了我真正編寫程式的開始。需要十天的計算過程,我編寫程式、錄入計算機花費的時間不會超過一天,計算過程最長的需要大約三十分鐘,短的會在一分鐘之內出結果。
後來有了臺式計算機,我開始真正接觸了程式設計環境,可以使用Basic。那時的Basic功能有限,而且需要一個解釋環境。為了找到更好的開發工具,利用外出學習交流的機會我得到了true basic、qbasic。後來還得到了Fortran。
在那個沒有網路,軟體匱乏的年代,買了計算機就跟買到一個新的本子差不多,如果不自己寫東西,再好的計算機也是一種擺設。除了當打字機用,那時的計算機似乎找不到其他的用途。而作為文書處理軟體,電腦裡只有漢化的ws,那是一個功能很簡單的文書處理軟體。還有一箇中國人自己開發的hw,功能同樣很差。後來聽說有一個人因為漢化的軟體不好用就自己寫了一個叫做cced表格處理軟體,而我覺得cced的功能還不夠,但他的想法給了我啟發,於是我也自己寫了一個集文書處理和表格處理於一體的軟體,功能超過了當時我見到過的所有文書處理軟體。這是我學習了Pascal後編寫的第一個大型軟體。正當我把它變得更強大的時候,Dos時代結束了。
window作業系統的出現帶來了程式設計環境的改變,我不得不捨棄turbo Pascal去尋找新的能夠在window中使用的開發環境。在使用了Visual FoxPro、Visual Basic、Visual C++之後,最終我還是選擇了Delphi和C++ Builder,而在C++ Builder迷失了本性之後,Delphi 7成了最佳的選擇。
微軟的window沒有停止升級的步伐,Delphi也一直在升級。每一個新版本出來之後,出於對新功能的渴望,都會跟著升級,而每一次的升級都需要把原來編寫的程式程式碼進行修改以適應新版本開發環境的變化。
開始的時候把這種升級當作一種樂趣,而後來逐漸感覺到是一種負擔。直到Delphi XE2出現後,感覺再也不想承受這種負擔了。
之所以最後能夠下定決心使用Lazarus,應該與感受到到在CodeBlocks+wxWidgets的強大功能有關,也應該與多年來從事自由軟體開發的經歷有更大的關係吧。
現在決定放棄Delphi改用Lazarus也許會面臨對原有程式程式碼的更大的改動,但不知道這次改動之後是否還會因為升級而改動?希望不會吧。但願未來是美好的。