作者PosetMage (PosetMage)
看板Soft_Job
标题Re: [讨论] Rust 2024 发布正式版
时间Sat Feb 22 12:39:39 2025
※ 引述《Rust (lang)》之铭言:
: https://blog.rust-lang.org/2025/02/20/Rust-1.85.0.html
: 知道Rust这个程式语言也超过十年了,
: 自从1.0稳定版推出之後,
: 就以每三年一个大版本的方式演进,
: 今年则是轮到了Rust 2024
: (对,因为延迟了一段时间到2025才发布)。
: 不过我看了一下看起来是这次最大的改动RPIT,
: 然後根本不知道在写什麽OTZ,
: 只能说Rust的复杂性越来越高了......
: 啊对了Future也进Prelude了~
好像蛮多人想问为什麽rust要存在XD
简单说可以看看kotlin kotlin使用了JVM 换言之就是复用已经发展成熟的语言後端
rust复用的是成熟的LLVM IR後端 前端C++已经发展到乱七八糟的 早就该重新设计
就如同kotlin是一个现代前端 rust也是现代前端
推文有人说C C也是古老不良设计的语言 比如file系参数顺位并不统一
--
至於问我喜欢哪个语言喔 我不会rust 我只会c++23
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.71.164.150 (日本)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1740199183.A.64B.html
※ 编辑: PosetMage (60.71.164.150 日本), 02/22/2025 12:41:15
1F:推 ILoveAMD: 无所谓设计良不良 能完成任务的就是好工具 02/22 13:19
2F:→ labbat: 会现代C/C++的都是狠人 02/22 14:30
3F:推 stallings: 现代世界还是要有现代工具 02/22 14:30
4F:→ stallings: 希望 C (简陋)、C++ (复杂) 能尽快被取代 02/22 14:30
5F:推 Matz: 要取代C/C++,不是不可能,但我们到死应该都看不到 02/22 15:48
6F:→ DrTech: 可以分享,简单,复杂,乱七八糟的定义吗?如果是 人造成 02/22 18:14
7F:→ DrTech: 的因素,别牵拖给程式语言吧。Rust也可以写出乱七八糟阿! 02/22 18:14
该给的不给 stackoverflow有整理c++十几篇enum to string 吵了这麽多年就是不内建
不该给的功能倒是一堆 三元<=>这种摆明是编译器後端优化的东西拉到前端语法干嘛
这片搞笑的可以表达我的心情XD
https://youtu.be/HD9vrY6FKgI
还有C++哲学本身不自洽 当初是为了兼容C 所以很多语法被绑住 以前也向下相容
从C++17开始大量deprecate 不再向下做相容 却不重新规划老旧设计
挤牙膏问题 lambda哪版开始可以auto 哪版可以constexpr 哪版可以template
哪版可以mutable static_assert noexcept.... 挤牙膏挤成这样就是没有规划的证明
却又坚持三年一版 不一次设计到位变成带着大量历史遗毒 又想要东施效颦现代语言
反观其他定位的语言基本上因为depreacte旧版 新专案往往使用新版
C++是偏向系统level而不是前端 但现在这种破坏式挤牙膏根本就没办法用
搞到这样 实务上现在就还是C++11/14最广 根本就没多少人在上20/23
https://i.imgur.com/H2UzsMH.png since C++17 deprecated in C++20 可以再智障一点
8F:→ dildoe: 现有的c/c++专案铁定不会换语言 一般人也不会整天写c/c++ 02/22 20:08
9F:→ dildoe: 都是特定行业比较多XD 02/22 20:08
10F:→ superpandal: 如果现代就是臃肿就是桎梏 我觉得这不够现代 02/22 20:46
11F:→ superpandal: 轻量跨平台 编译以及运行都足够快才是人用的东西 02/22 20:48
手稿语言直译语言不用编译 js py长年霸榜了
12F:→ superpandal: 现代是速食文化 02/22 20:49
13F:→ superpandal: 工具就是工具而不是人 便捷好用才好 02/22 20:53
14F:推 ILoveAMD: 想取代c喔? 不知道该从哪吐槽 02/22 21:09
go表示:我是c的继任者
15F:推 windows2k: 那有什麽完美无缺的语言,一切都是trade off 02/22 21:59
所以一个语言高度自洽比功能多还重要
16F:推 md3q6e: rust 抽象是很好 但套件包真的好肥 02/22 23:05
17F:→ md3q6e: 交给 analyzer 检查又很吃资源 02/22 23:05
18F:→ superpandal: 确实目前没有完美的语言 可以先放弃一些次要的东西 02/22 23:17
19F:→ superpandal: 开发人员开发快捷是主要的就是 02/22 23:20
升级CPU万用解
20F:推 ohmylove347: 怎麽可能没有不良设计?不是优缺并存就代表设计没问 02/22 23:41
21F:→ ohmylove347: 题耶,大脑要进化可都是万年为单位的,只要大脑还有 02/22 23:41
22F:→ ohmylove347: 限制语法设计必然有好坏。为什麽现代语言都有明显的 02/22 23:41
23F:→ ohmylove347: 设计趋势,就是因为前人已经试错告诉你那些设计容易 02/22 23:41
24F:→ ohmylove347: 导致开发上带来问题,如果旧有设计没有不良,为何新 02/22 23:41
25F:→ ohmylove347: 兴语言要改变? 02/22 23:41
新兴语言多玩玩可以看到对取舍的哲学
26F:推 ILoveAMD: 趋势是各种防呆 尽量在编译阶段抓出问题 02/22 23:49
说得好 连js都转ts想在编译时间提早处理
27F:推 Bencrie: 参数顺位不统一那个要去骂 POSIX 标准吧 02/23 02:10
这样说也没错 总之古早很多东西都是设计不良 才有各种现在重新设计
28F:推 wsad50232: 那种会变来变去的语言都是垃圾 02/23 08:19
29F:→ wsad50232: 什麽时候看到C 在改版 02/23 08:20
30F:推 windows2k: c89/c99/c11/c17/c23都在改啊,只是没引进大feature, 02/23 11:50
31F:→ windows2k: 最大的改动就是memory model 02/23 11:50
32F:推 kkes0001: 又到了我最喜欢的战语言环节 02/23 18:51
战 都战 所有语言都进来 php一定不会缺席的对吧
33F:推 pot1234: go光vector效能就差不少吧 02/23 20:01
看语言不能只单看一个功能 而是要回到该语言的哲学整体讨论 go的应用场景是高并发
高并发的情境下 C/C++ thread比goroutine肥 还有高频解构下 go runtime会排程
Go效能已经是半个OS语言 容器家族docker compose2 podman k8s k3s k9s helm全是go
34F:→ superpandal: 倒也不是真的要升级cpu 多数应用够用就好 机制搞好哪 02/23 22:30
35F:→ superpandal: 种语言多半不会差太大的 02/23 22:30
36F:→ superpandal: 至於js和py就是臃肿化了 专案也刻意复杂化了 02/23 22:36
那就不自洽了 你前面说"现代是速食文化" "便捷好用才好"
最便捷语言环境就是浏览器打开F12就可以写js 没有比这更速食的了
你不用vue react这些东西写SPA 难不成你要用html,css尻? 这样叫速食?
py臃肿难不成你写AI不用huggingface 要学deepseek回去用PTX 这哪里速食?
现在面试leetcode 选py比例极高 因为通常先写pseudo code跟考官讨论
同意之後才转真实code py几乎是pseudo code写完 八成不用动 改个两成就能跑了
37F:→ superpandal: 能手持设备掌中乾坤更好一点 02/23 22:40
如果要embed轻量 那就是shell script 树莓派装个linux就可以开始玩
38F:推 BoXeX: C语言是有一些设计不良打死不改啦 像是结合律|& 02/23 22:57
39F:→ BoXeX: 但做坏事的能力是一等一的 我们永远需要这个自由的语言 02/23 22:57
40F:推 BoXeX: 至於C++就算了 功能多到爆炸谁搞得懂他 02/23 23:12
41F:推 ILoveAMD: 请问 结合律|& 是指什麽? 02/24 00:06
运算符 &&和&行为并不相同 一个是会提早终止 一个会全部执行
43F:→ linlin110: 这篇蛮有意思的,C++的使用者分两派,对语言的需求完全 02/24 01:55
44F:→ linlin110: 不一样,很难兼顾 02/24 01:55
Chandler当初看他秀clang-tidy觉得炫泡 不过现在回想 就是因为C++太多不良设计了
套一句围棋概念 为什麽会有手筋的存在 就是前面有人下错
不然你看AI自战哪常用手筋 都是占地大的位置 是人类下错AI才用手筋
45F:推 linlin110: 是说C++20开始我就没在跟了 加太多新东西跟不上 02/24 01:58
46F:→ linlin110: 不知道module的支援度如何 02/24 01:58
这东西除非C++真的有像是其他语言的官方包管理工具 不然永远是残缺的体验
47F:推 windows2k: 人无法预测未来,3/5年内认为是好设计,放大到30年就 02/24 07:34
48F:→ windows2k: 变坏设计了,就像array cast to pointer,现在要修就 02/24 07:34
49F:→ windows2k: 困难了 02/24 07:34
50F:推 ILoveAMD: & 跟 && 为甚麽行为要一样? 02/24 08:34
设计上有一个很重要的概念是"pit of success" 设计是要帮助使用者不小心用对
而不是提心吊胆的还会做错
51F:→ ILoveAMD: 手筋还定石 定石的由来跟日本的围棋竞争史有关 很有趣 02/24 08:38
定石是照棋型正常走的棋步 手筋是扭转局部战况的妙手
妙手可以存在是因为有人下错 不在棋型上 导致棋型不好
52F:推 b0920075: c++ 功能特性很多但你也没必要全都懂吧,懂会用到的就 02/24 08:47
功能多跟设计不良无关 功能多但每个都半残品更凸显无节操
前面已经举过很多例子了 比如lambda挤牙膏
53F:→ b0920075: 好了,另外拿 coroutine 比 thread 两个起跑线又不一样 02/24 08:47
54F:→ b0920075: ,怎麽不拿c/c++ 的 coroutine 来比 02/24 08:47
因为C++ coroutine很难写 维护难度跟c++thread/goroutine不在同一个等级上
C++ coroutine现在主要应用在高频交易 算是蛮特化的场景
不然系统设计主导的後端常见要嘛node要嘛go
55F:推 pot1234: 我是针对go是c++後继者这点回覆。你光看到right referen 02/24 09:09
我说go是C後继者 rust才是我这篇中c++後继者 再次强调 C和C++是不同的语言
56F:→ pot1234: ce就知道这边的使用者为了避免多余的copy愿意付多少effo 02/24 09:09
现在主流语言就C++有r ref 其他语言不在意一般copy成本阿 顶多要注意deepcopy
57F:→ pot1234: rt,然後golang基本data structure慢个30-40%…重度使用 02/24 09:09
58F:→ pot1234: thread的场景还是会用golang啦,但其他场景做不到。你看 02/24 09:09
59F:→ pot1234: llama.cpp也不是用golang写呀 02/24 09:09
llama.cpp是产品级的东西吗? 你拿llama.cpp来跟整个容器家族比应用?
※ 编辑: PosetMage (126.72.89.102 日本), 02/24/2025 09:42:25
60F:→ pot1234: 说c的後继者就更好笑了,比vector慢难道能比c array快? 02/24 09:48
61F:→ pot1234: 你firmware能用golang写,instruction memory不用钱? 02/24 09:48
所以现在的SaaS公司全部是智障 使用aws azure gcp都是k8s+容器化 大家都是脑残
62F:→ pot1234: 非产品级就不管喔?其他应用不是应用?你公司里产品跟非 02/24 09:48
63F:→ pot1234: 产品的project比例是1:0? 02/24 09:48
喔是喔 照你逻辑 那大部分的软体都不是C写的 所以C是垃圾
※ 编辑: PosetMage (60.152.174.174 日本), 02/24/2025 09:58:14
64F:嘘 freeunixer: go 不拿掉 gc 就下去吧,看 discord 为什换 go 改 rust 02/24 10:18
又来一个 大部分软体不是rust写的 rust
※ 编辑: PosetMage (60.152.174.174 日本), 02/24/2025 10:21:18
65F:→ pot1234: 我可没有说SaaS那些有的没的应该改用C。但如果你说xxx是 02/24 10:29
66F:→ pot1234: ooo的後继者,那xxx应该要继承ooo的优点吧?不然花一堆 02/24 10:29
67F:→ pot1234: 时间转过去效能变慢怎麽跟客户交代?还是firmware太脏了 02/24 10:29
68F:→ pot1234: 不算softjob? 02/24 10:29
大家不用C不然要用什麽你说阿 rust? 好喔 rust最强
69F:→ freeunixer: 我说 go 因为 gc 被 discord 换掉也没说错啊. 02/24 10:30
70F:→ freeunixer: go 到现在不给 bypass gc 就只能担当中高等级负载 02/24 10:32
rust最强+1
※ 编辑: PosetMage (60.152.174.174 日本), 02/24/2025 10:33:32
71F:→ pot1234: 再说你说那些从一开始就不会用c/c++写吧,干後继者屁事 02/24 10:32
拿llama.cpp来说AI不会用go写 现在又说很多东西不该用C++写 逻辑加油
※ 编辑: PosetMage (60.152.174.174 日本), 02/24/2025 10:38:30
72F:→ pot1234: 我是说在意效能到一定程度的话会倾向用c++写… 02/24 10:40
73F:→ pot1234: llama.cpp是因为他要用cpu跑model,所以用go会慢个30%不 02/24 10:41
74F:→ pot1234: 能接受,这样有听懂我的意思了吗?? 02/24 10:41
所以阿 云端不用在意效能? container作为所有云端基础不用在意效能?
整个云端技术都很有钱 大家用go浪费资源很爽?
※ 编辑: PosetMage (60.152.174.174 日本), 02/24/2025 10:42:46
75F:推 DrTech: 虽然我想法跟原PO不同,但非常鼓励这种有自己主见观点的人 02/24 10:49
76F:→ DrTech: 。 02/24 10:49
怎麽缩了 前面不是很凶说是个人问题不要牵拖语言?
77F:→ pot1234: 是啊 人力比较贵啊,c++烂语言浪费人力 02/24 10:49
笑死 说资源很重要的是你 说go浪费资源的也是你 结果讲不出为什麽云端都是go
只会说C++烂语言浪费人力 举例C++还只能拿llama.cpp
起码也说个高频交易现在都是C++ 主流游戏引擎unity/unreal/godot原始码都是C++
78F:→ pot1234: 呃 golang的slice会做边界检查,就像c++的vector::at比s 02/24 11:06
79F:→ pot1234: ubscript慢一样。golang哲学上不希望花时间debug这种垃 02/24 11:06
80F:→ pot1234: 圾。我也知道高频用c++,找工作的时候会看到,不过想说 02/24 11:06
81F:→ pot1234: 举个我确定会用到大量vector的例子。原本是想好好讨论的 02/24 11:06
用单一语法缺点打死一个语言 这样叫想好好讨论? 好喔
82F:→ pot1234: ,当你说得对吧@@ 02/24 11:06
※ 编辑: PosetMage (124.212.251.101 日本), 02/24/2025 11:11:27
83F:→ DrTech: 要战了吗?本来还不想战你这个假外行。你一定没参与过任何 02/24 11:11
84F:→ DrTech: 国际组织,而且是技术很多人使用的国际组织,历史包袱本来 02/24 11:11
85F:→ DrTech: 就该变来变去的。今天的设计正确,本来就不适用10年後。10 02/24 11:11
86F:→ DrTech: 年後再改啊。就你这个菜鸟才会认为程式语言有最佳最棒的架 02/24 11:11
87F:→ DrTech: 构或语法设计,真的有够菜鸟的想法。 02/24 11:11
10年後再改没问题啊 现在是一堆语言一年一小改三年一大改喔
※ 编辑: PosetMage (124.212.251.101 日本), 02/24/2025 11:13:49
88F:→ DrTech: Rust也是常常改版啊,有够烂,一直改,跟C++一样烂。 02/24 11:12
89F:→ DrTech: 随着时间越长Rust改越多,有够烂! 02/24 11:13
语言本来有自己一套哲学 照哲学更新没问题 打破自己哲学 那就是问题
※ 编辑: PosetMage (124.212.251.101 日本), 02/24/2025 11:15:22
90F:→ DrTech: 使用人数,程式语言排行榜,都证明Rust设计失败,没人想要 02/24 11:14
91F:→ DrTech: 用了。呵呵。 02/24 11:14
92F:→ DrTech: 设计得再好,没人用?根本就是笑死人。 02/24 11:15
所以阿 语言扯甚麽哲学 能动就好 写asm也可以 设计语言干嘛
※ 编辑: PosetMage (124.212.251.101 日本), 02/24/2025 11:17:43
93F:→ DrTech: 成功的程式语言就是,有人用,有人赚到钱,商业成功。Rust 02/24 11:17
94F:→ DrTech: 设计成没人想用,商业价值低,真的设计得得蛮失败的。 02/24 11:17
是阿 各种语言设计的都是浪费时间浪费力气 大家通通回去写组合语言价值最高
※ 编辑: PosetMage (124.212.251.101 日本), 02/24/2025 11:18:31
95F:→ DrTech: 谁不知道科学与哲学的重要。程式语言不能让更多人使用,不 02/24 11:19
96F:→ DrTech: 能让更多人赚钱,有什麽意义。这就是Rust失败的地方。Rust 02/24 11:19
97F:→ DrTech: 惨惨惨。 02/24 11:19
很棒 这个就是你参战的水准 跨国组织的高度
※ 编辑: PosetMage (124.212.251.101 日本), 02/24/2025 11:21:53
98F:→ DrTech: 再怎麽吹Rust,都改变不了,少人用的惨况啦。设计哲学,设 02/24 11:21
99F:→ DrTech: 计成没人用,还敢一直吹耶! 02/24 11:21
还好我不会rust我只会有商业价值的C++
※ 编辑: PosetMage (124.212.251.101 日本), 02/24/2025 11:23:48
100F:→ pot1234: vector的优化怎麽能算特例… 你任何压缩演算法,加解密 02/24 12:14
101F:→ pot1234: ,图像算法,AI模型,大部分的data structure,哪个perf 02/24 12:14
102F:→ pot1234: ormace不是dominated by vector。不确定为什麽你一直觉 02/24 12:14
103F:→ pot1234: 得vector不重要。那hash map重要吗?他底下的data用什麽 02/24 12:14
104F:→ pot1234: 存? 02/24 12:14
105F:→ superpandal: 我是指js和py的可速食程度变低了 除非舍弃掉现有生态 02/24 12:52
106F:→ superpandal: 改用迷你的解释器 全部自己来 现在的你不整个开发工 02/24 12:54
107F:→ superpandal: 具很难随写随跑 浏览器更是重型应用开发上还是桌面 02/24 12:56
108F:→ superpandal: 端为主 02/24 12:56
109F:→ superpandal: 要的就是小工具可以让我灵光一闪随写上去随用 02/24 13:12
110F:→ Lordaeron: Java出来时,捅C++ 几下。C# 出来时,捅Java 几下。 02/24 14:50
111F:→ Lordaeron: Go出来,也捅C++ Java几下。现在Rust 出来,C++也被捅 02/24 14:52
112F:→ Lordaeron: 看来C++ 衰小呢。 02/24 14:52
113F:→ cylee: 好奇问一下,你们 HFT 是不是一堆low latency的专家 02/24 19:22
114F:→ LipaCat5566: 看redox 之後会怎麽样吧 02/25 11:12
115F:→ buffon: 我只会C 哭哭 02/25 13:53
116F:→ labbat: 写c++然後extern c包起来 02/25 16:49
117F:推 Lhmstu: 现在说会c++都要加上年份XD 03/01 19:38