关于MFC的未来,有许多人都是有不同程序的担忧。有人都说windows界面向着metro风格发展,比如windows 8。随着人们对界面体验的要求越来越高,触摸时代的来临,微软是否会坚持现有的windows风格呢?据说将来的方向是移动互联网。
其实,MFC能做出那种metro风格效果,但是开发花费的时间和精力可能是其他方式的10倍。从windows7开始,微软就不提倡用MFC做界面,windows 8下微软推荐两种开发方式,一种是C++与XAML结合,可以直接编译成二进制代码;一种是直接使用C#语言的WPF。这个观点我是比较赞同的,就MFC做界面本身来讲,就不是他的强项。
虽然现在仍有公司招聘vc程序员,但有一部分原因是需要维护之前的代码。而当新产品对开发效率和用户体验都有新的要求时,mfc或许会被淘汰。靠语言糊口,那是不可能的。光做界面,工资估计也不会高到哪去,人越少,工资越高,这是现在就显现出来的。
越来越多的用户界面会以WEB方式显现,越来越多的终端会是Mobile类,这基本已是共识。就算是以后的应用是移动互联网了,那么以前做硬件的人,还是做硬件,以前做图形图像的,还是做图形图像,以前做算法的,还是做算法,以前做杀毒软件的,还是做杀毒软件。
不要担心你现在学习的有没有前途,只要你将现在所学掌握了,去学习其它的也将不再困难,程序员本来就要不断的学习各种新知识,而一个人不可能有那么多精力,出一门新技术就去学它,先学好一门,精一门吧。
微软推出的VS2010可以做出类似win7风格的界面程序,而且也很方便,其实真要说MFC未来之路的话,我觉得只要微软统治操作系统一天,MFC就有其不可被撼动的价值,而且MFC也并不是一成不变的,每次新的MFC版本发布都会有很多新的特性出来,这些特性都是微软精英们站在操作系统最前沿写出来的东西。当然,也不是说其他的编程工具不行,C#、qt之类的控件即拖即用界面还是很方便的,用MFC没有这么便利,但是,我要说,一旦你的程序往下多挖了一层,你就会非常体会到MFC的可贵之处,另外在执行效率上,MFC绝对是一流的。
MFC发展到今天,已经十多年了,尽管褒贬不一,但可以肯定,十几年的技术积累已经奠定了MFC的生存基础,即使Microsoft的长角发布,MFC也不能推出Windows的舞台,事实上,长角(Longhorn)之后的Visual Studio .NET仍将MFC作为一个重要的组成部分,在今年的Visual Studio .NET 2005中,MFC在C++中的位置依然如故。MFC的未来,应该不必担心,只要你深入考察.NET类库,你会发现,MFC的许多思想机制正悄然进入.NET,与此同时,Microsoft的第三方盟友十多年来已为MFC开发了大量的扩展库,如果Microsoft是船,第三方盟友就是载舟之水。许多人认为MFC不发展了,其实是一种错觉,Visual C++ 6的界面十分经典,特别是其中的Docking控制条机制,其实Visual C++ 6的IDE完全就是MFC写的,可是MFC类库中控制条相关的类功能很弱,为什么?你会看到许多与Microsoft友好的公司,他们很快的在MFC基础上实现了Visual C++ 6 的Docking机制,这就是Microsoft的高明之处,Microsoft很会给盟友提供机会,其一贯的做法就是在自己的商品化产品中预先提供一些有趣的特征,使得其它一些公司进行模仿以带动用户群体。Borland不具备这样的储备。MFC第三方市场的繁荣,得益于Microsoft的策略与明智。MFC可否跨平台?理论上完全可以,Microsoft不做,也是策略,但是有许多重要的产品Microsoft却默许MFC移植到其它平台,事实上,Microsoft的合作伙伴之一Mainsoft公司(Windows源码就是从这家公司流失的),几年来就是负责移植MFC程序移植到UINIX、Linux、AIX等操作系统之上。
MFC可以说作为一条主线贯穿了微软产品的发展过程,微软的荣辱自然也少不了MFC;不过现在退位给.net了,不再是主线,这是事实;行行业业,产品也会慢慢转移到.net或java上来,未来的终端不再是PC是个确定的事,也许是手机,也是平板,C#和Java已成为主流;我们这些VC程序员也只能自己进化了,这并不是一件悲哀的事,只是有些痛苦而已,也许做精VC就是我们的使命吧。
最后,我说下我的观点。不要担心你现在学习的有没有前途,只要你将现在所学掌握了,去学习其它的也将不再困难,程序员本来就要不断的学习各种新知识,而一个人不可能有那么多精力,出一门新技术就去学它,先学好一门,精一门吧,任何一个领域精了,都是有饭吃的。我感觉MFC对于程序员的帮助,不仅仅是在编程语言上(毕竟MFC用的是C和C++混合框架),更重要的是让你更深层了解操作系统底层。关于MFC的诸多名著,大家看完之后,会感叹其中的强大和乐趣,也让你在编程思想上有进一步的发展和壮大,我觉得这才是MFC带来的最有用的东西。
另外,根据我这两年工资涨的速度幅度来说,我个人觉得越向下走,挣钱越多。除了关注用户体验,程序最重要的其实还是功能、性能和稳定性。如果你只学过C#或其它上层的语言框架,我想你很难兼顾到这三方面。这正是C++的好处,一个程序的体验都要是建立在程序的效率与稳定的基础上的,没有效率和稳定,再好的体验也都是浮云。