现在MFC还流行吗?

网游魅力达人


不流行,但是也没有灭绝!


这个远古时代的产品,如今就连他的亲爹微软也不再看好,MFC=没饭吃!

  • 如果你还是在校学生,建议你了解MFC的思想即可,不必去深究;C++的界面库,去学学QT,不是更香吗?国产化当头,相信QT的市场会更加广阔!

  • 如果你已经工作,并且很不幸,目前的开发以某一祖传代码为基础,且是MFC累积的,那么我只能建议你业余时间学习掌握下QT,随时准备跑路吧!


为什么力推QT呢?答案很简单,对于C++而言,如果你主攻客户端方向,如果你不懂QT,恐怕说不过去了吧。而且它语法简洁(相比MFC),跨平台支持,而且推出的QSS可以让我们像Web开发中CSS那样,愉快的进行界面UI的布局了。

下面就是一张采用QT提供的QSS


为什么说MFC还没有灭绝呢?其实现在很多特定行业还是有一定需求的。不怕各位看官笑话,我司的产品目前就是搭载在MFC这套代码框架上,虽然部分界面采用了QT重构,但是整体仍以MFC为主,当然,我没有参与产品的开发任务。


在这里举一个简单的例子,我们以某勾为例,输入MFC关键字,全国范围内职位还是有的,虽然不多,当然一家的数据不够准确,仅供参考。据我所知,很多的非互联网行业MFC还是有用到的,就像XP目前还有一定的市场领域一样!


一个程序员的奋斗史


看了一下,这个问题,几乎100%的回复者说MFC过时了,这么大概率的回答让我很吃惊。

先说结论,MFC不流行,但是没有过时。

众所周知,C++难学易用,是一门经典高效的编程语言。MFC作为Windows编程框架,曾经有一大批拥趸者。但是微软并没有在MFC上做更多的创新,比如,没有像第三方公司的控件一样,在界面上发布新的工具。微软把精力投入到C#上去了,甚至搞出了Visual C++ .NET这种帮助MFC程序员向C#过渡的工具。

微软搞.NET的初衷,是为了与JAVA竞争,是为了在跨平台应用上制衡JAVA。后来互联网快速发展,桌面应用反倒是成了边缘化小众的需求,大量码农跻身于互联网公司,C++和C#被冷落了,用户占比在日益减少。

现在的桌面开发,除了C++就是C#,其它还不够主流(我可能孤陋寡闻了,国外没用过VS的程序员也有一大把)。C++发展了C11/C14/C17,这部分便利被大多数码农忽略了。第三方控件也极大地填补了MFC界面上的不足。但是C++和MFC对新手要求高,没有C#上手快,这是毋庸置疑的。在当今追求效率的年代,年轻人无疑会选择C#(更多的年轻人会扑向互联网,因为那个行业薪水更高)。

但是,C#的随意性会严重破坏程序员的良好素养,一个不自律的程序员会写出一大堆混蛋代码,让后续的程序员,或者让一个C++程序员哭爹喊娘,直接崩溃。

我手头上就有一个项目,几位“前辈们”写的6000多行的.cs文件有两三个,变量漫山遍野,数据处理层次不分,界面迟缓,而且不懂行业应用,充其量算作实验室的半成品,几乎没有实际价值。

C#的便利是可以更快捷、更加无节操地引用第三方控件,这样做的后果是,爱偷懒的程序员会过分依赖各种控件,强行把不合适的控件应用于复杂的工业领域。这在C++/MFC程序员看来,是不可想象的。

说多了,我的意思是,互联网行业的程序员不适合讨论这个问题。桌面应用,MFC或者C++程序员并不是过时的,差别在于,一个C#程序员三两个月就能上手,但C++程序员需要三五年时间沉淀自己。

无论做什么,都要有良好的规划,严格自律,不能拼凑代码。急功近利,只能制造一堆垃圾。


一枚老头


大型的工业级软件只要是有界面的全部是MFC。如UGNX,CATIA,CREO(PROE),CAD,PS,CORELDRAW......如果用wpf,winform。。。后果不堪设想。不说net没有大型桌面应用的经验,更不说在这样的大型软件它的性能如何的低下。C语言老吧,当你祖祖了,但它是计算机的基础。MFC就是WINDOWS界面的基础。

