我的天堂,我的地狱!

GoogleGeek 2002-12-31 07:36:36
如果你爱一个人,那末你让他学习Visual C++,因为它是天堂!
如果你恨一个人,那末你让他学习Visual C++,因为它是地狱!
----------------------------------------------------------------------------------------------
作为C++忠实的追随者,你为什么选择Visual C++,而不是C++ Builder?

 首先,从它们的应用程序框架(Application Frame)进行比较。Visual C++采用的框架是MFC。现在MFC早已不是通常意义上的一个类库了(Delphi和C++Builder使用的VCL的概念也不仅仅是一个控件库)。选择了MFC也就选择了一种程序结构,一种编程风格(我不知道有多少人在工作中真正领悟了他的doc/view/frame架构?)。但由于原型出现得比较早,MFC相比于VCL落后了一个时代(例如对于运行时识别的支持)。尽管微软对MFC的更新没有停止,但就像Borland的OWL框架的淡出历史一样(我至今清晰的记着1997年那个寒冷的春节,我第一次用OWL写出自己的第一个GUI时,心头的那份狂喜!),MFC的淡出也是早晚的事。否则,微软也不会开发ATL、WTL了,更不会有什么.NET了。

我以为,由于所有的windows应用程序都采用消息驱动机制,亦即windows程序是通过操作系统发送的消息来处理用户的输入的(The window receives the user input in the form of "messages" to the window. A window also uses messages to communicate with other windows. Getting a good feel for messages is an important part of learning how to write programs for Windows),最能体现一个应用程序框架的先进性的是它的委托模型。-----最自然的封装方式是采用虚成员函数。如果要响应某个消息就重载相应的虚函数。但是MFC采用的却是“古老”的宏定义方法,用宏定义方法的好处是省去了虚函数VTable的系统开销。不过带来的缺点就是映射不太直观,和VCL的委托模型相比,MFC的映射方法就显得太落后了。“而C++Builder对C++语言进行了扩展,以便引入组件、事件处理、属性等新特性。由于功夫做在编译器级,生成的源代码就显得十分简洁。但是由于扩展的非标准特性,使用VCL的C++Builder的源代码无法被其它编译器编译”。另一方面VCL所支持的组件、属性等都是MFC所缺乏的特性。虽然VC也能支持组件,但要通过AppWizard先生成一个“包裹”类(wrapper),不如VCL来得简洁。有很多人使用C++Builder就是冲着控件板上那一大堆组件来的,VC虽然能使用的组件也很多(也许不比C++Builder少),但由于不方便而对RAD程序员没有吸引力。

当然了,虽说MFC已显落后,但不是说它不值得学。事实上,不学MFC就等于没学VC。它的伟大之初就在于对SDK的封装的浅显!利用MFC框架开发程序仍然是目前开发桌面应用的主流模式,而且还会保持相当长的时间(想一想目前的海量的MFC资源就明白了)。即使你不使用MFC框架,花点时间学习一下MFC的封装机制对你熟悉C++的OOP机制和Windows底层功能也是很有好处的。因为,“现在成为一门语言或开发工具的高手,除了你具备基本的编程基础(如数据结构,操作系统等)之外,很大程度上取决于你对它(语言和类库)的熟悉程度,以及你灵活应用已有的可复用代码进行组合创新的能力!----这些都需要时间”。

以上是根据以前的某些帖子整理的!并不全是本人的心声------我还没有这么厉害!
---------------------------------------
*****我为什么学习VC?********
我自始至终都认为软件开发行业不应沦落为一种人人都可随意摆弄的玩具!我讨厌VB/DELPHI之流的语言,他们是对软件工程师的一种侮辱------它们导致了很大一部分的所谓的程序员的堕落!一味地脱拽鼠标和修改控间的属性的伎俩,连幼儿园的Baby都会做,更不用提搞建筑的民工了!靠!原来他们都是伟大的程序员呀!我敢肯定地说,很多人当初选择VB之流的语言,本身就抱着一种投机的变态心理,因为他对自己的实力和信心感到不足,当然了,他一定还听说过“C++好难呀,很难学会呀!”之类的的流言!你也不要和我提java这个鸟语言,它的Swing组建实现的太令人失望,但最让我无法忍受的是java那卑鄙、下流的开发工具和帮助,当初学java时,我全部使用UltraEdit写的代码!
我学习VC的开始主要是受到了闻怡祥写的一本小册子的指引!闻老大确实功力惊人!学习VC的过程中,随着对Windows系统和MFC类库的了解,我越来越感到一种美,那就是对于各种数据结构的合理的安排。(使得我都不想怎么学习数据结构了,也许这并不是一种好兆头!)“VB封装得太厉害,编程时过于依赖控件,缺少了对程序细节的思考和整体的把握,那些性能应该做成函数,那些性能应该独立出来,思路总是局限于控件,程序的功能一多需要整体策划时,VB就不如VC了”。

