怎么还就有人不相信mfc过时了?

  怎么还就有人不相信mfc过时了?过时就是指——在目前的软硬件条件下,已经有更好的能够实现mfc既定目标的替代者出现,这与你能不能用mfc解决问题无关!其实当vcl出现的时候,mfc、owl的过时就已成定局,只可惜vcl本身不是用C++写成的,而且,为了在C++ builder中使用vcl,borland扩充了C++的语法,这多少令像我一样的C++爱好者心里不是那么舒服。
 
  更要命的是,如果一个长期使用mfc做开发工作的C++程序员,甚至是mfc的初学者,在接触过vb6、java、.net这些传统上为C++程序员所“鄙视”的开发环境/类库之后,他的第一感觉肯定是震撼——来自于这些环境所提供的rad特性的震撼。

  其实,与C++优雅而有力的语言表达能力相比,这些竞争者根本不值一提,可是他们就凭着在gui设计上的快速与简单,俘获了不少初学者甚至是有颇些功底的C++程序员的心,而且许多人在初学C++的时候接触的就是mfc,在mfc与windows本身千丝万缕的关系以及mfc出于效率的考虑对虚函数弃之不用而采取message map的设计策略都使初学者感觉异常艰难,许多人就在这里对C++由满怀激情变成了意冷心灰,难怪有人说“C++都是让mfc给害了!”。

  的确,我发现在vc初学者还在痛苦地纠缠于mfc本身的时候,c++ builder初学者已经能够运用自己掌握的知识做出真正有用的东西了。

  作为自己最热爱,最“信奉”的程序设计语言,C++难道注定要在快速gui设计方面输给别人吗?borland认为除非对C++本身做作语法扩充就没有办法让C++和rad结合,难道这就是命中的定数?

  直道我前天发现了VCF—Visual Component Framework,乌云才一扫而去,当然了,vcf没用任何对C++语言本身的扩充,只是一个普普通通而又不那么普通的遵循着C++基本语法的库,太棒了!我想这正是每个期待rad而又坚持语法纯正的C++程序员所需要的礼物。

mfc是过时了,但C++的时代才刚刚开始!

注:
vcf可以在vcf.sf.net找到!
vcf不是borland的vcl

=====================

,可后来我并没有用过vcf。

2005年下半年,我纯属偶得地做出了一个非常好用的observer模式的C++实现(http://www.codeproject.com/Articles/12113/An-easy-to-use-event)来,于是我紧接着动手利用它做了自己的C++ GUI库shutters (http://shutters.sourceforge.net/)

做这个库的目的是为了证明我的看法,即纯C++不用任何扩展也能做出易用性堪比Java swing的界面库。

确实如此,后来我发现我几乎可以拿着微软的.net framework的C#源代码直接翻译成shutters的C++代码。

在这个过程中,我甚至还发现.net framework中有很多因为C#的表达力不足而导致的丑陋设计,这让我更加认识到了C++的能力,即便在GUI开发上,也是如此。

可自从发现能copy .net framework的代码后,我就对这一工作失去了兴趣,shutters的开发也基本停滞了。

目前只有我自己的一个程序Free ChmZoomer(http://www.appinn.com/free-chmzoomer/)是使用shutters编写的。

你可能感兴趣的:(C++,windows,mfc,语言,vb,Borland)