百科问答小站 logo
百科问答小站 font logo



为什么工业软件开发一般用的都是QT? 第1页

  

user avatar   zhao-ce-33 网友的相关建议: 
      

这里工业软件的外延太大,所以你要明确一下什么工业软件,我等下会举几个行业的例子,你自己可以看看够不够工业

我想本质上的原因还是:因为这些领域的程序员水平比较差,不会做

所以只能用别人做好的编译器

就像几十年前的手机,当时你要开发个手机应用,也是c,c++,当时你跟开发手机应用的人说其他语言,人家想不想,说那玩意用不了,理由跟今天一样,性能

后来iphone横空出世,安卓在一路抄,才逐步有了今天java,swift还有kotlin这种高层次语言统治应用开发的局面

那如果苹果不做,谷歌不做,你靠诺基亚,摩托罗拉这些企业,其实是做不出来的

因为最终历史证明了,是苹果和谷歌做出来了,而不是这些通信业的老巨头

你要让开发变得简单起来,比如我想用java,那你得有办法能让java运行在这些机器上才行啊

而要做到这一步,你需要有人懂编译器,懂编译原理,能让openjdk之类的工具,port到你的目标平台上去才行,比如arm,以前java缺省提供的build只有solaris等unix和linux还有windows,mac都是后来加进去的

而要完成这一关键步骤,你需要有一个编译器,你需要有人做出这么一个编译器才行

如果不支持的话,你就用不了

所以苹果有llvm,谷歌魔改了openjdk,所以我们今天才能用这些高级简单的语言去开发手机app,而不是继续用特别难用的c++之类的

随之而来的结果就是,以前那些用c,c++开发手机的那些人,在几年前全部下岗了

所以通信行业夕阳了,安卓什么功不可没,要不然以前你要开发个手机应用,你得去通信行业招人

也就是从那时候开始,ee这个行当开始走下坡路,在之前,ee这个专业就业可比cs好多了,再早一点,中移动等国企去美国上市,那时候进移动才是985毕业生的首选,现在不行了

所以,当这种技术还没出现的时候,你真让这些技术员去搞编译器,他们不会,做不出来

这才是本质上的原因

搞计算机这档子事,最好的技术人员,还是在国外那几个大厂里面,而且就算是这些大厂,都不够看的

现在开发主力全部转移到大学里面去了,graal招人全部是在大学里面招,招post graduate students,也就是研究生,本科生不招[1]

编译器现在都是国外grad.以上级别才能做的东西,而且要日复一日,坚持几十年的投入,方能有所小成就,就像能把java,kotlin等做aot的graal,做了20多年,从sun时候开始做,做到sun都倒了十年了还在做,总算有点小成就

国内这些技术员还有工业界程序员没有那个本事

没那个本事的时候,可不就是,人家给你什么,你就只能用什么咯

就像aot甚嚣尘上,苹果在做,谷歌在做,java也在做

自己有本事做,那就做下去,做出来就能用了

但是如果你不会,那你除了在那边干瞪眼,还能咋办?

你真要让他们做,又不会做,那除了选择比较原始的工具,还能咋办?

就没办法嘛

所以说到底,还是技术水平的问题

最后说几个工业软件的例子,航空航天算工业吧?

我随便找两个例子,比如nasa和空客,一个航天一个航空,航空的比较多,我多发几个,法国,德国,阿联酋航空都有,我直接发他们系统的界面了

这是航空

德国的

阿联酋航空

nasa

这些都是java写的,就没有用什么qt,实际上我们在民航里面,经常会遇到老外用java写一些系统,以前mit几个毕业生还给sabre之类的写过,那个界面一看就是java写的,因为是swing,当时我就跟领导说,我们也做一个

结果领导一听是mit毕业生做的,腿都吓软了,就没下文了,后来我见这些人不行,于是就辞职滚蛋出国了

参考

  1. ^ https://www.reddit.com/r/Compilers/comments/ohfnhn/looking_for_compiler_internships_in_summer_2022/

user avatar   enzojz 网友的相关建议: 
      

Qt有SIL相关的认证,这个在安全和可靠性相关的工业领域是非常重要的一个东西

