我的程序之路,悲凉中的美 转载啊
程序开发这条路理解起来,真是花掉了整个青春,才开始学会c的时候,以为有了c可以绘出整个世界什么都不怕了,后来遇到了C++的面像对象的设计,里面讲类的时候恶心得要死,认为类这个东西一点用都没有,无非就是函数的集合,把写得太多的一些函数再用一对{}括起来就是一个类,当一边想是谁发明了这个恶心的东西,一边又在研究怎么花几个星期用C做个WINDOWS窗口出来,时间就这么晃啊晃,发送要用c写window程序太复杂了,自己没有控制权,大部分都是写函数让操作系统回调,而且也不觉得c++的面向对象能帮什么忙,当时看了VC的书,狠心放下一学期的时候钻研这个vc最后无功面返,现在已经记不得是那本书叫什么名字了,如果记起来了一定要把作者骂个狗血淋头,真是被那本书害得惨了,如果当初不是读的那本书,或没有读过那本书就不会被误寻这么远,当时买那本书的场景还历历在目,在书店里挑了半个小时,那个时间段正是对dos下的tc用得很熟悉,想进入window开发的行业,可是一巧不通,不知在哪里听到vc,vb这两个词,又听说VC是功能最强大的window开发语言,我想要学就学最好的语言,难点没关系,于是就去学vc 为的就是要windows开发一个能显示的窗口程序,也不知是哪本混蛋书上或媒体上说c 是功能最强大的,其它的语言都没C强大,因为它是最底层的,这样的论点到现在还在到处流患,不知道又要害多少人,于是我就想,竟然我连最强大的c都会了,那么世界上其它语言不是问题,我在书店里挑呀挑,就在几本书上挑了一个多少小,边看边挑,最后挑了一本,最便宜的好像叫什么 24天精通vc++程序设计了,花了我好几顿没吃饭省下来的钱,这本书买来后就像恐怖电影里的主人翁坟场捡回了一个不干净的东西回家一样的恐怖,现在想起来那真是太恐怖了,不止毒害了我一个人,还害了我一个最好的朋友,这个书后来被他接去看过,由于他比我接触的电脑晚,很想学开发,大学里第一年雄心雄心勃勃想要好好学电脑,有一分作为,不料上大学第一年不利遇到了我这个朋友,更不利的是遇到了这本书,便借去看,以致于他原本很自信的他在这本魔书的指导下,费了一学期,再加两个月的署假,和不知多少的通宵达旦,终于用那本书里讲的c++用C写出来了一个一加一等于二的程序,享受了成果之后,他开始怀疑自己的智商,从此一觉不震,再也没有在学习上下个任何功夫,越来越失落,我总觉得可能是那些打击对他太大,或是费光了他比生的精力,未老先衰, 原本很有希望的他大学毕业后,一事无成,到处拉板板车,当保安谋生存,想起此事就觉得太对他不住。
我了情报也比他好不到哪里去,费了我一个学期,每个科都不管,只管攻本书,现在想起那本书真是太经典了,讲到c++的面向对象用了四页纸把全都讲完了,以至于我实在搞不懂当时那个::成员指定符是干什么用了,把C++面向对象与C重要的区别一笔带过了,我当时也以为C++只是C的升级,多了class关键字而已,然后继承抱着书, 以为是发现了世界最难的圣经密码,天天研究,通宵达旦,白夜不分,日夜无光,最后实在撑不住了,决定放弃,永远不碰C++,经过一段时间的调养,发现不对劲,自己喜欢编译,手痒了怎么办换工具,用vb,不行习惯了c的语法不喜欢用vb了,那么再看看,最近流行写木马,学校也开始有宽带上网了,那太好了,网上一搜索,教写木马的文章c++ builder这个代码怎么简单多了,都是一些控件要它怎么样就怎么样,太好了,于是就用学了几个月的c++ builder 拖了几个框框,做了几个程序,还像模像样的,自己满足得很,真是相见恨晚啊,后来想我的程序不能这么简单要复杂些,至少要漂亮些吧,那么怎么办呢,最简单的办法装控件,可是c++ builder的控件太少了,于是一搜索,啊 Delphi控件一大堆,并且和c++ builder一模的使用风格一家公司出口,那就用Delphi吧,虽然语言恶心了点,但是可以慢慢习惯嘛,于是就在Delphi上天天装控件,装了一堆又一堆,控件下了一个硬盘又一个硬盘好了,真是太爽了,总算可以写个有用的程序了,哪怕是一个框框,但是运用在windows上的,别人可以使用,可以运行,我就有成就感,还写了不少程序,堆满整个硬盘,当然都是拖控件网上copy代码然后组合,后来硬盘坏了,差点痛哭一场。
还记得当初rpc漏洞流行的时候,随便一抓一大把rpc溢出的肉机,都是校网段内的,于是天天用溢出程序在网上溢啊,天天在于校内的肉机,看别人的日记,看别人的照片,还有看女生电脑里的A片(女生电脑里发现A片,当时吓一跳),玩厌了,就放自己做的病毒吧,拿来Delphi在网上copy一断自动打开光驱关闭光驱的代码,然后Delphi开发的程序窗口设为隐藏 Application。ShowMain = false;编译好就用批量溢出工具,现在记不太清楚了好像是kath2。exe 反正是安全焦点出的,一批批地溢于,那个漏洞真是太严重的了,整批整批的漏洞,然后自己开个tftp 服务器,远程就tftp -d 命令下载我写个的病毒,一个一个地放进电脑;日夜不分地工作,一点不知累,结果全校的大部分电脑都中了魔鬼,每个寝室都以为见鬼了,每台电脑都不停地打开光驱关闭光驱,一直个不停,第二天看到好多人排除到电脑城去修电脑,当时玩得兴起,一点不觉得累,现在想来那段时间既苦又甘甜,电脑无情,我的整体青春都这样伴随着那台三星550显示器和一个明基鼠标还有一个不知名的键盘渡过了。
用了delphi是我人生中的大转折点,我在这里学会了面向对象编程,思想,至少入门了,当想到这里又要把c++和写那本书的人骂了千百遍,命苦啊,真是相见太晚,不过也不晚,后来它倍伴我的路还长着呢,天天玩着delph乐不思蜀,开好心,我终于找到了程序开发和现代程序开发(windows程序开发) 精髓了,我现在什么都会了,甚至连开发iis都会了,只要给我时间我就可以用idhttp控件可以做一个web服务器然后把微软的iis抵跨,很有当年在初中时不知哪位伟人说过:给我一个支点我要撬起整个地球一样的豪云壮志,甚至还开始设计过如何设计一个与asp的类似动态解析脚本引擎,现在想来真是恐怖啊,真是学的越少胆子越大,可能没人教原因吧;我还是这样继承意淫下去,我的思想里形成了要开发就用delphi,要会delphi,就是要会用delphi控件,于是天天研究使用delphi控件,大部时间是学习如何使用这些控件,还记得那本经典 delphi6组件大全 从头到尾巴地查呀查,近千页的书翻来覆去查了几遍,终于把delphi用像模像样了,我那时高兴啊那个成就感啊,现在我终于知道程序什么是面向对象的软件开发了,其实就是面向组件的软件开发嘛,为什么要玩这样的文字游戏呢,对象就是现实中的东西,把我们写的任何东西都看成是现实中的可摸可触的物体来做软件一切都简单了,这就是面向对象,世界万物,无非就是属性方法事件而已,任何实质的东西,都是由这三个构成,按钮,有长有短,有颜色,有位置,这是属性,按钮要做的事,就是方法,按钮什么时候做,这是事件触发,找到了面向对象就是面向组件的感觉比捡到钻时开心多了,我终于掌握了领域最深奥不可测的东西,于是把任何东西看成对象,看成是由事件属性方法构成对象而已,于至于后来刚工作的时候,还打算把一个类的属性方法事件各写在一个文件里,被架构师痛批一顿,可见这个思想的影响之大,拖组件的面向对象是会了,可是一直认为Delphi的组件来的是天女下凡,鬼斧神工,不知道是怎么来的,反正是Borland的神仙做的,我也不知道怎么搞出来的也不关心,反正我会用组件为我做事就可以了,在程序里我可以改变组件的属性,想让它做事就调方法,想知道组件的内部情况就处理类的事件,好爽啦,我得道成仙了;
然而时间长了也不太爽,我发现第三方控件那么多,写的人也多,有的还很简单,于是就想自己学写写控件吧,找来几个源码看呀看,还有一本叫 vcl源代码分析的书看来云里雾里的,还是不会,那就把别人的简单控件点的控件改一改,那种就一个pas文件的控件,拿来改一改,先就改个控件名字,于重新编译一下,啊通过了,名字变成我的了,再改个变量值看看有什么不同,就这样改呀,试呀试,哈哈,改得面目全非后竟然可以实现我的功能了,成了新控件,于是就走上了改控件之路,我已经熟用继承了,面向对象类的三大特征 封装这个知道,函数就是封装,类是用于封装函数的,虽然多此一举但忍忍了还受得住,可能代码量大了有美学上的价值,继承,这个会用,就是在启动Delphi后什么也不做,运行一个简单的窗体,其实默认的程序是继承的TForm父类,这个被我多年的老眼算是看出来了,后来知道做控件要继承TComponent类,继承领悟到了,原来继承目的就在:你要做一件事,而不知道要怎么做起,父类把一些事给你做了,你不管它是怎么做到的,也不管为什么这样做反正继承它就OK了,继承理解得八九不离十了,就剩下多态,不知这是什么玩意,反正吓不了我,反来发现Delphi可以写同一个函数名可以写多个不同的参数,就是函数重载,有人说这就是多态,原来多态就是函数重载,哎这有什么先进的,难道那些人都不愿意为自己的函数取个名字吗,就算加个后缀一二三也不算什么问题吧,看这个多态也是狗屁价值没有;甚至认为面向对象的三大特征都是用来 虎弄人的,比如 继承完全可以做成函数写到另一个单元,用的时候再调一次写好的函数库,也可以实现重用,不用改代码,封装还是那样原理,就是为了把方法包起来好看,怕方法写多了不好看,那个多态就是多余,函数重载不如把函数改了加个后缀什么的,这不可以代码重载了吗,用的时候也知道这几个函数是相关的只是后缀多了一二三,我是这么理解的;但是DELPHI的控件是面向对象的完全体现,我认为那是DELPHI自己在语言级做得好,那些属性方法是Delphi变戏法变出来的,因为Delphi语言支持属性,支持事件;然后方法就是C里面的函数,所以不如说Delphi设计了个面向对象的东东,可要说c++是面向对象,我还是不能接受,我查过c++ 不支持属性,也不支持事件,何来对象呢?事件属性方法,两个都缺了还叫面向对象,我不同意,难道要意淫高人从方法里意淫出一事件和属性出来,我还是继承用真正的面向对象的DELPHI。
时间这么过了,我发现Delphi也并不完美,直到有一天,我发现Delphi也有垃圾技术,加入了狗屁用没有的东西,那就是接口,有一天写控件,说使用者自行实现某个接口,我当时一看傻了, 这没听说过,以为是什么高深的东西,后来连夜一详查,呀,原来是垃圾,就是把类的方法实现全都去掉只留类的定义,我靠这不是玩人吗,这有什么用,就跟c的头文件一样,唯一的用处就是让人方便查阅读,可是我的记性好不需要接口,可原作者记性太差使用了接口,我埋怨了半天不得不放弃使用这个控件,很长一段时间我认为接口真是屁用的都没有,面像对象里所有被炒的特征,什么继承,多态,封装,共享性,最没用的就数接口了,连美学价值都没,简单画蛇添足,谁哪么无聊,写程序只写定义不写实现,程序就是做事的,做去做的就是方法,只写个定义就好比拿个空碗吃饭,无意义的无聊
先到这里,把今天工作写完再续