今天终于下定决心,把我使用的编程环境从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也许会面临对原有程序代码的更大的改动,但不知道这次改动之后是否还会因为升级而改动?希望不会吧。但愿未来是美好的。