选择了VC,就选择的寂寞!用Visual C++编程就像一次旅行,除了要经受得住沿途的诱惑,还要耐得住寂寞!

改版后呆在VC版一点归属感也没有,致命的是没有一种团结向上的力量!论坛的斑竹所起的作用太小(也许搞vc的人比较忙!)。虽然人气依旧很旺,但是很遗憾缺少真正的领军人物,大家都在那里自己单打独斗,没有人与人之间的恩情存在!像我不知道现在在csdn的VC/MFC论坛上有多少朋友是真正的程序员,给我的感觉是70%的人都是学生!现在大部分学生和我当初一样似乎对于程序设计的本身没有多大的兴趣,反而对开发环境这种表面的东西情有独钟,大加讨论。你只要随便浏览一下帖子就会发现很多人在问“这个控件怎么用?这个消息怎么拦截,这个界面怎么做?”之类的东西,很令人寒心,难道学vc就是为了这些东西?怎么就不多看一眼MSDN呢?还有现在的COM/ACTIVEX论坛很冷清,难道我们都在学习MFC?这正常吗?

题外话:
虽然我的工作与计算机没有关系,但我这半年来,经常在csdn上熬夜到凌晨2:00,虽然很累,还是乐此不疲,因为我从心底喜欢写代码。------就是不知道该春节回家的时候如何去面对自己的母亲,因为自己的身体越来越瘦,-----自从毕业起,母亲就希望我能长胖一点,况且,我也实在不想让母亲认为我的工作很苦!从而牵肠挂肚!

一段有情有意、有笑有泪的日子就这么流过去了,就像流水一般,怎么抓也抓不住,心中难免有一种落寞!感谢CSDN论坛上的各种问题,感谢CSDN上所有的朋友,也许人生本来就是和别人不断相遇、相识的过程!
Someone who you passed on the street would be the lover of your life

psusong

2002.12.31
...全文
121 103 打赏 收藏 转发到动态 举报
写回复
用AI写文章
103 条回复
切换为时间正序
请发表友善的回复…
发表回复
KingCOM99 2003-05-12
  • 打赏
  • 举报
回复
楼下的GF是我的二奶.:)
GoogleGeek 2003-01-12
  • 打赏
  • 举报
回复
瑾以此文告别 csdn:
感谢广大朋友的支持!
我准备好好的学习一下 sdk,我需要静下心来,扎扎实实地提高自己的技术!
否则 整天在 csdn上 逛,感到很颓废----总感觉自己没有任何的提高!

学习mfc也有半年了,只怪当初没有学好sdk,使得自己现在老在原地踏步走!
----------------------------------------------------------------
六个月后csdn再见!

网安!

宋业文
南京
2003年1月12日

iamnotyou 2003-01-10
  • 打赏
  • 举报
回复
iamnotyou 2003-01-10
  • 打赏
  • 举报
回复
iamnotyou 2003-01-10
  • 打赏
  • 举报
回复
Hawk_lp 2003-01-10
  • 打赏
  • 举报
回复
同意 cker(〖烟波浩淼三千里、人鬼殊途五百年〗) 的如下观点:

你选择了WIN32平台,便已经决定了API和SDK是你开发win系统应用的底线了...
linux 的彻底开放源码给了大家一片新的空间...

---------------------------------------------------------

消息驱动是现今桌面操作系统的主流实现机制。

