• 生活小妙招免费各类生活中的小问题知识以及音乐简谱等,是你了解世界未知知识的好地方。

桌面端开发都用什么语言?这些语言的优劣势对比有哪些?

十万个为什么 空空 2024-3-18 23:24:19 8次浏览

关于问题桌面端开发都用什么语言?这些语言的优劣势对比有哪些?一共有 5 位热心网友为你解答:

【1】、来自网友【大唐李卫公】的最佳回答:

C++,尤其是 QT 是个非常好的选择

C#,.NET 非常好用

Electron.js

现在就推荐这三种方案吧,根据自己的需求进行合适的选择。

【2】、来自网友【木子教程】的最佳回答:

QT、WPF、PyQt、Electron 桌面应用解决方案

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 是同类型的东西。

优势

  1. 非常多的跨平台 Desktop Application 是基于 QT 编写的,它不仅能够保证跨平台,而且能够将运行效率最大化。
  2. Qt 适合一些性能要求高的桌面应用,如果你只打算做桌面端的话。或者是一些特殊的场景,比如你要做个类似绘声绘影的视频编辑器,做个类似 word 之类的桌面应用,那你用 electron 要么是没法做,要不就是体验非常烂。实际应用上,比如 wps,yy 语音,VirtualBox,以及部分 adobe 的桌面工具都是 Qt 做的。

C# 的 WPF 和 WinForm

Winform

  1. 大多数人开发 CS 程序都是基于 Winform 去做的,它的有点在于简单、高效,但是它的缺点在于,如果你想深入的美化 UI,需要耗费很大的力气,对于目前主流的 CSS 样式表来讲,美化 Winform 的界面以及自定义控件是需要耗费更多的时间的。
  2. 写的程序如果需要改界面牵扯很大。代码的编辑可能会导致更多的错漏出现而不自知。大工程改界面更甚。

wpf

优势

  1. wpf 需要学习 xaml,有全新的 ui 描述语言,特别是可以通过模板的嵌套实现复杂的元素,通过 style 实现类似 css 的功能,通过比 winform 完善的多的数据绑定机制实现业务逻辑可以专心对数据而不是界面进行开发。学习 wpf 可以更方便过度到其他 xaml 相关技术,这是微软目前广泛使用的技术,比如接下来的 windows 通用应用。
  2. 采用 mvvm(model、view、viewmodel)来写,任你界面改翻天,后台代码不受任何影响。
  3. WPF 不能运行在其他操作系统,并且在 XAML 中编写样式表,通用性还是不如 HTML 强,从学习应用的范围来讲,还是 HTML 更好一些。
  4. 与分辨率无关
  5. WPF 是基于矢量绘图的,因此它产生的图形界面能够支持各种分辨率的显示设备,而不会像 WinForm 等在高分辨率的现实设备上产生锯齿。
  6. 硬件加速技术
  7. WPF 是基于 Direct3D 创建。在 WPF 应用程序中无论是 2D 还是 3D 的图形或者文字内容都会被转换为 3D 三角形、材质和其他 Direct3D 对象,并由硬件负责渲染,因此它能够更好的利用系统的图像处理单元 GPU,从硬件加速中获得好处。
  8. 绚丽的展示效果,WPF(Windows Presentation Fundation)顾名思义其强大的图形化 API 为程序提供了超乎想象的图形效果; XAML 的引入,使得美工和程序可以实现分离,使得定制化主题/外观/行为更加方便也易于维护;
  9. 强大的 “数据绑定”功能,使得 MVVM 得以实现,成为“属性驱动”,而非 WinForm 的“事件驱动”;属性的更改可以自动获得,甚至动过转换器触发各种展示/行为的变更;
  10. Style 可以让你应用不同的样式到不同的控件,而且易于管理

Python 的 PyQt

PyQt5 是 python 的一个 GUI 框架,存在界面设计器 QtDesigner 工具,可便捷的采用拖拽方式进行页面构造。然后通过工具将 UI 文件生成对应的 python 代码。

优势:

  1. 跨平台效果好,完美支持 Mac、Windows、UNIX 等多种系统;
  2. 学习简单,面向对象的特性体现的比其他框架明显,在命名,继承,类的组织等方面保持了优秀的一致性,代码写起来比较优雅。
  3. 功能强大,基本能实现 QT 能实现的所有功能
  4. 文档丰富,PyQt 使用者众多,同时可直接参考 QT 文档,对后期开发更加方便
  5. 拥有 QT Designer 和 QSS 支持,界面效果更好
  6. pyqt5 是双重许可,开发者可以在 GPL 和商业许可之间进行选择
  7. 学完 PyQt5 之后只要再学习 C++就能完成 Qt 开发转行,一举两得
  8. 配合 Django 实现 CS 和 BS 全技能开发
  9. 长期维护是很多程序员选择框架的重要标准,毕竟一个项目的运行周期可能很长,如果框架不能及时支持,后期带来的麻烦会很多
  10. 开源免费,稳定性和安全性都好
  11. 使用信号和槽机制,界面设计和业务代码分离开发

