工科应该重视C/C++Qt的学习

今天和学生聊天,有学生问为什么系里还在教授C语言这种老掉牙的东西,老在实验课安排C++Qt。为什么不直接学习Java,Python。

学校商科学习python做数据分析,软件工程以java配合设计模式为主。但是修习电子工程,签了某重工的实习,就不能这样想了。微波电磁场、信号与信息处理、机械机电自动化等专业,还是最好把C++和Qt学扎实了,以后很多研究场景用得着。编程只是知识链条中的一方面。另外,可以边学C++Qt,边学Python,一点不矛盾啊!
在这里插入图片描述要解决卡脖子问题,C++/Qt有的是用武之地。这里转载以前知乎上看到的几个文章。有一些观点值得商榷,有一定的参考价值。

【转载1 关于Qt】

www.zhihu.com/question/24316868/answer/118944490

Qt的应用层主要是大型3D,VR,管理软件和器械嵌入软件。日常生活中所用的Qt产品比较少。也就
virtual box,google earth,VLC等1。但是大型系统就正好相反,这是c++决定的,而非Qt。

除了Maya之外,包括Houdini,斯特拉电车的系统软件等一大批3D软件都是Qt写的,或者Qt参与其中,Qt(C++或Python)是Houdini默认二次开发环境。
Houdini美国宇航局,欧洲宇航局,多个发达国家的地理信息,国土部门是默认Qt平台开发。宇航局紧急编程系统是Qt的Python系统2

3D软件几乎不能脱离Qt,除maya 全部使用Qt外,Autodesk的很多软件都用到Qt,测试也用Qt。
几乎所有VR和游戏引擎都用到Qt,其中包含cryengine。
freeCAD

Catia是世界最大最难的软件系统,全世界所有高级开发(飞机,宇航,汽车,工业,生物)全部都是Caria设计的。
CatiaSiemens NX是仅次于catia的软件。

这些软件都有些核心模块Qt参与开发,在波音,庞巴迪,洛克希等等公司,qt是Catia开发模块的默认模拟开发平台。其中波音公司用的最多(并非所有catia项目都运行在Qt。但是有些项目只能,必须运行在Qt)。

后面作者列举了一个船舶例子,有些过时了,可以去原文点赞。是个奇葩的项目,后来因为各种原因流产了,但一点不能掩盖技术本身的优势。系统运行于实时类Linux,是Lynx OS,兼容Linux,Qt是整个开发的中心平台,相当多模块是完全在Qt下开发的,可不仅仅用于UI,包括Qt的手机,Android,ios,3d都被使用,嵌入式开发更被使用。

【转载2 关于Qt6】

www.zhihu.com/question/517288871/answer/2455655901

在这里插入图片描述

本地Native C++/Qt: Qt的影响力已经很大了。据观察,目前在桌面这一块,非常强势。只是国内喜欢在网上提问题、交流的帖子聚焦最终用户(比如消费类应用)的场景多,可能感觉有所误差,觉得Qt不够流行。在大型研究所,以及与硬件打交道的行业公司,Qt已经全面取代MFC成为C++上位机的首选框架。类似数据分析的基础软件,代表就是tableu, 充分发挥了Qt在数据库+Chart上的便利。掌握Qt的C++工程师,基本和C#工程师、JAVA工程师的开发效率是一致的。这一点和MFC有天壤之别。

QML: 目前仍旧不够清晰。大概率会在车企、数床、无线电、仪器仪表等嵌入式这一块发展下去。像以前有人说的Qt做手机APP, 我看不到明朗前途,大概率做不过原生+H5+小程序的套路。QML并不面向桌面,类似WPS这样的桌面重量级应用必然还是C++。QML制作的仪器仪表还是不错的,但是国内未来很可能不会选取这个技术路线。嵌入式UI一般比较简洁,功能聚焦,能撸的公司和团队多,不一定非要Qt。

Python绑定:官方的Qt for Python,还有pyqt, 都挺好的。基本是python开发桌面GUI的主力之一。不过Python有个大问题,就是一般只用于开发服务端,很少开发客户端的。开发客户端,无法控制源码的流转,不利于保护知识产权——毕竟很少有国内企业希望把代码暴露给消费类终端用户。所以,PyQt开发的界面,主要还是集中在Python相关生产资料范畴。Python里运行的Qt绑定,性能比C++原生的稍差。Qt+Python应该是主要用于开发工具软件,配合数据分析等场景使用,做消费类桌面应用应该不会很多。

长远来看,国产工具链条,基于Unix/Linux的国产OS(深度/UOS, 麒麟)急需要扩充应用种类。Qt在现有功能从Windows向Linux迁移的过程中会扮演非常重要的角色。

Digia 和Qt没有绑定关系,即使运营公司几经更迭,Qt应该会继续在社区活跃很多年。
在这里插入图片描述


  1. 其实还有WPS, 魔兽对战平台等,OpenShot是不是Qt开发的我也搞不清楚。 ↩︎

  2. 应该是C++Qt到Python的绑定。 ↩︎

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值