分享

开发Windows平台下的软件用哪种编程语言比较主流比较好?

 星光闪亮图书馆 2020-01-27

谢谢邀请!

Windows下桌面开发其实已经非常成熟了,C++、C#、WPF这就基本代表了Windows上桌面开发下的几个关键词,不过也得看你的实际需求,毕竟在满足需求的前提下,快速开发你难道不想试一下Scratch和Electron?

90%的桌面软件都是C++开发的

C++毫无疑问还是目前桌面开发的第一大编程语言,你所熟知的几乎所有的大名鼎鼎桌面应用基本上都是C++开发的,QT越来越成熟之后,相比于纯净C++你本质上已经拥有了更成熟的轮子,拿过来就可以直接装车。

当然大企业可能有自己的GUI库,小企业的话也可以用成熟的解决方案。比较成熟的wxWidgets、GTK、Webkit、Chromium等都是比较成熟的桌面开发解决方案,也基本上都是C++解决方案,不过还是那句话QT5出来之后,基本上已经在这领域是绝对王者,Deepin Linux的桌面DDE就已经完全转向QT技术栈。

有很多经典软件都是用C++开发的。Windows/macOS用了很大比例的C++,尤其是UI方面C++是主要编程语言;Linux领域的Gnome、KDE桌面环境,以及国内的Linux发行版Deepin Linux的桌面DDE;Microsoft Office、Adobe Photoshop、The GIMP都是用C++开发;MySQL、Oracle、Microsoft SQL Server主要也都是C++开发;IE、Firefox、Chrome、Safari都是用C++开发;集成开发环境visual studio、搜索引擎Google也都是用C++为主要开发语言。

C/C++毫无疑问是性能的代名词,因此很多C端的产品还是会用C++来做客户端开发,也找不到比C++更好的解决方案。

C#开发快速、开发成本低效率高

相对于C++来说毫无疑问C#毫无疑问是更方便的解决方案,可视化编程做得做好的就是Delphi、C#这两门编程语言,直接拖控件开发起来不要太舒服,微软也为大家准备了丰富的参考资料,channel9和MSDN能帮你解决你几乎所有你遇到的问题。

C#相对于C++来说门槛也相对更低,很多轮子都给你造好了,你拿过来就可以用,这一点比C++还要出色,微软直接给了一套解决方案,C#对于开发者的要求也相对更低,开发的效率也相对较高,假设你的软件面向的是行业市场和企业市场,这些往往不会像C端产品一样对你的性能要求那么高,因此C#尤其适合用来做一些企业业务客户端。

总之相对于C++来说,C#的性价比要高很多,也是目前最强大的GUI解决方案,英伟达的显卡安装程序也是C#写的。只不过现在桌面开发领域基本上越来越萧条,只有专业软件还会开发桌面客户端,很多C端的产品要么转Web了,要么就转移动端,加上很多应用都对性能有极高的要求,这一点上C#没办法取代C++的地位。

最好的跨平台桌面解决方案Electron

要是换了以前,大家肯定不相信前端技术会在桌面开发领域运用得这么好,不仅仅是移动端拥有React Native、Flutter(主要是Dart)等解决方案,Web App的发展也进一步推进了桌面开发的进步,Electron就是非常有代表性的“前端”桌面解决方案。

Electron跟Web App是一样的道理,主要就是为了互联网企业频繁的需求变动,以及减少多平台开发的成本而存在的,很大程度上真正实现了一次开发到处运行的目的,这一但是C++/C#没办法相提并论的。

大名鼎鼎的Visual Studio Code、Atom两大编辑器,Postman客户端、Etcher镜像创建工具、墨刀原型工具、最美终端工具Hyper、最美效率工具shift、Skype桌面客户端、WhatsApp桌面客户端、Slack桌面客户端、GitHub Desktop、GitBook、Boostnote笔记软件,Eagle图片管理工具,WordPress桌面版本等众多重量级软件客户端全都是基于Electron发展起来的。

目前桌面开发有衰落的趋势,尤其是互联网化、移动互联网化,很多都被搬到了Web和移动端,当然在专业软件领域、以及游戏领域等,还是离不开桌面开发,C++依然是老当益壮,而C#和Electron这些技术相对来说比较现代化,不过相对于C++的性能还是有很大的差距。

本文为字节跳动签约作者EmacserVimer悟空问答原创文章

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多