或者说已经有很多采用Qt作为框架的工业软件是通过了SIL认证的,这样的话选择Qt就可以在整个开发周期上节省一部分安全性可靠性评估的工作。

而评估SIL的方式是用机时作为基础的,所以如果选择一个没有证明达到相关SIL级别的其他框架的话,完成认证还是。。挺花时间的。。


user avatar   xiang-yang-86-61-30 网友的相关建议: 
      

这问题回答下面吧……

一般来讲,工业软件或者一般民众认为的工业软件我们叫做组态软件:

这类界面丰富的组态软件大多数在远(ge)离(le)现(du)场(qiang)的控制室的电脑上跑,以某地炼钢厂风机房的计算机来说,能同时挂一大堆的采集,磁盘写得啦啦啦啦响,性能还真不至于差到离谱的境界。换句话说,跑什么图形化界面,完全木得问题。

那么问题在哪呢,在于这类计算机上的OS啊xdm,到今天跑win2k、win xp的也大有人在啊。什么?d2d?不支持!gdi+?自己带!dwm?没有!当然,也不是所有计算机都这么古老,我做的几个上位机,全是wpf做的,它们在工控电脑上运行的很好。

其次是比组态软件简陋得多的,大可称它们为上位机(虽然组态软件你也不能不算上位机),它们个人平时更常见于现场设备挂着的小屏幕那。这类程序真就可能得跑在一个个位数GB大小的硬盘(别没见过,pcie的8G SSD某宝一大堆,就这上面用的),1G左右RAM还配着严重阉割版windows的电脑上了。此时才得想想什么现代的GUI跑不跑的起来的问题。问题下的一个回答简洁明了

