《到此为止----我的16年Borland生涯!》
到此为止----我的16年Borland生涯!
早就想写篇东西来纪念一下我的Borland生涯了,下决心开始写是2006年6月底的事。
起因有两点,一是我的Borland社区差1百来分就到5万,按CSDN的规矩,可以加1颗星,
但再往上非常困难,C++ Builder的式微已是不争的现实,发帖人少,结题人更少。虽然我
努力回答问题,但想1个月得到4、5千分是不可能的了,就说这最后1千分吧,我也是花了1
个月时间才得到。
另外一个原因是我在C++ Builder社区已经不快乐了,你花自己的时间努力问答别人的
问题,答对了少有人感谢你,别人都认为给你分就算了,实际这分顶个P用,不就是数据库
的几个bit;如果你答错了或者你指出别人的错误,那些骂人和讥讽的话让你后悔为什么不
去打打麻将玩玩游戏非得要做这费力不讨好的事。
所以我决定从此不再像以前那样每天到CB社区刷屏回复,但我也不会永远离开,只是
偶尔来看一次,看看我深爱的Borland是否还活着。
。。。
1990年我毕业于上海交通大学无线电专业(老家伙了,哈哈!),我并不是计算机专
业出身,也没想到以后会走程序员的道路。最早接触计算机是中学的Pencil II型计算机,
照现在来看,应该是个标准的游戏机,初次接触电子游戏,也是在这上面玩的海底探宝。
一开始学的是BASIC,到大学后又学了FORTRAN,一直都不学得咋样。一直到大三,学了一
门对我未来影响非常大的课程:《UNIX操作系统》,是尤晋元编写的,老同志大多学过。
其中最关键的是,让我学会了C语言,并一直使用至今。
毕业设计是做计算机图形处理的软件《B样条的插值实现》,那时编程环境比现在差多
了,但在1990年绝对算先进的了:3台386运行Xenix操作系统(与DOS一样古老的东西),各
带5台UNIX终端,然后一帮同学就在上面上机,老师规定的东西完成后,就开始到各个目录
到处窜,居然找到几个游戏,虽然是字符界面的,但也让人玩得不亦乐乎;然后学了几个
UNIX命令后,让别人的终端死机或者发些骚扰信息也是很有乐趣,再看着自己的代码变成
操纵计算机的指令那更是很有成就感,我就这样懵懵懂懂地进入了程序员大门。
毕业设计到后面需要做图形,而UNIX终端实在不好用,于是导师带我去他办公室用PC,
IBM的原装XT。白天的时间用的人多,我们挤不上,晚上别人又锁了大门。于是我的同学们
找到一个好办法,用身份证捅开办公室的门然后进去通宵上机,身份证用多了都变软了,同
学们的身份证都变形不能用,后来又想出新的工具:用1.5升可乐瓶子下面的黑塑料,这玩意
好使!于是办公室的晚上就热闹了,几台PC都有人,大家排队玩游戏,象CROSS,TETRIS之类
都是那时学会的,后来居然变成了高手。那时是5月份,上海很热,但办公室有空调,我们一
直玩到早上4点过,再回宿舍睡觉,这时宿舍也不热了。。。
晚上尽玩游戏去了,白天就得编程序,这时,我哥给了推荐了一个编译器,Turbo C 1.0,
刚一接触就迷住了:编辑环境非常友好,都是菜单驱动的,用光标上下左右移动,随便插入
替换,虽然这只是现在的编辑器的基本功能,但用惯了UNIX命令行编译的程序员来说,还是
颇为震动;最关键的还有快速的编译器,上千行代码几秒钟就完成,调试和纠错也好用,直
接定位到错误的行,立刻修改,改后马上编译,马上看到效果。
于是立刻把代码移植到TurboC环境,当时干劲也很大,只要一开机,连饭都不想去吃,
到5月份程序做完,答辩时,评委随便输入十来个曲面的点坐标,我的程序立刻把整个曲面模
拟出来,几个评委都点头称是,心里面乐得开了花。
这就是我的第部分一个C代码(部分),现在看很丑陋,错误很多。。
#include<math.h>
#include<stdio.h>
#define NUM_INSERT 4
int M,N,k,LINE_TOTAL;
double yy[100][100][3];
main()
{
int i,j,i0,i1;
double D[100][2],aa[100][100][3],a;
printf(" please input --M...N--,\n");
scanf("%d%d",&M,&N);
printf(" M== %1d N= %1d\n",M,N);
printf("please input data ---X...Y...Z---\n");
LINE_TOTAL=(N-1)*NUM_INSERT;
for(i=0;i<=LINE_TOTAL;i=i+NUM_INSERT)
{
printf("Y= %d\n",i);
for(j=0;j<=LINE_TOTAL;j=j+NUM_INSERT)
{
yy[i][j][0]=j;
yy[i][j][1]=i;
aa[j][i][0]=j;
aa[j][i][1]=i;
scanf("%lf",&a);
yy[i][j][2]=a;
aa[j][i][2]=a;
printf(" X= %lf Z= %lf \n",yy[i][j][0],yy[i][j][2]);
}
}
/* CALCULATE N LINES */
for(i1=0;i1<=LINE_TOTAL;i1=i1+NUM_INSERT)
{
for(i=1;i<=N;i++)
{
D[i][0]=yy[i1][(i-1)*NUM_INSERT][0];
D[i][1]=yy[i1][(i-1)*NUM_INSERT][2];
}
BBS(D,i1,0,1);
}
/* CALCULATE N ARRAYS */
for(i1=0;i1<=LINE_TOTAL;i1=i1+NUM_INSERT)
{
for(i=1;i<=N;i++)
{
D[i][0]=aa[i1][(i-1)*NUM_INSERT][1];
D[i][1]=aa[i1][(i-1)*NUM_INSERT][2];
}
BBS(D,i1,1,0);
}
/* CALCULATE LINE_TOTAl LINES */
for(i1=0;i1<=LINE_TOTAL;i1++)
{
for(i=1;i<=N;i++)
{
D[i][0]=yy[i1][(i-1)*NUM_INSERT][0];
D[i][1]=yy[i1][(i-1)*NUM_INSERT][2];
}
BBS(D,i1,0,1);
}
ShowData();
}
毕业后,因为某些原因,这一届的学生从哪里来的必须回哪里,并且不准考研,只能推荐
。我也没在意,找个成都的电子部XX研究所就回去了。说来你们不相信,在火车上,我和我哥
讨论的都是C语言的编程技巧。
到单位后分配到XX研究室,室里看我的专业是无线电,就叫一个做硬件的同志带我,先学
习各种芯片的指令,这是我非计算机专业的毛病就出来了,一看就头大,1个月没干什么。老
同志就问我,想做什么,我说还是做C语言的编程吧。于是他们拿了一个算法给我,让我用C语
言写出来。我立刻把学校带回来的TurboC装上,只用了2天就搞定,几个老同志都很吃惊,因为
以往他们做同样的工作要好几周,于是我几乎承包了室里面的算法模拟,一年下来做了4、5个,
当然也玩了不少游戏(=^-^=),当时有个流行的叫“决战俄罗斯”,两个人玩的,没有网络,是
共用一个键盘,以我雄厚的游戏功底,和多次上班玩被书记抓获的经历,是当然的游戏王。
转正期到后,我是这一级的第一名。