搜索
bottom↓
回复: 70

一个老工程师学习Rust和QT的体验

[复制链接]

出0入148汤圆

发表于 2023-10-4 23:06:53 来自手机 | 显示全部楼层
曾经带过几个人的小组写了一年多的 rust,物联网,音视频相关的应用,的确值得推荐,特别是在公司无法招到“真正的”高级C/C++工程师的情况下。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入148汤圆

发表于 2023-10-5 07:48:33 来自手机 | 显示全部楼层
codefish 发表于 2023-10-4 23:31
没想到这里有Rust前辈,佩服!!
(引用自12楼)

也是新手,不过相对而言 Rust 比 C/C++ 对新手友好得多,只要能编译通过基本上就能稳定运行

出0入148汤圆

发表于 2023-10-7 12:14:21 | 显示全部楼层
dukelec 发表于 2023-10-6 09:04
不看好 rust
写 mcu、写驱动要和设备直接打交到,用 rust 只能用 unsafe 模式
这样 rust 最大的优势:内存 ...
(引用自26楼)

Rust 的 unsafe 模式设计还是挺合理的,我们团队是用一个独立的sys crate 用来写 unsafe 代码,由有经验的工程师维护(里面还包含大量对C库的内存安全封装),其他地方禁止 unsafe

这种模式适合初中高级工程师合作开发同时较大限度保证项目质量,如果用C开发的话初级水平的项目成员会严重影响项目质量,并且需要大量代码REVIEW时间

出0入148汤圆

发表于 2023-10-7 12:17:26 | 显示全部楼层
niaojingxin 发表于 2023-10-7 09:53
探路大佬分享下合适的入门教程,试试?
(引用自28楼)

可以找找 ESP32 Rust 相关资源,功能相对完备,并且支持标准库跟 async 运行时

出0入148汤圆

发表于 2023-10-7 14:13:14 来自手机 | 显示全部楼层
xmlbb 发表于 2023-10-7 13:16
开发效率怎么样,跟c++比,我学了1个月后放弃了,主要是觉得大规模开发的话,我培训10个工程师时间也不短 ...
(引用自34楼)

rust虽好,但推行要谨慎哈

个人认为开发效率比c++低不少,rust内存安全虽好,但为了过那些严格的检查规则,需要增加不少代码复杂性,特别是对于那些多线程共享的可变单例

编译时间也是个大问题,我们的项目不大,但编译一次都要两分钟以上(I7 CPU)

遇到最麻烦的则是 async 的 unpin,到现在都觉得自己不会。。。

还有一个必须考虑的大坑就是缺乏大公司的投入,以及缺乏生产环境上的杀手级应用(相对golang而言),很多第三方库都是个人开发者随性维护,譬如我遇到的那个大坑 ring

我们也是迫不得已用rust,一个物联网项目功能有点复杂,原来是用c写,但总是不稳定,长时间运行掉线问题,频繁操作时崩溃问题,内存不足问题(c开发者貌似都不喜欢动态申请释放内存),所以才尝试抽人组rust团队重写,效果不错,所以后面几个项目就用了rust

出0入148汤圆

发表于 2023-10-7 17:20:33 | 显示全部楼层
codefish 发表于 2023-10-7 14:44
yplin27的做法是值得学习的,
小团队,能处理unsafe的高手只需要一个就够了,
其他人参与写非核心代码, ...
(引用自37楼)

这跟我们的项目属性也有点关系,创业公司十几款几十个型号的物联网产品,其中网络、定时任务、OTA,配置存储等这些基础功能都是通用的,剩下的就是大量关于状态上报,指令执行相关的业务代码,为了进度需要较多开发人员协同开发,Rust在项目工程上也有优势

出0入148汤圆

发表于 2023-10-7 18:55:20 来自手机 | 显示全部楼层
redworlf007 发表于 2023-10-7 17:37
请教下,你们用rust是写mcu上的代码,还是Linux上的代码?
(引用自39楼)

都有,一开始是 esp32c3,因为有标准库的支持所以才考虑用 rust 重写。后来是几款 MIPS 下的嵌入式Linux。esp32相关项目挺顺利,嵌入式Linux项目则踩到挺多坑

出0入148汤圆

发表于 2023-10-7 20:11:26 来自手机 | 显示全部楼层
redworlf007 发表于 2023-10-7 19:17
(⊙o⊙)…我想用rust写下Linux上应用程序看看,感觉貌似坑不少。。。
(引用自41楼)

如果不是为了c库ffi的性能,以及那么一点的磁盘空间,那么一点的CPU性能,绝对是 golang 合适(同样的功能我用golang实现过,相关库都非常成熟稳定,rust下基本上都是半成品,并且不维护)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-16 17:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表