JavaScript 的 electron

特点:

  1. Electron 是由 Github 开发,用 HTML,CSS 和 JavaScript 来构建跨平台桌面应用程序的一个开源库。 Electron 通过将 Chromium 和 Node.js 合并到同一个运行时环境中,并将其打包为 Mac,Windows 和 Linux 系统下的应用来实现这一目的。
  2. Electron 适合一些偏业务的应用,对性能没有很多要求,主要是业务逻辑和 UI 展示,比较轻量级的应用。因为 Electron 可以一份代码同时得到网页版和桌面版,所以如果你的应用还需要网页版,那么 Electron 可以极大地节省你的开发和维护成本。比如钉钉,slack,现在越来越多的偏业务型(并不是需要高性能的专业工具)应用开始使用 Electron 来做了。优点
  3. 开源的核心扩展比较容易,目前是基于 node 6.x,加之现在 gyp 已经非常人性化了,使得 c++ 和 js 搞基非常容易。
  4. 界面定制性强,原则上只要是 Web 能做的他都能做。
  5. 是目前最廉价的跨平台技术方案,HTML+JS 有大量的前端技术人员储备,而且有海量的现存 web UI 库。大多都很靠谱。
  6. 相对其他跨平台方案(如 QT GTK+ 等),更稳定,bug 少, 毕竟只要浏览器外壳跑起来了,里面的问题不会太多 ,当然我也遇到过一些暗坑。 方便热更新。下载覆盖完事。当然这是所有脚本共有的优点。

缺点: 1.卡,启动慢,这可能是 webkit 的锅。毕竟一个浏览器要支持的功能确实有点多。 2.除了主进程 你可能还需要启动一些辅助进程来完成工作。而每当你新开一个进程,起步价就是一个 nodejs 的内存开销! 3.丢帧,这个最严重,可我已习惯了 native 的丝滑. mac 下感觉还可以 win 下有点够呛。 4.打出来的包太大。(很显然,即便是一个空包,也至少包含了一个浏览器的体积)

【3】、来自网友【萧鸣漫漫说】的最佳回答:

目前,最优的选择有四个:

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。

【4】、来自网友【踢呲】的最佳回答:

我就说一种:

所有的 windows 桌面程序语言,都是基于微软提供的 API 接口编写的,而能让程序员直接调用 windowsAPI 的基础语言,必然有 C 语言的一席之地。其他所有的桌面程序语言,像什么 C#,C++,python,Js 等等,都是用 C 语言调用 windows 接口写出一个大概的程序框架,供后来的语言使用者进行二次开发,来实现桌面程序的设计。

从某种意义上来说,如果把安装了 windows 操作系统的电脑,看做一台独立且完整的机器比如 cpu,那么使用 C 语言通过调用系统 API 来编写桌面程序,就相当于直接使用汇编语言操作 Cpu。所以在操作系统层面,这种方式写出来的程序性能是最好的,没有之一。当然,还可以通过直接对硬件编程,获得更好的性能,但那对程序员的技术要求会极高,而且还必须考虑硬件兼容性,能写那种程序的人,其实在某种程度上就已经具备写操作系统的能力了。

不可否认,使用 C 语言直接调用系统接口来编写桌面程序,这不是一条轻松的路线,甚至可以说它遍布荆棘也不为过。无数人半途而废改换门庭,转投其他更为轻松的高级语言。如果你选择这条路,你必须做好心理准备,这段路程中的艰难困苦将会超出你的想象!然而你也必须要明白,一旦你在这条路上学有所成,你会发现计算机的世界竟然如此简单!几乎没有任何人可以在你面前装逼!你,就是这么牛逼!

在我的理解中,使用 C 语言直接调用 windows API 编写桌面程序的方式,是渔。而采用其他高级语言编写桌面程序的方式,是鱼。

目前,摆在你面前的,既有鱼,也有渔,你会怎么选呢?

你是选择做某种高级语言的追随者,还是想成为各种高级语言的创造者?

心有多大,世界就有多大!努力吧骚年!听说你想去星辰大海?[机智]

【5】、来自网友【武汉两孩他爹】的最佳回答:

还可以用 delphi,其 firemonkey 框架发布 8 年时间,支持跨平台:win,安卓,ios,macos,linux,后续支持 webassembly,界面是控件拖拽布局所见即所得,开发效率较高。编译生成的是机器码,编译速度快,调试方便,其生成机器码运行效率较高,支持 x86,arm 的 32 位 64 位处理器。支持跨平台 3D 界面,蓝牙通讯,定位,重力,摄像等,支持多种 SQL,NoSQL 数据库。单个开发工具实现前后端开发,跨平台开发。适合个人和小公司用一套工具实现大部分开发需求。

以上就是关于问题【桌面端开发都用什么语言?这些语言的优劣势对比有哪些?】的全部回答,希望能对大家有所帮助,内容收集于网络仅供参考,如要实行请慎重,任何后果与本站无关!

喜欢 (0)