桌面端开发都用什么语言,简单分析下这些语言的优劣势对比?比如那些跨平台的,学习上手难度,有没有成熟的案例,开源框架等?急,在线等。:目前,最优的选择有
目前,最优的选择有四个:
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。
2桌面端开发跨平台的,如果你是轻量级的项目,那么我推荐你用electron, 目前使用Electron来开发的桌面应用非常多,我们最熟悉的比如Atom,VScode等等。
而且在github上也能找到许多应用使用了electron。
electron是Node,Chromium,html,css,js的结合框架,这就需要你有一定的前端基础。其实只需要了解一下electron的API就行了,其他的就像你在做web是一样的。
这种方式最大的缺点就是性能,还有透明窗口也有问题。所以在做需要性能方面占有很大成分的项目时,并不推荐使用这个方式。
那么其他的,就是最近几年使用比较多的windows directui框架,但它不是跨平台的。
那么就引出了qt,作为c++跨平台的界面框架,这个上手的话,我觉得对一般人是有难度的,因为首先需要扎实的c++功底,其次你要熟悉控件的制作原理,因为有时候你需要定制自己的UI控件。它现在在嵌入式,军工领域非常受欢迎。但是整个库非常臃肿庞大,而且开发界面的效率也非常低。如果来做互联网项目,迭代更新的速度根本就跟不上。
目前都只有大公司会采用,像maya这种生产力型的应用很多是qt做的。
还有一种是直接使用Cef加js,比如网易云音乐,就是这么搞的,但是很多和系统平台的交互接口你需要重写,等于是需要自己造轮子。工作量大,目前没有适合的框架给你套用,也需要扎实的c++功底。
其实pc端的应用基本也就windows会火一些,再加一个macos,那么选择qt应该会很好一点,毕竟你自己造一个跨平台的框架,太费时。总之,做跨平台就意味着,不可能做到既有效率又完美的实现各种功能,许多都要自己摸索。
3win桌面端直接上visual studio啊!然后你熟悉什么语言?vb.net,c#,c++都有相应的win桌面工具。直接用就好了,非常好用
4已经有公司创造性的用unity3d来做gui了,免费又好使
5我插一嘴,就以上所有人的回复,没有一个能超越delphi的,即使现在不流行了,但是就桌面级开发而言,在座的各位都是弟弟!
6编程语言这种东西无所谓,只要能用啥都可以。 主要看你老板需要和你会用什么语言。
比如 我用AS编安卓程序,当然用JAVA。不过我后台用ASP和ASP.NET来做,桌面端用VB,部分算法用了C。 涉及单片机部分控制也用C。
只要能达到目的啥都可以。
学会1-2种 换其他的也不是很难。
对初学者来建议学C起步吧。
7会C++ 用Qt5 非常不错 写代码效率很高
会js 用atom使用的那个框架
会Python用PyQt 写代码很快
会java用JavaFX
看语言咯
8PC桌面程序,如果简单一点的,用pyqt5+python的开发难度和周期都比较现实一点
9主要有以下几种技术
- Duilib;
- Gtk、Qt和WxWidget;
- Electron;
- QtQuick(QML);
- WinForm、WPF、Xamarin;
- Flutter;
- SwiftUI或Cocoa;
- Win32 API;
### Duilib
#### 简述
Duilib是在Windows平台上使用最广泛的类库,使用C++和XML混合编程,国内很多计算机企业都喜欢使用这个类库,可能是由于他的技术许可比较宽泛的原因。
适合于界面比较简单的软件,视觉特效丰富,局限于Windows的平台。例子:360电脑管家。
#### 优势
- 使用了DirectX作为底层,本质上和“游戏”性质差不多。基于C++和游戏引擎,速度很快,图形特效可以做得很丰富;
- 由于使用了游戏引擎架构,有游戏开发经验的程序员可以通用很多游戏技术;
#### 劣势
- 简陋:源于开源项目,缺乏大型商业公司支持,基本上只有一个核心库,缺少必要的周边设施支持;
- 耗电:基于游戏引擎,刷新率很高,因此比较耗电;
- 需要显卡加速支持,没有显卡和显卡性能不好都会导致应用出现问题。比如:缓慢、崩溃……
- 只能在Windows平台使用;
### Gtk、Qt或WxWidget:
#### 简述
三种基本可以做到跨平台的技术,使用C/C++开发,使用者广泛。其中WxWidget使用了API嫁接方式,Qt和Gtk(包括各种绑定技术)使用自绘技术。
结构严谨,软件可以做的很大很复杂。例子:WPS和Maya。
#### 优势
- 使用C/C++:速度快运行高效,代码严谨;
- 省电:每次只刷新必要区域,只有必要的时候刷新;
- 适用性广泛:Linux、macOS、Windows平台都支持。其中Qt甚至支持Android和IOS平台;
- 大公司支持:发展时间很长,有各种组织长期支持,各种基础设施齐备。Gtk和WxWidget都有各自的基金会支持、Qt由Qt公司开发;
#### 劣势
- 开发速度较慢:C/C++语言固有局限,为了严谨和运行效率比较繁琐;
- 跨平台外观和原平台差异:看起来有些不协调,需要开发者精细调整;
### Electron:
#### 简介
使用Web技术开发桌面软件,基于Chromium(Chrome)引擎,使用JS编程语言,绝大多数使用者都是原来的网页开发者。
绝大多数都是爱好者使用,处于“勉强可用”的地步。
适合大面积静态展示型软件使用。例子:网易云音乐。
#### 优势
- 组件丰富:继承了绝大多数网页开发积累下来的组件;
- 类库丰富:继承了npm上的绝大多数类库;
- 开发高效:Javascript语法灵活,开发效率高,运行效率可以凑合使用。
#### 劣势
- 缺乏商业公司支持,Electron是由Electron基金会和GitHub为了他的Atom编辑器开发的,但是Electron受限于Web属性的原因,只提供了很少的组件,更多组件需要使用者自行开发。
- 运行效率低:JS本身效率并不高,Web技术基于Dom(document Object Model)模型,JS和Dom模型交互效率较低,所以Electron软件卡顿是正常的。不适合计算密集型软件和图形效果丰富的软件。
### QtQuick(QML)
#### 简述
Qt公司开发的一款基于OpenGL的图形类库,有显卡加速,类似于Duilib。采用了C++与QML混合编程。QML类似于Javascript语言。
QtQuick下一个版本在Qt 6上更加强大,业界期待已久。
#### 优势
- 显卡加速:速度快,有显卡硬件支撑。
- 组件丰富:Qt公司提供了大部分组件,使用者可以简单调用,还可以使用Qt/C++传统类库。
- 开发速度快:QML语法类似Javascript,不需要编译,可以说所见即所得。
- 跨平台:Windows、Linux、macOS、iOS、Android、blackberry……
#### 劣势
- 动态弱类型:缺乏必要的编辑器支持,开发者负担较重,Electron也有类似问题。Qt6据说提供了QML静态类型支持,这一点应该可以说不是问题。
- 平台需内建显卡支持:平台受限。
### 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,绝大多数只有一些老软件还在使用,不是维护老软件不推荐。
10windows的桌面开发语言优选C#,macOS优选Swift,Linux没接触过不谈,所以如果能在这二种语言中择其一是最好的。C#跨平台用xamarin mono,已经相对成熟,开发项目没有问题,当然它并不是WORA的;Swift虽说也是跨平台,开发windows暂时还不行,Swift on windows不成熟,相对成熟的工具可以试试remobjects的Elements,但它不是纯Swift。