现在MFC还流行吗?
读书的时候曾深入研究过MFC,真正入门却是从定制控件开始,然后自绘组件,然后根据xml动态绘制页面布局,然后根据css动态生生成控件,然后是lua调用控件库(玩魔兽世界时,为了帮助掌握团队动态时学会的,自己是团长)。
二年的时间过去,最终发现自己本质上实现了一个lua语言版本的浏览器。
还为了挣外快,写了一个快速页面编辑器,当然这是后话,之所以花费这么大的力气来写这些废话,其实是想告诉你。
MFC确实不流行了,但MFC也是最好的承接微软下一代产品思想的工具,简直是全世界最好的工程师手把手的指导如何编写界面库,至少一直到2022年的今天,以前读书时实现的那一套如今依旧没有过时,macOS,win11里面的那些,从底层上来看,原理依旧没有变化。
最后补充一下,mfc的失落最重要的原因是效率太低了。
编程老兵告诉你:MFC已经不流行了,但没有绝迹。新手绝对不推荐学习和使用,不跨平台,学习曲线陡,周期长,上手慢,微软已不再支持,现在微软大力推荐的是c#,正在做跨平台的事,现在一部分代码可在windows和Linux下均可运行。
有一部分做工控的,说c#开发的程序运行效率低,这个不能一概而论,很多测试并不支持此观点,因为.net语言支持的新特性,比如更加高效地支持多内核并行编程,MFC是不支持的,当然你也可以说直接用c++调用API函数,但那已不是MFC的功劳了。再者工控机如果真的需要高效控制,其实嵌入式操作系统更合适,譬如Linux,此时MFC更排不上用场,需要高效控制的程序,甚至不需要界面,MFC框架笨重,不如直接调底层API来得快,编写驱动程序需要稳定高效,但MFC搞不了驱动程序。labview新版本的二次开发,甚至只支持.net语言的开发,vc++被无视了。
之所以MFC没淘汰,一是有一部分老项目需要维护,另外有一部分特殊软件确实需要MFC编写,譬如编写CAD或者图像处理软件,MFC在图像图形处理方面的优势还是比.net程序更合适,但没人做过这方面的性能测试和对比,毕竟那些老的软件,没人愿意再用.net重写一遍。
总之,别抱残守缺,另外,你到一定层次,语言已不再是重要的东西,只是工具而已,你要解决的是业务问题,你还在纠结语言说明你的业务水平并不高,例如只是搞读写数据库,或者写些Modbus这种串口或网络通信的低端程序而已。譬如,你可以研究癌症病人的症状,将它们归结出各种“指纹”,然后通过人工神经网络或人工智能的学习,有效地推测出哪些患者可能患了癌症,这样你的目光就不会局限于语言这个低层次上面了,你会想着用语言快速实现你的业务需求,此时MFC便不占优势了,因为它不是快速编程语言。
当然不流行了,微软20年前的东西,还记得当时大学还用mfc做过一个聊天工具,现在基本上没有公司用这个来开发新产品吧,可能有一些公司需要用mfc工程师去维护曾经用mfc开发的产品。现在学这个没有[_a***_]了,就算你学的很优秀,外面用这个的也很少,公司也不会给你开很高的工资,赶紧换一个框架来学习