MFC 死了吗?

这几天和几个老外在论坛上讨论了一下用什么编程语言的问题。让我吃惊的是,像我这种一直使用MFC超过10年的人,简直变成了他们眼中的怪物。而且他们异口同声推荐C#。有个老外说他前一个公司的项目一开始使用MFC,进度十分缓慢,后来换成C#,开发速度提高了一个数量级。他认为使用C#时最感觉轻松自在。C#是他的首选。


大家都知道C#是MS为对抗Java而做的。C#我一直没有用过,但我用过一段时间Java,听说C#是纯OOP的,连int也是。还听说JIT可以将C#生成的MSIL转换成100%本地代码,从而使C#在Windows上的运行速度超过Java。C#的简单和安全让它能快速上手使用,减少了开发和维护的时间。看到的都是C#的好。既然这样,大家写程序的时候都用C#好了。像MFC这样技术又老又难学的类库,干脆消失吧。这是我的真实想法,想想我在MFC中花了几天写了个控件,人家在C#里分分钟搞定了。MFC真成了臭豆腐?我想是不是我该转行了?

 

于是乎我在google和百度里搜索了一下下列关键词:“still using MFC” "MFC dead""MFC死了"......真的是这样。在搜索到的结果里,大部分的帖子都是01-04年的。也就是说很多人在01-04年时就认为MFC快不行了。这两年反而讨论的少了,可能大家都认为MFC已经死掉了。我甚至立刻用Depends看了我电脑C:/Program Files下面所有的程序,看有多少个使用MFC。奇怪,不少啊。

 

MFC真的死了吗?答案是:没有,且很长时间都不会死。或许我去年说这个话没人信,但是当VC2008中出现全新的MFC类库,当实现了TR1的VC2008 Feature Pack发布后,我觉得所有的MFC程序员都应该欢欣鼓舞(像打了鸡血一样:-)才对。

/

可悲啊,我感叹一下。我们(Windows程序员)只不过是在微软创造的生态环境中生存的一帮小可怜,微软扮演了上帝的角色。看你可怜,给你个好用的工具(如C#)让你写程序不用那么辛苦。看MFC这把斧子已经生锈了,就拿过来磨磨,然后“邦”的一声砍在木桩上,立刻就围过来一帮用MFC砍树的老可怜感动的热泪盈眶。

/

确实,自从空前成功的VC6发布以来,MFC就像是个没人养的孩子一样,一直在外面荒着,直到VC2008。(到现在很多公司还在用VC6,呵呵,不夸张,这里面还有很有名气的公司)。这几年MS把大部分精力都放在了.Net和C#上了。因为强有力的竞争对手来自网络而不是桌面领域。

 

再回来看看可怜的MFC,这个从90年代初就为MS立下汉马功劳的老将,因为一些为人诟病的设计和陡峭的学习曲线,当然还有可怜的UI功能,越来越成为了鸡肋。我想大部分仍使用MFC的程序员都是85年以前出生的吧?像我大学毕业那会,.Net和C#初出茅庐,VB是留给女孩子用的(抱歉VB程序员,开玩笑),Delphi根不红,苗不正,桌面程序员似乎只有走MFC这条康庄大道(薪水高)了。后来发现MFC其实是陡峭悬崖,有人滚下去了,有人做直升飞机,很多人没办法,还要辛苦向上爬。当我们爬上半山腰(或小山包),俯瞰山下时,多么的得意。使用MFC必需要了解Windows API,Windows消息机制,DLL, COM......我想MFC程序员用起VB,C#来会觉得简直太简单了,没什么难度,对象都不用delete,想用什么直接找控件,简单的有点不现实。我不禁在问,这还是编程吗?是作梦吧?回到MFC,开始一行一行写代码,new完了delete,时不时来几个API,甚至嵌点asm进去,踏实,这是我习惯的编程,看来我out了。

 

我一直有这种想法,不知道对不对。像VB,C#这样的语言,把编程语言抽象到了一个很高的层次,是一把双刃剑。好的方面是,很多中学生也可以写程序了;坏的一点是,越来越多的程序员只能在这个层次上写程序了,当他们回到C/C++时,会觉得惊恐万分。就像你从奔驰车里出来钻进了一辆小面包。那么像.NetFramework运行环境这样的程序谁来写呢?MSMSMS,继续扮演上帝。

 

Microsoft Foundation Classes

不知道是不是因为这个名字,MS会一直让你活下去。

 

BTW:或许哪天我也会成为一个C#程序员,跟着MS走,有肉吃。。。

转自地址http://blog.csdn.net/superjoel/article/details/4062509

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值