- 主题:AI时代,C/C++码农确实需要尽快转到Rust了
之前是很多人觉得Rust:
1、学习曲线陡
2、语法晦涩难看
3、编译器检查太严,半天编译不过去。
但这些在AI agent面前都不是问题。所以Rust只剩下了好处。
AI是没有学习曲线的,最不怕编译器拦路,也不怕语法晦涩,AI agent在那里无限循环死磕就摆平了(写代码 -> 编译 -> 分析编译错误 -> 改代码 -> 编译。。。)
Rust编译器除了提示怎么改每个编译错误,在最后给出的那个提示,简直就是为AI量身打造的,直接告诉AI怎么看详细的错误信息。
“For more information about this error, try rustc --explain E0XXX.”
这种“代码生成 -> 编译器精准指出 E0XXX 并附带修改教程 -> AI 自我修正”的闭环,把原本折磨人的心智负担全都转移给了算力。可以说,Rust编译器其实是在教AI怎么写Rust。
而且Rust也能搞嵌入式和裸机。Rust嵌入式编程也可以写异步风格的async/await(Embassy开源框架),比较爽,虽然最后可能是单线程执行的。
相反,C/C++的问题是自由度大,编译器相比Rust则会放过更多的bug。
另外,C++的复杂模板推导对AI也是个问题。AI更适合强类型语言和特性,强类型的类型声明就是给AI的(类型)提示词,但是C++模板需要实例化时才能知道类型。
“AI agent根据大模型做概率发散 + Rust编译器根据强规则做收敛”,天作之合。
将来专门针对AI的语言也是必须做强规则检查的。
花了三四天时间,一是把C语言写的开源软件Privoxy重写为等价的Rust程序,二是用Rust新写一个转发代理。
写完用了用,很稳定。发在Rust版了。
https://www.newsmth.net/nForum/#!article/Rust/1780
--
修改:z16166 FROM 123.115.128.*
FROM 123.115.128.*
浓眉大眼的竟然叛变了
另外,常见你发 AI 长文
老实交代,这个帖子是不是 AI 写的?
哎,AI 文看多了,觉得很没意思
【 在 z16166 的大作中提到: 】
: 之前是很多人觉得Rust:
: 1、学习曲线陡
: 2、语法晦涩难看
: ...................
--
FROM 114.94.33.*
这能是AI写的?显然是我写的,糅合了一点AI提供的说辞,因为我觉得它比我表达得更好。
没有叛变,只有最合适。
C/C++的问题是很难一次写稳定,但Rust比较容易做到(特别复杂的当然要除外)。
不是完全抛弃C/C++,而是在C/C++/Rust这三者要三选一的时候(不能用有GC的语言、内存占用小而且确定、性能也有较高要求),优先考虑Rust。
我也不反对看AI的文字,因为我整天就在看AI输出的文字,不管是网页版的,还是AI agent里的。
我只看AI说的有没道理,说的语言风格有没有意思。
【 在 easior 的大作中提到: 】
: 浓眉大眼的竟然叛变了
: 另外,常见你发 AI 长文
: 老实交代,这个帖子是不是 AI 写的?
: ...................
--
修改:z16166 FROM 123.115.128.*
FROM 123.115.128.*
ai能把qt迁移过去, 就考虑
【 在 z16166 的大作中提到: 】
: 之前是很多人觉得Rust:
: 1、学习曲线陡
: 2、语法晦涩难看
: ...................
--
FROM 111.194.200.*
我担心的是rust生态远不如其他语言成熟,导致语料不足,AI学习到的东西不足,写出的代码质量难以保证。
【 在 z16166 的大作中提到: 】
: 之前是很多人觉得Rust:
: 1、学习曲线陡
: 2、语法晦涩难看
: ...................
--
FROM 222.131.221.*
Rust已经可以使用QML了,因为支持QML所要支持的C++ surface小。比如qmetaobject-rs,或者官方的Qt Bridges。
不过这个主要是给熟悉QML的人用的,因为对于不执着于QML的人,他用Rust + webview(Tauri)跟用Rust + QML是一样的。
Rust也可以使用Qt Widgets,只是会比较麻烦点,因为Qt用的C++的继承,Rust是接口组合。
如果不是要极端的界面性能,Rust + webview(Tauri)也能代替。还有slint、gpui、egui等各种非webview的界面库。
【 在 iwantfly 的大作中提到: 】
: ai能把qt迁移过去, 就考虑
:
--
FROM 123.115.128.*
我用TRAE CN版本,那些模型对Rust的处理就有些问题。
比如:
1、不知道怎么设置才能静态链接到MSVC CRT,在cargo.toml里直接改了。实际应该在.cargo/config.toml里。
2、不知道怎么给Rust界面库libui-rs的窗口设置菜单。
因为这界面库特殊,窗口没有对外暴露设置菜单的接口,导致它会反复尝试、反复回退。让它读了那个库的实现代码也没搞定,因为最底层的实现隐藏在C代码里,通过FFI调用的。
3、怎么刷新那个界面库的日志窗口的重绘。
但是那几个写代码最好的AI model,不存在这个问题。
上面说的问题,Gemini Pro就能搞定,包括一个多窗口的Z-order导致的界面消失问题。
这同时也说明模型要用最好的,省了时间也相当于省了钱、赢得机会。
“布丁之证明在于吃”(The proof of the pudding is in the eating)
实际写写就知道了。
空谈、观望、怀疑没用,哈哈
昨天看到有个老伙计已经用AI编程赚了20万的副业收入了,说他现在用Claude上线一个网站也就45分钟。
【 在 world 的大作中提到: 】
: 我担心的是rust生态远不如其他语言成熟,导致语料不足,AI学习到的东西不足,写出的代码质量难以保证。
--
FROM 123.115.128.*
是纯rust实现,原生的
【 在 z16166 的大作中提到: 】
: Rust已经可以使用QML了,因为支持QML所要支持的C++ surface小。比如qmetaobject-rs,或者官方的Qt Bridges。
: 不过这个主要是给熟悉QML的人用的,因为对于不执着于QML的人,他用Rust + webview(Tauri)跟用Rust + QML是一样的。
: Rust也可以使用Qt Widgets,只是会比较麻烦点,因为Qt用的C++的继承,Rust是接口组合。
: ...................
--
FROM 111.194.200.*
Qt 侵入式集成了树型的内存管理。这个可能跟 Rust 有冲突。
比如 QDialog 底下有个 “确定” QPushButton. QDialog 拥有它底下所有控件的所有权。当 QDialog 被关闭时,它底下的所有控件也会被删除。这个是隐式的。跟 C++ 之外的语言有经常会有冲突。比如 PyQt 也得针对这个行为写代码。否则会导致程序崩溃。
【 在 z16166 的大作中提到: 】
: Rust已经可以使用QML了,因为支持QML所要支持的C++ surface小。比如qmetaobject-rs,或者官方的Qt Bridges。
: 不过这个主要是给熟悉QML的人用的,因为对于不执着于QML的人,他用Rust + webview(Tauri)跟用Rust + QML是一样的。
: Rust也可以使用Qt Widgets,只是会比较麻烦点,因为Qt用的C++的继承,Rust是接口组合。
: ...................
--
修改:hgoldfish FROM 121.207.53.*
FROM 121.207.53.*
奇怪,Rust 现在已经这么流行了,为啥还没有好用的原生 GUI 库。
本身 GUI 库也经常有资源管理问题。正是 Rust 优化的好机会啊。
【 在 z16166 的大作中提到: 】
: Rust已经可以使用QML了,因为支持QML所要支持的C++ surface小。比如qmetaobject-rs,或者官方的Qt Bridges。
: 不过这个主要是给熟悉QML的人用的,因为对于不执着于QML的人,他用Rust + webview(Tauri)跟用Rust + QML是一样的。
: Rust也可以使用Qt Widgets,只是会比较麻烦点,因为Qt用的C++的继承,Rust是接口组合。
: ...................
--
FROM 121.207.53.*