我要打开一个600M的文本文件且是一行行的长短不一,对,用户就要那么大,老机子上一次差不多吃掉一半内存了,超大型的数控加工代码,用户的电脑老的新的都有,你不能要求用户都用64位最新的Win10操作系统,你没有权利要求他们那么做,你做的只能去适应他们,否则他就不用你的产品。我用C#和C++都试过打开超大文本,要立即显示且能立即能浏览各行,你不能去分段读取,两者速度没法相比,你在老的winXP的工控机上加载个超过3秒用户就烦了。

工控软件首先讲究的是性能,界面华丽只是锦上添花,如果影响性能,你就舍弃华丽的界面吧。这跟生活消费类软件根本不一样。


夏日风41


1.答案。

绝对不流行。

2.原因。

大家都知道市面上编程软件五花八门,强弱不一,又是跨平台,又是高效率的。二十几年前的产品自然竞争不过,所以微软大力推出与推广c sharp,力压群雄!至于mfc也只是维护再搞些收购,如下图它收购的扩展库界面。

3.建议。

我06年接触mfc,使用它编写运动卡,各种采集卡啥的,流不流行不重要,你工作赚钱需要它才重要。各硬件厂家,软体库厂家都很好的支持mfc,近些年也开始提供c sharp开发资料。所以选择就在两者。

4.总结。

c sharp是真的好。

工业控制多考虑向下兼容,你得考虑老旧的设备,项目,会c sharp的很难学mfc,反过来很极为简单。所以先学mfc再过度c sharp 更明智些。



工控编程


MFC的时代已经过去了,就像白胡子说的,这个时代已经没有我的位置了。

MFC多年不更新不说,她赖以存在的Win32也一并老旧。MFC UI编程一个是界面老旧,数据库接口原始难用,COM,Activex被微软封禁,作为继任的.NET都快淘汰了,MFC的处境可想而知。

这些年,微软有背叛Windows,投降Linux的趋势,所以MFC的机会只存在于那种外包的老旧系统维护工作中。

不管是嵌入式还是服务器,都是Linux的天下,移动端是Android或IOS,Linux下的编程还能吃上十年,而作为桌面应用的开发框架MFC,现在谁还在意呢?

当然,如果要学习设计模式,MFC还是一个宝藏可以挖掘的,如果时间足够可以钻研钻研,她的MVC的实现还是挺强大的。


IOT编程


当然不流行了,微软20年前的东西,还记得当时大学还用mfc做过一个聊天工具,现在基本上没有公司用这个来开发新产品吧,可能有一些公司需要用mfc工程师去维护曾经用mfc开发的产品。现在学这个没有前途了,就算你学的很优秀,外面用这个的也很少,公司也不会给你开很高的工资,赶紧换一个框架来学习


小罗在厦门


搞基础桌面平台之类产品的用MFC很方便,效率也高,主要分部在有实力的大企业,积累多年,有自己成熟的技术产品体系,搞互联网项目应用开发的大多是用java,后台各种服务部署五花八门,又跨平台,不过绝大多数属于快餐式应用,对java的技术使用也比较有限,像阿里巴巴、百度等少数企业就属于高端技术应用了,总之,学好MFC不会差,学精通不会没人要![祈祷][祈祷]


追求卓越返璞归真


MFC只是个库,会C++还可以用QT,流不流行没啥关系,主要是学思想。MFC深入浅出这本书介绍的就是其思想,经久不衰。打个比方就好比你手中有钱,买什么东西决定权在你。


用户675495765264


和windows底层打交道,mfc就是一把钥匙,就像你可以把车外形做的最漂亮,但是发动机什么的还是原来那些东西。但是你非要用mfc做界面,那就是自讨苦吃,非要用手术刀切西瓜


问道三思


现在上位机Mfc据说,已经不怎么用了。

主要用的是QT,Labview等工具。

但是,还有很多软件是用的MFC.


分享到:


相關文章: