VC的前途在哪里?
说实话,我从VC1.0用到VC10(2010),对VC是没什么留恋的。只是项目还要用它,工具而已。
VC的搭配MFC作为MS在桌面平台的开发基础框架,它的诞生有着重大的历史意义。可以说,用VC,多数要用到MFC。
然而,MS的平台战略早已转移到.NET,所以VC及其伴生的MFC就有些不妙了。底层当然还要C/C++来干活。但MFC绝对尴尬了。
MFC诞生的时候,VC的编译器对C++的支持就不好,到了VC6(98),基本在各个C++编译器中对C++标准的支持仍处于落后地位。所以MFC用了大量的宏——标准的C编程模式来处理复杂的Windows程序逻辑。这是不得已,也是对C++非常规的使用。自然,好处就是运行效率高啦。当然,本文的目的不是对MFC如何褒贬。只是指出MFC根本问题产生的根源——为何那么多有经验的程序员说MFC“陈旧”。
90年代末(当然是上世纪),互联网兴起,Linux/Unix程序员终于有了出头之日,在如日中天的网络编程中如鱼得水。直到现在,我们看到用C++作工具的先进技术,几乎都来源于Linux/Unix平台。不得不说,VC现在地位江河日下。但毕竟VC还是Windows平台生产商出产,对Windows的天然支持最好,目前Windows在桌面系统还占统治地位,VC仍有用武之地。但不可否认,现在已经不是1999年以前了。
从市场的角度,从用户的角度看编程工具,VC还是有用,但地位大不如前。VC的前途实际就是Windows的前途。统治桌面的MS,在移动平台,完败给苹果和Google,它要奋起直追,还要捍卫自己的桌面地位。Win8、WP8、Surface等等新玩意都是这个目的。但我悲哀的发现,这里面其实没多少VC的事,VC原来能干的,现在也没增加多少,而这些是C#的天地——虽然C++也能干。看这个厂家对其开发工具的支持程度的变化,就能知道它的发展战略。起码,从VC的遭遇,应该已经看到了这个开发工具在MS眼中的地位。
掌握C#是个不错的主意,对C++熟悉的,C#上手时间极短,有个外国人写了个C++程序员上手C#的手册,几十分钟就能读完。所以,上帝的归上帝,凯撒的归凯撒。VC掌握了,VC#也要掌握。避免落伍,避免find job时陷入尴尬。
其实,如果你编程有相当的经验,不会耿耿于怀VC的前途。它的前途其实不能左右自己的前途。当然,谁也不希望自己花费大力气掌握的技术过时不能用了。VC恰恰就是一个曾经辉煌,学习曲线很陡,未来前途并非光明的工具。工具光明与否不重要,重要的是你通过这个工具学到了什么——千万别说“我就学会了VC编程”,这种结论对你个人的前途不太有利。