要不你试试把Electron移植到这些电脑上?( @徐辰

总而言之,运行环境来说,其存在着两个方面的问题:

  1. 搭载OS很远古
  2. 资源受限

两条尤其前者堵死了很多框架。但是我有提,其实平时遇到的也不至于太老,跑阉割版win7大有人在不是吗?


看官请坐。我们讨论完现实的运行环境,该讨论了。

写工业软件的一般本科是自动化、机械自动化、电气自动化、等等专业的,这个群体主要面对的就是C/C++(或者说是C with cout/class)开发。他们本身离今天的计算机应用技术就有一大段的距离

有多远呢,请移步某乎各类关于劝嵌入式党入坑的问题下——为什么有些人不愿意在单片机上使用C++………

也就是说,这类人就不能指望他们懂什么flutterelectronwpf。而C++下唯一一个靠谱的多的GUI框架就在Qt中。(yes你猜到了,他们还会用什么c的框架来写下位机,什么lvgl,听都没听过对吧)

总而言之,对于开发人员,他们大部分只是C/C++党,且比较远离今天的计算机应用技术。


还没结束呢。最后一个问题,这些软件用C/C++做更简单吗?不少这类软件承担的任务其实很简单:有多个端口发数据给电脑,你得把它们显示出来(当然也包括什么检查啦什么发数据回去啦什么各类交织的意大利面逻辑啦……),总而言之,这类软件几乎是一个纯粹标准的GUI程序,不涉及很多高端操作(什么高并发,玩这套的好像叫什么中台)。显示自然好说,关键是通信啦!

工业设备的通信除了万年的RS485和RJ45是计算机几乎都带的之外,其余的大部分需要涉及厂家提供的采集卡、通信卡,这类玩意给我的API通常也是C写的,例子也是C/C++的,且本身组态软件写起来纯粹的脏活累活,真没什么兴趣倒腾。


最后的最后,通常来讲做工业软件是这五个,不是单纯的Qt:

  1. LabVIEW(图形编程党请走这
  2. Visual Basic(复古党请走这
  3. Qt / MFC / WinCC(嵌入式党请走这,别用MFC
  4. WinForm / WPF(尝鲜党请走这
  5. 各类组态屏厂家搞的奇怪脚本(没电脑的请走这

我自己平时见得多的是135,接着是4最后是只停留在传说中的2


顺便bb一嘴一些回答不要混淆视听拿什么跑在干净漂亮的工程师房间的玩意给我搞这个问题,你那能算这个问题的,我还马特拉布CadenceAllegro呢(光速逃走


user avatar   pansz 网友的相关建议: 
      

说说个人的理解:

Qt不依赖图形系统。低端工控机的硬件配置可能是连一个图形系统都跑不起来的,而Qt可以直接写屏实现图形界面

其它不依赖图形系统的开发框架都比Qt弱。比Qt强的开发框架基本都依赖图形系统。

所以Qt就成为当下有现成解决方案中最强的开发框架了。

至于虚拟机,浏览器这些东西。。。你们觉得一个连图形系统都配置不起的嵌入式工控机会搭载浏览器跟虚拟机吗?java,python,html5等方案直接淘汰。

所以简单说:Qt对硬件配置要求极低。而C++性能又相对其他语言高,所以成为低配设备的首选。


补充一些内容吧:

就我司的情况而言,能跑安卓的机子基本都会考虑编个安卓上去。只有硬件配置低,跑不起来安卓的目标机才会用Qt开发。而能选型用Qt的目标机,基本上属于用Qt就是极限,根本不可能跑得动任何更大软件框架。

至于跑安卓有多简单,可能很多人没概念,大概就是绝大多数你选型的产商都可以给你提供立等可用的安卓选项,不用自己做的那种。

反倒是用Qt,对系统组的技术要求要高。毕竟系统组还要给你制作一套交叉编译的工具链,而安卓的工具链就是产商提供的现成的。对于有能力编译一整套工具链的系统组来说,质疑其技术能力是完全没有意义的,毕竟无论你是用啥编译器,人家连gcc,clang编译器本身都能重新编译出来,还能不懂你一个aot的编译?事实上,最终搭好环境后,搞虚拟机那些语言开发的程序员也不需要懂交叉编译,而搞Qt的开发就必须得懂交叉编译。

提升配置之后,java或者安卓逐渐会变为首选,但在有限配置下Qt依然为大,毕竟Qt强制了C++11的支持。这一点也有不少功劳。


user avatar   liu-bo-49-82-62 网友的相关建议: 
      

真·天龙人来了。

我屁股下的这个embody罗技款不知道值不值天龙人的一台电脑?

不知道有几个天龙人当初跑到香港自提首发四公主?

不知道天龙人的电视几万?我这个早买的了,75z9d。psvr也是入的首发。

再比比打机环境?

朋友帮忙给我找的原价国行。(不帮买,朋友的店里之前就已经排队到了一百多人)



这电脑在天龙人里什么水平?为了玩4k的原神换的xg43uq和3080,纯娱乐用,非图形工作者。

其他小玩意就不显摆了。

就想说一句话,玩个游戏还玩出优越感的都是什么心态啊????

之前看了一个回答说得很好,你以为你是婆罗门,实际上在别人眼里你们都是印度阿三。

拿原神对比3A,想得出来什么结论?原神比不上那些3a,所以原神玩家就比不上3a玩家?我呸,那游戏是你做的?


装半天13其实没有真正回答这个问题,因为觉得懂得都懂,但是鉴于一些朋友很“幸运”没有接触过这类人,我就多唠叨几句。

天龙人,不是单机玩家(我就是单机玩家)的代名词,是以玩过看过听过甚至知道3a大作为荣的一群人。就像百万塞尔达不是指野炊玩家(我就是野炊玩家),而是看着像就说抄袭,像疯狗一样攻击别人,疑似水军的人。

天龙人鄙视原神,但是原神在进步,成绩也越来越好,打了曾经预言原神会暴毙人的脸。

玩家喜欢原神,自然热度高,还会夸,但这在天龙人眼里就是尬吹,他们通过用3a顶级大作去对比原神,说明原神辣鸡,去鄙视原神玩家,各种侮辱性的模版语录被传播,逻辑不严谨,但侮辱性极大。

其中最让我无法接受的就是“玩过好游戏的不可能玩原神”,“你觉得原神做得好是因为你没玩过好游戏”。这两句话把天龙人的优越感体现的淋漓尽致,何不食肉糜溢出屏幕,且不说画风不同,萝卜白菜各有所爱,就是人们的时间和设备也有很大差别,选择哪款游戏喜欢哪款游戏是玩家的自由,你哪来的脸指指点点说三道四?更何况,我遇到的很多说这话的人只是知道几个游戏,甚至玩盗版,模拟器,属实是精神天龙人了。

所以你喜欢鄙视是吧?那我就让你尝尝被鄙视的滋味。


玩家“尬吹”原神有没有错,个人认为只要不到处ky,踩一捧一,那吹一吹没问题。换位思考,我吹过p5天下第一,mhw天下第一,血源诅咒天下第一。

这时候有个不玩游戏的过来和我说,“什么电子海洛因就天下第一?玩游戏玩傻了吧?玩游戏有什么意思,几百几千的东西,来玩模型/文玩/改装车啊,随便一件就顶你们一堆。”

大家觉得这话有错吗?人家说的没错啊,确实一个模型几千上万,一件好的文玩也价格不菲,确实顶一堆。

但这人说话合适吗?太欠揍了,因为大家本就不是一个圈子的,我玩我的,碍着你了吗?你有病啊跑我这来?

同理,天龙人跑到原神这来用3a对比也是这样。有人可能会说,原神和3a同属游戏,是一个圈子。真的是吗?原神虽然上了ps5,但他的模式和以往的单机作品是不一样的,他可以算作是一种网游,生产周期,盈利模式,游玩设备,和以往的几年出一作的传统单机完全不一样,玩家群体也很不相同,根本不算一个圈子。

如果你觉得是一个圈子,那我没啥好说的,游戏/模型/文玩还都属于休闲娱乐圈子哩。

所以大家明白为什么天龙人用3a对比原神恶心了吗?首先主语是天龙人,他的对比就不是想好好对比,而是粗暴的把3a当武器,去攻击原神和玩家。其次这群天龙人见不得别人吹原神,跑到圈子里来恶心人。最后您要想说原神圈子里也有恶心的人,这我承认,哪个圈子没极端?甚至我看到这种言论也说他两句。当然如果你认为你遇到的所有原神玩家都极端…那请你先审视下自己的话有没有问题吧。我见过不少说原神玩家听不得别人说原神的一点不好。我翻看他的资料看他说的“一点不好”,呵呵,全是偏见与傲慢。不被喷才怪。


哎,管理员告诉我不样挂人,行吧,我都删了,反正大家知道有几个特别懂礼貌的高贵天龙人来私信我请我喝欧泡果奶就行了,咱也不知道咱是ky了还是尬吹了,现在以其人之道,还治其人之身也要被骂了?反正这些人不是破防了,一定不是。

还有某位同学呀,坐井观天不可取,你不能自己还啃老呢,就觉得别人都啃老。我啃我自己,放我自己家的照片也碍着您了?想反驳我也要找好角度是不是?你看看评论区有几个朋友反驳的就很好,当然他们要是能对天龙人也一视同仁就更好了。


再次声明,本人觉得一个人一个活法,一个人一个爱好,鄙视链装13不可取,本无意扮小丑,只是以暴制暴,恶心天龙人,非天龙人请勿在意,如引起您的不适我先道歉了。


请大家友好交流,很多评论不予显示或者被删除了,这里面没有一条是我删的,都是系统判定不友善。




  

相关话题

  如今 Windows 软件开发究竟该用什么库,C#、Qt,还是其他? 
  VS 2015 的跨平台特性对 Qt 会带来多大的冲击呢? 
  qt 自定义信号为什么可以不在cpp文件实现,为何有时实现了会报重定义这样的错? 
  qt5.5中给全零地址发送udp数据包为何会失败? 
  当下软件开发语言腾出不穷,作为老牌c++GUI领域top1的QT未来会怎样? 
  怎样解决Qt发布程序体积过大的问题? 
  同时会C#、Qt还有Python是一种什么体验? 
  在 Windows 上不用 Win32 API 可以绘制出一个窗口么? 
  为什么工业软件开发一般用的都是QT? 
  qt可以实现界面和逻辑代码分离吗? 

前一个讨论
从小被教育爱国是一种洗脑形式吗?
下一个讨论
宁德时代怎么样?





© 2024-12-22 - tinynew.org. All Rights Reserved.
© 2024-12-22 - tinynew.org. 保留所有权利