其实是更加深入到操作系统了,更加深入到底层的实现,每个人技术积累和现阶段的目标不一样,所选择的技术切入点也不一样。总之,都是C/C++的进一步发展和实现。

看着大家观点的进一步深入,是不是应该开发一个国内自己的可视化开发环境,很牛的那一种,是不是应该开发一个操作系统,国内现在软件业的人才其实不算少,大部分都是在做人家技术层面上的二次开发,不知看过方兴东的文章没有,说现在技术上大部分都是跟着国外走,方兴东曾经疾呼不要向微软投降,其实也是一种民族精神在里面。现在国内有了自己的CPU,操作系统还未完全实现,没有很好的可视化开发环境。
yczyk 2003-01-10
  • 打赏
  • 举报
回复
其实楼主说的话有一半我爱听,但有一半过于偏激。我很想学VC,而且很佩服VC程序员,所以学VC一直是我的愿望和目标。但我们是要吃饭,我们也要过日子,我不可能用VC做不出东西我还捧着它当饭吃。所以我要用Delphi来养活我。但我在学Delphi时我也发现,其实它一样可以完成很多功能,一样可以不依赖于控件,只要你真正掌握了window编程机制的话,我想也差不到哪里去。如果说用Delphi是对软件工程师的一种耻辱的话,我不敢苟同此观点!我觉得做人还是要低调一点好,真的,太狂容易招来不测的!
yhliu0216 2003-01-10
  • 打赏
  • 举报
回复
同感
吊人胃口,
CaptainIII(山上人)
请指教一下
GoogleGeek 2003-01-10
  • 打赏
  • 举报
回复
to CaptainIII(山上人)
消息循环,消息循环,有谁知道消息驱动中会存在消息欺骗?!
-------------------------------------------------------------
愿闻其详!
yhliu0216 2003-01-10
  • 打赏
  • 举报
回复
失敬,失敬
向各位学习,
我的答案是"没有"
numplasm 2003-01-10
  • 打赏
  • 举报
回复
我选择了VC,也选择了孤独,因为无别无它路。
CaptainIII 2003-01-10
  • 打赏
  • 举报
回复
我不是高手:只有河里有大鱼,海里没有,海里只有小鱼和更小的鱼。
借楼主的宝地,提一个问题,如果有人回答‘是’,他一定是高手:
你思考过老子(两千年前那位,不是在下)的“正反相生”思想,与“封装”和“抽象”的关系了吗?
GoogleGeek 2003-01-10
  • 打赏
  • 举报
回复
to: CaptainIII(山上人)
老兄是个高手!
佩服!
loopyifly 2003-01-10
  • 打赏
  • 举报
回复
今天是来听讨论的

我想我还没有资格去评说各种开发方法的优劣,因为我是菜鸟

所以我是来学习的,对天堂&&地狱之说很是欣赏

^_^
everandforever 2003-01-08
  • 打赏
  • 举报
回复
C也是从TC20开始的,那时每天摸着键盘.感觉BORLAND,伟大.2001年自己才买电脑,开始WINDOWS编程.不知道怎么地就选择了天堂. 现在公司统一用BCB,说开发速度快,我也承认.BORLAND,毕竟当年也崇拜过. 只是我不懂,为什么堂堂的C++,竟然要PASCAL来支持?
hardstudylulin 2003-01-08
  • 打赏
  • 举报
回复
我的天堂——————————————VC
eagle2000 2003-01-07
  • 打赏
  • 举报
回复
一个迟到的祝福!

新年快樂!
英 :Happy new year to you!
法 :Bonne Année!
德 :Frohliches Neues Jahr!
俄 :Поздравляю В ас с Новмы годо м!
日 :明けまして おめでとうございます
yundeyinzi2710 2003-01-07
  • 打赏
  • 举报
回复
受益非浅,启发甚大。
ttoth 2003-01-07
  • 打赏
  • 举报
回复
to psusong(人类失去指针,世界将会怎样?) ( )
要回答多少问题才能有两颗星啊
我现在就只有一个三角啊,好丢人啊!!
zhang865 2003-01-07
  • 打赏
  • 举报
回复
to psusong(人类失去指针,世界将会怎样?) ,
jennyvenus(JennyVenus) go home and back
加载更多回复(83)

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