![匿名用户](https://pic1.zhimg.com/v2-d41c2ceaed8f51999522f903672a521f_l.jpg?source=1940ef5c)
因为wpf推出时,内存普遍才256M,还需要.net环境,wpf冷启动很慢,确实跑的不算流程,那时候运行多少个程序都清清楚楚,多出来就立马杀掉,否则内存不够用,wpf一运行就70M,确实太占内存了。
随着电脑的性能的进步,比wpf慢得多的web端都崛起了,当然后来优化的也不错了,然后现在软件的瓶颈变了,老的gdi程序渲染依赖CPU,东西多了效果多了,多好的CPU都吃不消,这东西单核的。而wpf使用dx渲染就能有很流畅的动画效果,内存也富裕了,不差那几十M,后续的内存占用其实差别不大,CPU不需要渲染GDI解放了出来,但已经错过客户端的最佳时机了。
但是在需要客户端的地方,现在wpf是不错的选择,特别是这些年xaml在各个端使用,增加了很多辅助组件,以及wpf迁移到.net core,反倒给了人使用wpf的信心。
-
说回历史
其实.net组件到4.0后就不是很愁安装了,大量的游戏在使用,你没看到3dm下游戏前让你下运行库就有么,以及显卡驱动也帮微软装.net,这一点在4.0后不是主因了,再后来的系统直接自带了。
有人拿360和QQ举例,的确流行的客户端选择c++是肯定的,因为都是常驻型的,开机启动,所以性能非常重要,360依赖.net运行就笑话了,黑客把.net环境干掉360就运行不了的话,这确实是当时的重要原因,老牌客户端都是这时候诞生的,.net的性能赶不上,但后来主要还是客户端的没落,新的软件不会这么流行了,而且根据需要一般也选择winform,不是以界面为主的,所以有些新的流行软件是winform的,也有少数是wpf的,这些软件并不会比老牌软件流行,最多也就在某个领域流行,并且你也感觉不到他是winform wpf做的,用什么技术做的这已经不重要了。
说性能不够的,你没见到迅雷7那玩意,比QQ wpf版本卡多了啊,QQ WPF版用性能好一些的电脑是可以很流畅的,迅雷7是多好的电脑都不会流畅啊。
总的来说还是时机问题,导致c++ delphi 乃至vb6最适合早期客户端,后来的winform wpf占不了多少优势,即便aot编译出来了不需要依赖了,也不会有新的很牛逼的客户端软件出现了。要说使用场景的话只有用在需要客户端的企业和工业开发上了,在你需要的时候用来开发客户端当然是没问题的。