上位机软件开发用什么语言
扫描二维码
随时随地手机看文章
一、有哪些上位机开发平台(优缺点和使用场景)
由于上位机概念的广泛性,所以上位机开发平台可以是任何开发平台。这里介绍几个常用的经典的上位机开发平台及其特性。
VB(Visual Basic)
开发语言:Basic(BASIC是一种直译式的编程语言,在完成编写后不须经由编译及连接等步骤即可执行,类似脚本语言)
开发工具:Visual Basic(语言简单易用,对面向对象编程和多线程编程支持不完整)
适用平台:WINDOWS ALL
平台特点:以面向对象的思想开发可视化图形界面的应用程序。采用面向对象程序设计方法(Object-Oriented Programming),把程序和数据封装起来作为一个对象,每个对象都是可视的。开发人员在界面设计时,可以直接用Visual Basic 6.0的工具箱在屏幕上"画"出窗口、菜单、命令按键等不同类型的对象,并为每个对象设置属性。在流行的时候有大量功能库可以使用,比如典型的数据库管理控件。VB属于在刚刚出现图形界面开发阶段的开发平台。由于平台老旧以及basic编程语言的缺点,现在已经没有人使用了。虽然现在有了“Visual Basic .NET”但是使用的人很少。
VC(Virtual C++)
开发语言:面向对象语言C++(微软更具C++标准实现的微软版本, 编译器采用cl.exe)
开发工具:Visual C++
适用平台:WINDOWS ALL
平台特点:以面向对象的思想开发可视化图形界面的应用程序。最大的亮点是MFC框架。是微软公司提供的一个类库,以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。框架比较精简,对于初学者理解电脑软件开发框架有很大帮助。这也成了他的缺点,导致使用MFC开发软件效率相对很低(程序猿要做大量界面编码工作)。MFC开发出来的软件界面也很简陋,主要原因是要想美化需要程序猿自己做大量美化工作(量大到不适合个人开发者做这个美化工作)。当然在电脑端刚刚出现图形界面开发时候,MFC这个框架简直大量简化了程序猿的工作量,并且提高了程序的质量。因此一度非常流行,以至于现今(2020年)还有这个MFC开发平台的身影(大多处于维护阶段的老项目)。
Delphi
开发语言:Object Pascal
开发工具:delphi7
适用平台:WINDOWS ALL
平台特点:Delphi 拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言ObjectPascal和基于部件的开发结构框架。Delphi它提供了非常多个可供使用的构件,利用这些部件,开发人员可以快速地构造出应用系统。开发人员也可以根据自己的需要修改部件或用Delphi本身编写自己的部件。和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB相比,Delphi则功能更强大、更实用。 Delphi确实功能丰富开发效率高,到目前也还有人用。只是绝大多数是在做老项目的开发了,新项目基本上不会再用Delphi写。主要原因是Delphi不是微软自家的孩子。随着微软系统大量的系统更新,以及微软自己的C#开发平台兴起,使得Delphi跟不上节奏了(Pascal编程语言本身也很少在其他开发平台使用)。
WinForm
开发语言:C#
开发工具:Visual Studio
适用平台:WINDOWS ALL
平台特点:WinForm是目前很流行的Windows应用程序开发平台,现在大部分windows应用程序都是使用WinForm开发,提供对最新windows系统特性的支持,且拥有大量的第三方类库。全面支持各种开发技术。开发的程序对windows所有系统都有非常好的兼容性和不俗的性能。属于微软的.net开发,拥有强大齐全的各种封装好的成熟类库。借助优秀的C#开发语言。是现阶段Windows应用程序开发的不二之选。由于使用的人和公司多,Winform开发有大量博客可以参考,工作机会也很多,相比于其他开发平台更好找工作。(至于担心发布软件还需要安装net运行库,没有担心的必要,微软在系统中就自带来常用的net运动库,同时安装包安装程序的时候还可以检测是否缺net运行库,并引导安装)。
WPF
开发语言:C#
开发工具:Visual Studio
适用平台:WINDOWS ALL
平台特点:WPF是在Winform的基础上,重新使用新框架开发的应用程序编程平台。对winform开发完全兼容。wpf引入了全新的界面布局框架XAML,可以轻松的创建出丰富美观的界面,同时可以使用高级的动画和特效,对屏幕自适应比winform更好。wpf使用DirectX来绘制控件(使用显卡绘制),winform使用GDI来绘制控件(使用CPU绘制),因此wpf现实效果好,且不会大量占用cpu。由于WPF比Winform所使用的技术新,目前还是使用Winform的多一些。当然想要软件最终效果好,更炫酷一点,那么你就选择WPF。
Qt
开发语言:C++ (编译器:linux: g++、macos: clang、win32: mingw、msvc)
开发工具:Qt Creater、Visual Studio
适用平台:WINDOWS ALL、Linux、 MacOS
平台特点:Qt是一个跨平台应用程序开发框架,用于开发桌面程序、嵌入式程序和手机app。支持的操作系统平台包括:Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS等。Qt最大的特点是跨平台开发,即:一次编码多系统编译。就是说只写一次代码,然后把这个代码拿到各个系统上分别编译。即可生成各个系统下的原生应用程序(并不是java那种依赖运行库的跨平台)。因此Qt开发的应用程序在各个系统下都可以获得和原生应用程序同样的性能。其次Qt使用面向对象语言C++开发,因此运行效率比C#高。适用于开发一些需要大量运算的应用程序。比如图像处理软件,特效制作软件等。由于Qt使用C++语言编程,因此以前使用VC++写的老项目可以轻松使用
Qt重新开发(C++库可以直接使用,之前C++代码写的逻辑函数可以复制过来直接使用)。这么好的平台为什么用的人和公司不太多呢。因为之前Qt是收费的,用于开发商业软件避免不了要交这个费用(不交钱法律上吃官司)。现在Qt支持LGPL协议,意味着可以免费开发商业软件了。qt也支持拖拽添加控件和布局软件页面。同时还支持使用qss动态修改控件样式。再加上Qt的layout动态布局功能。可以实现非常好看的软件。这一点比winform好。外观高度定制修改和wpf是一个水平。这里需要说明Qt编写程序跨平台编码的前提是统一使用Qt提供的系统库函数,如果你直接使用了Windows的系统库函数,那么这个程序就只能在windows下编译并使用了,除非你在其他系统上编译时候替换成其他系统相应功能的系统库函数。一般功能开发来说Qt提供的库函数足够丰富,除非是系统特有的功能需要Qt开发中特别处理。
Android
开发语言:Java
开发工具:Android Studio
适用平台:安卓手机、安卓平板、安卓电视等
平台特点:安卓开发官方的开发平台就是Android Studio,是开发安卓app的官方指定平台。其他各个开发平台虽然也能开发安卓app,但是实际开发效果和Android Studio没法相比。因此你需要开发安卓的上位机客户端,就不要用杂七杂八的开发平台了,安心学习java和Android Studio吧。虽然现在的混合app开发技术很火爆,但是如果你的安卓app是配合硬件使用的,就不建议使用混合app开发技术了,因为使得项目使用的技术变复杂了,即便是你能搞定,对于后续接手的程序猿维护开发就不方便了(对于以硬件为主的公司而言)。需要任意一台电脑和测试手机或平板即可开发。
IOS
开发语言:Object-C、swift
开发工具:Xcode
适用平台:苹果手机、苹果平板
平台特点:Xcode是开发IOS软件的唯一且官方的开发平台。如你公司的硬件设备需要开发IOS的app。那么这个开发平台几乎是唯一也是最好的选择。开发需要一台苹果电脑、一个公司或个人开发者账号(按年收费)、一台苹果手机或平板。
LabVIEW
开发语言:拖拽图形开发
开发工具:LabVIEW
适用平台:Wondows、MacOS、Linux
平台特点:LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言编写程序,产生的程序是框图的形式。LabVIEW开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。也就是说LabVIEW是帮助硬件开发工程师测试硬件的工具。通过拖拽画图即可运行出一个相当于上位的客户端。其集成的众多控件都是和硬件相关的,因此只适用于硬件开发测试,不适合其他任何上位软件开发。LabVIEW开发的软件也可以打包成独立的安装包。
MATLAB
开发语言:MATLAB
开发工具:MATLAB
适用平台:Wondows、MacOS、Linux
平台特点:MATLAB是工程师和科学家使用的一个高级数学工具软件。虽然是个工具但是他具有开发图形交互界面以及计算机通信的全部功能。因此也在这里稍微介绍一下。MATLAB主要用于计算机视觉、信号处理、机器人等控制系统、模型设计以及算法验证。提供了Python、Java、C、C++等外部语言接口,可以供外部其他程序调用(用于调试与验证算法)。因此在开发特殊行业的上位机软件时候需要用到MATLAB。可以利用MATLAB单独开发一个测试上位机端,也可以和其他开发平台联合开发上位端。MATLAB支持把MATLAB算法转换成C/C++代码、HDL、和CUDA代码,便于算法的应用。
二、硬件工程师做简单的上位机软件,应该选择哪个平台
对于硬件开发工程师来说,想要做一个上位机软件无论你选哪个开发平台都不简单,就像要上位机程序猿开发嵌入式硬件一样难,都需要深入学习。除非你使用LabVIEW。
由于硬件工程师做一个上位机一般需求也不会太复杂,他的需求就是“怎样用最少的精力开发一个基本能用的上位工具软件,我也不打算深入去开发专业的上位机软件”。
根据这个需求,从最简单到复杂依次推荐的开发平台如下:
LabVIEW:
优点:投入最少的精力即可学会,而且可以快速开发出可用的上位机软件
缺点:仅适合硬件特别相关的功能,不方便定制开发常用软件
Qt:
优点:可以满足所有高级软件功能开发。使用C++语言开发,与硬件开发者使用的C最接近,相对容易上手开发。这里不推荐GTK+,是因为GTK+虽然是使用C语言编程,更加方便硬件工程师开发,但是因为可参考的文档和例子太少,让硬件开发人员去读GTK官方文档并理解软件开发上的一些概念,实在不理智。这里不推荐VC++,是因为VC++毕竟老旧了各种类库也不如qt丰富,且学习VC++所需要的精力和学习Qt所用的精力没有多少区别。因此还不如学习更好的qt。现在也可以在网上找到很多qt的例子和博客,不用像以前担心参考示例太少。
缺点:除了学习C++语法之外,还需要学习电脑软件开发的一些概念,以及学习Qt框架知识和Qt库函数使用方法
C#WinForm:
优点:可以满足所有高级软件功能开发。使用高级语言C#开发,开发效率高
缺点:需要全新学习C#语言,以及电脑软件开发概念以及图形界面库函数功能
三、开发商业软件应该选择哪个开发平台
商业公司开发的软件是给众多客户使用的,软件的好坏对应着公司的收益。因此,开发商业软件要选择开发平台的时候,就比个人开发者面临的限制多很多。一般面临的限制如下:
开发平台的普遍性:是否有很多人用,是否能随时招聘到对应平台的程序猿
开发平台的稳定性:开发出来的软件是否稳定、安全、易用
开发平台是否收费:是否收费也很重要,有些平台收费很贵,每卖一个软件都有交使用费用就很不合算
开发平台是否持久:开发平台的公司是否对这个开发平台做持续维护和新技术更新
以上为一个公司选择开发平台基本考虑要素。除此之外,所选平台只要能满足功能需求即可。
目前满足以上基本考虑要素的PC软件(偏上位机软件)开发平台有:
C#_WinForm
C#_WPF
C++_QT