{eval=Array;=+count(Array);}
对于编程,没有最好的语言,只有最合适的语言。下面谈谈常见的PC桌面端开发语言。
C++系列最大的优点就是效率高,不过缺点也是很麻烦的,上手难度大。下面介绍介绍两种有官方背书的,开发过程中经常用到的C++界面库,至于Duilib、BCG等第三方开源库这里不再介绍。
1、Qt
C++开发界面首选开源库。在C++领域,有GUI的地方都有Qt,有嵌入式的地方一般也有它,金融、工业、电力、视频监控等行业也有它。跨平台支持,文档齐全,API设计优雅,一直保持更新,它不仅仅是一套界面库,更封装了多线程、访问数据库、图像处理、音频视频处理、网络通信、文件操作等接口。
常见的抓包神器Wireshark、文档编辑器WPS就是使用Qt开发而成,下面附一张使用QSS实现的界面换肤效果图。
2、MFC
俗话说,MFC==没饭吃,虽然现在2020年都已经过完了,但是还是有大量的公司在使用MFC这一上古技术来开发界面,它并没有灭绝。不过大多数处于维护态了。新项目我想很少有公司会采用MFC来开发了。
如果你是在校学生, 不建议深入学习MFC相关技术,理解大致思想即可。
如果你已经参加工作,不幸处于维护MFC老项目之中,那么建议工作之余多学习其他技术,早日跳槽脱坑。
简单易上手,这家伙绝对是Windows界面开发的王者,背靠微软这一强大后盾,为开发者提供所见即所得的开发模式,即使是新手也可以通过简单的拖拽来开发出带有图形界面的可视化软件,不仅可以开发PC客户端,更能开发Web端。最大的缺点是要安装framework组件。
曾梦想一统天下(Web、移动端、PC端)的JS,推出了Electron,为开发者提供PC客户端开发,更有VSCode、Atom这样的成熟案例。不过最大的缺点就是开发出来的东西体积太大了,运行效率偏低。
曾经的王者,现在已经落寞到很少有人知晓的地步,虽然它还在坚持更新。将所见即所得发挥到了极致,至于到底它有多强大多好用呢,因为自己确实没有使用过,就不再妄加评论了。
如果没有特殊需求的话,不再建议大家再去纠缠Delphi 了,比较是过时的东西。
没错,Python不仅可以写爬虫,更能来开发界面。
借助于PyQT,你也可以快速完成图形化界面开发工作。下图是某大神高仿的网易云音乐的开源项目「FeelUOwn」,使用PyQT开发而成,号称是一个符合 Unix 哲学的跨平台的音乐播放器。目前该作品已在Github上开源。
以上就是我的观点,喜欢就【点个赞】吧!
C++的 QT
背景
Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。2008年,Qt Company科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。基本上,Qt 同X Window上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的MFC,OWL,VCL,ATL 是同类型的东西。
优势
C# 的WPF和WinForm
Winform
wpf
优势
Python的PyQt
PyQt5是python的一个GUI框架,存在界面设计器QtDesigner工具,可便捷的采用拖拽方式进行页面构造。然后通过工具将UI文件生成对应的python代码。
优势:
JavaScript的 electron
特点:
缺点: 1.卡,启动慢,这可能是webkit的锅。毕竟一个浏览器要支持的功能确实有点多。 2.除了主进程 你可能还需要启动一些辅助进程来完成工作。而每当你新开一个进程,起步价就是一个nodejs的内存开销! 3.丢帧,这个最严重,可我已习惯了native 的丝滑. mac下感觉还可以 win下有点够呛。 4.打出来的包太大。(很显然,即便是一个空包,也至少包含了一个浏览器的体积)
目前,最优的选择有四个:
1.如果只在win下使用,.net form是不二选择,可谓是又快又好,企业应用或定制开发都是相当好的,初学者也可以入手。
2.electron,跨平台。需要会前端,必须熟悉js、css和html。属于前端人员大杀器,如果是初学者,需要一下子学三样东西,再加上electron的进程间通信,可能会被搞懵。
3. qt5,可以使用qml(js语法)进行UI编程,但是需要懂c艹,但是写软件相当快,还可以写安卓、ios、Linux、嵌入式中的应用。
4.flutter,刚刚正式支持win平台的软件开发。谷歌出的这个东西,适合没有基础的初学者,因为是一个全新的体系,全新的语言,写ios、安卓非常高效,之后还会兼容h5。如果是初学者可以跟着走,值得尝试。但是新东西总有一些坑。
正式项目跨平台建议electron或qt,只用win平台强烈建议微软自己的net。个人技术尝试建议flutter。
我就说一种:
所有的windows桌面程序语言,都是基于微软提供的API接口编写的,而能让程序员直接调用windowsAPI的基础语言,必然有C语言的一席之地。其他所有的桌面程序语言,像什么C#,C++,python,Js等等,都是用C语言调用windows接口写出一个大概的程序框架,供后来的语言使用者进行二次开发,来实现桌面程序的设计。
从某种意义上来说,如果把安装了windows操作系统的电脑,看做一台独立且完整的机器比如cpu,那么使用C语言通过调用系统API来编写桌面程序,就相当于直接使用汇编语言操作Cpu。所以在操作系统层面,这种方式写出来的程序性能是最好的,没有之一。当然,还可以通过直接对硬件编程,获得更好的性能,但那对程序员的技术要求会极高,而且还必须考虑硬件兼容性,能写那种程序的人,其实在某种程度上就已经具备写操作系统的能力了。
不可否认,使用C语言直接调用系统接口来编写桌面程序,这不是一条轻松的路线,甚至可以说它遍布荆棘也不为过。无数人半途而废改换门庭,转投其他更为轻松的高级语言。如果你选择这条路,你必须做好心理准备,这段路程中的艰难困苦将会超出你的想象!然而你也必须要明白,一旦你在这条路上学有所成,你会发现计算机的世界竟然如此简单!几乎没有任何人可以在你面前装逼!你,就是这么牛逼!
在我的理解中,使用C语言直接调用windows API编写桌面程序的方式,是渔。而采用其他高级语言编写桌面程序的方式,是鱼。
目前,摆在你面前的,既有鱼,也有渔,你会怎么选呢?
你是选择做某种高级语言的追随者,还是想成为各种高级语言的创造者?
心有多大,世界就有多大!努力吧骚年!听说你想去星辰大海?[机智]
还可以用delphi,其firemonkey框架发布8年时间,支持跨平台:win,安卓,ios,macos,linux,后续支持webassembly,界面是控件拖拽布局所见即所得,开发效率较高。编译生成的是机器码,编译速度快,调试方便,其生成机器码运行效率较高,支持x86,arm的32位64位处理器。支持跨平台3D界面,蓝牙通讯,定位,重力,摄像等,支持多种SQL,NoSQL数据库。单个开发工具实现前后端开发,跨平台开发。适合个人和小公司用一套工具实现大部分开发需求。
编程语言这种东西无所谓,只要能用啥都可以。 主要看你老板需要和你会用什么语言。
比如 我用AS编安卓程序,当然用JAVA。不过我后台最开始用ASP和ASP.NET来做,现在换PHP了。桌面端用QT或者VB做。 涉及单片机部分控制也用C。
现在做跨平台的了 开始以QT为主了。
只要能达到目的啥都可以。
学会1-2种 换其他的也不是很难。
对初学者来建议学C起步吧。
精通一门,重新学个语言入门也就1个月的事。
win桌面端直接上visual studio啊!然后你熟悉什么语言?vb.net,c#,c++都有相应的win桌面工具。直接用就好了,非常好用
作为热爱生活的程序员的我就不太仔细分析了,直接告诉你用哪种好了。
桌面端开发:
windows平台用C# winform。优点是拖拉控件即可而且功能非常强大。缺点是界面不够美观,不跨平台。但其实技术好也可以使用第三方美观库美化界面,关于跨平台,微软正在做,已经有预览版支持。
希望一本万利,跨平台,那就学习QT。学习成本高。win平台mac平台,linux平台通杀。其他delphi,MFC建议不考虑,那是过去式。
还有一种是浏览器嵌套:就是使用第三方的浏览器如谷歌的cefsharp,嵌套网页实现。网页用js html这些。初学者需要学习的太多。
综上所述,用C#吧。
会C++ 用Qt5 非常不错 写代码效率很高
会js 用atom使用的那个框架
会Python用PyQt 写代码很快
会java用JavaFX
看语言咯
### Duilib
#### 简述
Duilib是在Windows平台上使用最广泛的类库,使用C++和XML混合编程,国内很多计算机企业都喜欢使用这个类库,可能是由于他的技术许可比较宽泛的原因。
适合于界面比较简单的软件,视觉特效丰富,局限于Windows的平台。例子:360电脑管家。
#### 优势
#### 劣势
### Gtk、Qt或WxWidget:
#### 简述
三种基本可以做到跨平台的技术,使用C/C++开发,使用者广泛。其中WxWidget使用了API嫁接方式,Qt和Gtk(包括各种绑定技术)使用自绘技术。
结构严谨,软件可以做的很大很复杂。例子:WPS和Maya。
#### 优势
#### 劣势
### Electron:
#### 简介
使用Web技术开发桌面软件,基于Chromium(Chrome)引擎,使用JS编程语言,绝大多数使用者都是原来的网页开发者。
绝大多数都是爱好者使用,处于“勉强可用”的地步。
适合大面积静态展示型软件使用。例子:网易云音乐。
#### 优势
#### 劣势
### QtQuick(QML)
#### 简述
Qt公司开发的一款基于OpenGL的图形类库,有显卡加速,类似于Duilib。采用了C++与QML混合编程。QML类似于JavaScript语言。
QtQuick下一个版本在Qt 6上更加强大,业界期待已久。
#### 优势
#### 劣势
### Atk、Swing或JavaFX
使用Java语言开发软件,有JDK加持业界积累的众多Java类库支持。有不输于VS的IDEA加持,本应该更棒,只是现在已经式微了。
绝大多数使用者都是企业开发(不追求界面美观)、爱好者(开发顺手)。
### WinForm、WPF或Xamarin:
使用C#开发,WinForm和WPF局限于Windows平台。有VisualStudio加持使用很爽。
### Flutter:
使用Dart语言,新类库,bug可能会很多。
### SwiftUI或Cocoa:
苹果平台原生界面技术,macOS平台内建支持,不是macOS专用软件不推荐。
### Win32:
经典Windows 平台API,绝大多数只有一些老软件还在使用,不是维护老软件不推荐。
10
回答7
回答10
回答0
回答4
回答8
回答0
回答0
回答0
回答0
回答