无聊的下午,来个小小的总结吧,想到哪写到哪,呵呵。
这几天被项目里的MFC折磨在,虽然自己耐着性子又开始在学,但是还是觉得进度非常缓慢。其实去年的时候也有过一次用MFC做的项目实训,但第一次接触MFC的时候就觉得那就是一怪物,纯的!!写起程序来都觉得恶心。于是乎,在心里油然而生的抵抗情绪作用下,我毅然去当了项目组的TL,也不再愿去碰那堆乱七八糟的MFC代码了。
我自从进入大学以来,学习编程已经有近4年了,从一开始我接触到的就是OO的思想,所以到现在为止,在潜意识里仍然还保留着当年老师一遍遍跟我们讲授的经典名言“everything is an object”。哈哈,对这句话真是很有感情啊!
编程语言,最开始的时候我是学JAVA的(好吧,我承认我连C语言都没学过,不要BS我,不是我的错)。学校里安排的课程大多也都是用的JAVA。年少无知的日子是多么美好啊,JAVA曾经一度是我心目中最完美的语言,以致于对第一次在数据结构课上老师所使用的那个被称为C++的东西意见天大。“为什么要使用这么垃圾的语言啊!”,可我当时真就是这么想的,“语法复杂,甚至连标准都不统一,内存都要自己手动管理”。就这么稀里糊涂的过了几年,慢慢的,由于课程需要开始耐着性子看些C++的书,一路看下去却如同哥伦布一样看出了个“新大陆”。从那门名叫“C++高级程序设计的选修课上”开始,我迷上了这门当年让我厌恶不己的语言。准确的说,现在我的JAVA都已经荒废多时了,把博客放到这也是这个原因。
可是梦想成为一个C++高手的路却不是那么好走的。
同寝室的同学一路沿着JAVA那条线走来,现在已经整天研究些ExtJS, Hibernate,Spring,Struts(当年还因为把这个词读成structs被人暴笑 T_T)这些在我看来都已经是两个世界的东西了,更别说那些css,javascript之类他们早已非常熟悉的东东了。寝室有一哥们也就用了两三晚上就用PHP整出一网站出来,虽然知道有模板,但还是让我感觉惊讶不己。
反观我现在,除了会用VS拖几个控件之外貌似就只能在cmd下面研究一下cout,cin了。我都不明白这是为什么?时间也用了不少,可是还是感觉做不出来什么像样的东西。不少人都跟我说,C++是用来做底层的,是要注重效率写算法的,可心里还是非常不平衡啊。
于是这次趁着毕业前的一点空闲时间,我又耐下心来打算学学MFC。看了一点关于windows API的基础知识。一开始写MFC,我,又彻底的晕菜了。某天我想把一个int值转成string显示出来的时候。我被神奇的卡住了,而且还是一上午 T_T 神哪,在JAVA,C#里这算是问题吗?之后经过若干次尝试,求助N本书之后,问题终于解决了。使用stringstream转换成功。刚高兴了没半分钟,问题又来了。显示在CEdit控件里的就是乱码,郁闷呐。最后我把书上的代码拿来抄了一遍,我KAO,居然还是不行!
于是乎,我坐下来,缓了下神。然后,不是开始再次的尝试,而是开始在心中暗骂MS。它娘的,没事整这么多变量啊,宏定义干嘛啊。用string不行么,非要弄出个CString;LPCTSTR这鬼东西不就是个char*,莫非换个马甲就变帅了?
/*
---------------
文中
的确是内心所想,各位看官一笑而过即可,不必与我争论其中正误
-------------------
*/
BS微软N次之后,我又开始思考一个困扰我很长时间的问题。
对于生性喜欢有挑战性的我来说对新鲜的事物总是想一探究竟。当年我第一次被MFC吓跑之后,我一直对windows下的GUI编程念念不忘。时常想寻找一个比较“完美”的C++实现的方法。也是那个时候,我才知道人们对于MFC的争执。似乎反对派将其说的一无是处(当时看的时候不禁心中暗爽,又为自己不学这个找了个理由,呵呵)也是那个时候,我还了解了QT,VCF,WTL还有wxWidgets等等库。可问题是which one ? 我那个时候连被人烂熟的MFC都一点不会,就开始学这些我听都没听过的东东?这些东西真像我想要的那么好么?就是我学了,别人用这个吗……当时脑子里的问题多多,还纠结了颇久一段时间。无奈后来还是选择都放下了。因为,我要准备考研了……
痛定思痛
我认真总结经验之后,得出结论,我必需要选择一样了,是好是歹完了之后再说吧,于是就有了我与MFC的第二次搏斗!此外,还有一个很严重的问题就是,关于基本功的问题。以前,我自认为学习C++时间不短了,原来都是井底之蛙。想要精通任何一项技能都是不容易的。更何况C++这门曾经被多少人疯狂研究过的“超级语言”。
基本功差吧,那就补吧。可是从哪里补起呢,据说C++是从C语言里演化出来的,那么从C开始?
No,我的OO神经这样告诉我。
那好,看点C++的新东西吧。于是我看那本评价颇高的C++Primer。嗯,书上这么教导我们:孩子,多使用C++的新特性吧,STL里有容器,用吧;char* 字符串,扔到垃圾桶吧,这里有更好的string……哈哈,看书的时候心里巨爽,这语法,多么美妙。
可是我一合上书就深深体会到一个道理——现实是残酷的!我眼里所看到的代码,全都是各种各样的混合体。char* 的字符串依然满天飞,还有那些C语言里我都没见过的函数。
唉,混乱啊,what do I do ?
呼~~ 这个点不早了,先写到这歇了。明天太阳一样出来,日子照过,慢慢来吧。