日期:2014-05-17  浏览次数:20799 次

一个计算机爱好者的不完整回忆(二十)第一个windows程序
  前面说过了,我第一门科班学习的编程语言就是Fortran77,其实我一直很奇怪为什么现在大家第一个程序都是hello world!可能是c语言的第一个程序是这个吧,反正我学Fortran77的时候第一个程序不是这个,第一次看的basic教程也不是hello world,QuickBasic教程的第一个程序也不是,不过后来再看一些语言的教程的时候都是hello world了,应该是跟c语言学的吧。
  DOS下面的编程语言最熟练的是Fortran77,当然,仅限于当年,现在几乎都不会写了,还得看着书才会写了。basic是我DOS下面另一个写过程序的语言,而c语言我曾经把一本很厚的c语言教程看了一遍,但没真正写过什么程序。如果是数学计算的话,还是Fortran77好用,一是我比较熟练,二是本来Fortran就是为数值计算而生的,理论上应该速度比较快吧。与其它语言相比,最怀念的就是Fortran的复数运算,直接内置支持,工作中还是有很多时候用复数运行解决问题比较方便。后来都是用Point类型来当复数,然后自己写运算的函数,不过还是觉得没有直接支持复数的Fortran爽。
  在windows下面用的第一个编程软件是VisualBasic4.0,装完后运行,面对着一个窗口不知道怎么办,在什么地方写代码?入口在哪里?能琢磨明白的就是可以在窗体上面拉一个按钮出来,但是怎么写代码就不知道了。当时也没有任何教程,唯一的资料就是VB自己带的帮助了。还好,当时VB4自带一个介绍的教程,按照教程知道了在什么地方写代码。当时给自己定了第一个目标,把窗体上的按钮上面的文本由button1改成ok,于是在窗体上画了一个按钮,然后在按钮的onclick事件中添加了设置button1的Caption的代码,试了两次,成功了。以后我再用新的可视化编程语言的时候,第一个程序都是更改按钮文本为ok。知道了在什么地方写代码,就可以写程序了,终于可以很容易的显示图片了,而且还很容易的就做出来windows的窗口,当时很是兴奋,可以完成我第一个比较像样的游戏了。我的第一个windows程序就是做了一个梭哈的游戏,当时一切都是全新的,除了基本的数值计算和逻辑判断外,其它的一切实现都是新的,从图片怎么显示隐藏,怎么显示提示一切都要一点一点去看帮助琢磨。当总体上做得差不多的时候,又有新的问题出现,因为当时我只会在按钮的事件中写代码,但是这就意味着程序运行后需要按一下开始按钮才能初始化所有数据,这有点太不专业了,应该直接启动后就初始化才对,当时在帮助中并没有找到程序入口main()的信息,倒是发现了窗体的Load事件,这里面写代码就可以在窗体出现后一切都初始化好了,在很长一段时间内,应该说在我用VB期间我都是把初始化信息放在这个事件中的。最后这个梭哈游戏做的还不错,同学在我的电脑上玩得还挺有兴趣。
  VB4我只用了也就不到两周时间,因为很快我就有了VB5的光盘。用VB5编的第一个程序也是梭哈,完全从头开始编的,效果更好了一些。VB5给我印象最深的就是它的帮助,条理清晰,虽然没有查找功能,但是能够非常方便的找到想要的内容,还有最重要的一点,它是中文的。一两年后我看到过一些VB的书籍,我一看,这不就是VB的帮助直接复制粘贴过来的吗?在我用过的所有编程软件中,只有VB5的帮助我是完完整整地从头到尾看过至少两遍以上,那时候也没看什么教程,就是看帮助。这个习惯一直保持到现在,以后用VB6、Delphi、C#都是直接上手就写代码,不会的地方就去查帮助,等已经对这门语言有一定了解了之后才会去找本什么指南、教程之类的书来看看,对自己掌握的知识进行查缺补漏。
  VB5与VB4区别很大,从VB5开始就不再支持VBX格式的控件了。当时买了很多关于VB编程资料、控件方面的光盘,里面有大量的VBX控件,可惜都不能用了。VB5其实用的时间也不能算太长,因为中国的计算机行业已经逐渐跟国际接轨了,很快VB6就出现了在我们的面前。对于我来说,VB5与VB6差距不算太大,反而不喜欢VB6的帮助。现在唯一能够很清楚记得的差别就是VB6有split函数,而VB5没有。虽然后来一直用VB6开发程序,但是由于VB6开发的程序需要msvbvm60.dll这个动态链接库,而windows98上面并没有带这个库。所以,我为了给别人程序不至于要人家也装这个库,通常都把VB6做的程序再用VB5重新生成一次,这样别人直接就能用了,也正是因为这个原因,我才发现VB5比VB6少一些函数。
  VB5毕竟功能上差一些,所以后来为了在网上发布一些软件,就换成了Delphi,同时开始关注C#,Delphi用了五六年,开始一直使用C#。
  我基本上是把自己定位为做普通桌面软件,所以C++基本上没怎么用过,用VC6做过一个测试程序,用BCB做过一个小软件,所以都不算数。需要底层一点的我一般用Delphi来做,虽然不如C调用系统API那么方便,但好歹我也都用Delphi实现了。
  除了C#是为了跟上时代脚步才去学的外,其余的都是由于软件需求本身才选择的语言。不过自从用了C#后,觉得真是不错,唯一缺点就是框架本身太大,做小软件有点太夸张,通常还是用Delphi做,偶尔用C#。不过现在网络速度这么快,对于给能够直接联系到的好友做软件,一般还是用C#,反正下载一个.net框架也没多慢,而编些软件确实方便快捷很多了。