我讨厌Rust语言

作者: wharton0分类: 计算机技术 发布时间: 2024-04-27 06:05:00 浏览:9325 次

我讨厌Rust语言

沧浪亭歌:
其实c++做到安全性,和rust其实也差不多,因为你可以实现rust保证安全的方式。我对rust的看法是,它是一个c++的限制版(目前我是这么理解的),它的很多限制都是来着于c++实践的经验总结,实际上如果你用c++编写代码,如果对于编译器警告都进行处理了,实际上安全性也不低,你用rust编译器可以检测出来的c++编译器一样可以检查出来警告,但是c++编译器并不会阻拦你不能编译运行。

【回复】我觉得 Rust 就是对“我们能否利用编程语言的类型系统对安全且高效的计算系统进行建模”这个问题的一次尝试,想起来最近又有一个 Hylo 语言提出了“mutable value semantics”来解决 Rust 生命周期系统的不足,我感觉未来我们使用的编程语言可能不会是 Rust,但极有可能走的也是同一条路子。[笑哭]
【回复】回复 @沧浪亭歌 :还真是[笑哭]c++只是某些实现比较晚,我记得有个笑话就是c++抄了rust,属于是爷爷抄儿子了
客厅电脑用账号:
我对作者的很多观点持反方,但我游览的社交媒体信息很少包含关于rust的吹捧所以有些无法共情和忽略某些点还请见谅 一是社区问题,我有几次发issue的经历,大家都很热情,问题大都可以得到解决 二是关于unsafe,这点很有趣,之前做过一个机构的测试题,里面说unsafe就是不安全的代码,但我一直得到的理解是,unsafe用于告诉编译器,这里的代码是安全的,安全性由编写者保障,是因为编译器还未能识别更加复杂逻辑下作出的妥协。而作者却将所有编译器判定为不安全的代码认定为蠢事,把unsafe认定为让,人们做从蠢事的通行证,这是有些偏激的。其实,我认为从哲学上来讲,程序,代码,算法以及所有意义的确定性与不确定性来自于人本身,基于人之间的信任。作者似乎一直希望解释这一点是错误的,信任应该来自于别的更加可靠的东西。但这一观点的确定性本身也是来自于人,未免有些自我否定了。 三是cargo,我认为cargo很好,我能很方便的为自己的程序编写文档也能高效的查看其他人编写的代码与文档,文档中提到的函数在右侧的source按钮就可以看到实现细节。再者,第三方库能够为自己的程序编写测试,在上传库的时候能够由自动程序检查。我觉得这是分好的安全实践 四是作者提到了c,有很多很棒的新特性,可惜我从来没有一次成功配置过c++21的编译环境,我的水平就到这里,但在我的水平之下,我能使用rust写出比起c更好的代码,这得益于严格的编译器,cargo和为我解答问题的社区前辈。而起码到现在,rust能够很好的让我“没有必要”去学习c。我认为rust之所以受人吹捧,主要是因为天下苦c久矣,c/c++真的是一门非常不现代的编程语言,这不是说一些时间,而是设计思路。 最后,推荐大家在github上搜索arceos,这是一个脱胎于外国unikernel的操作系统,主要面向工业领域,没有系统调用(有一个分支也能兼容系统调用)使用rust编写,由清华大学与北京贤达襄助。

【回复】c++根本没有21标准,能配置出来才是最可怕的事情
【回复】回复 @客厅电脑用账号 :98 11 14 17 20 23 26
【回复】回复 @客厅电脑用账号 :你看了假东西,现在配置知道c++环境很快的
天鹰座53:
我也讨厌,太难了,而且目前生态都还很差[藏狐]

【回复】库,好多都很多年没更新了,有的实在是不敢用。不知道是太稳定没必要更新,还是作者弃坑了。
【回复】回复 @一二三跳一下 :???生态比cpp好这么多了还嫌弃,一个库你先看近期下载数啊,下载量大的肯定不更新是没必要[doge]
【回复】难学吗?我觉得至少比c++简单多了[笑哭]
渊千夙:
这种拿跟技术本身无关的事(社区吹捧、系统调用、第三方库质量)来对技术本身情绪化输出,很没意思。中间谈什么字符串结尾的事就更加体现作者就没怎么学rust,rust的字符串就是他吹捧的地址+长度。

【回复】去hacker news上看了一眼,这文已经被flagged。散了吧,没意思,整个看下来突出一个无能狂怒
【回复】相对cpp,rust的字符串有个毛槽点[笑哭]
耘峥:
c艹是邪教,rust是魔教。很有意思的一个点,当初学这些的社区都会吹捧自己的语言无所不能。现在看起来[doge]。生命短暂,找些让自己快了的语言把。编程语言在我看来两大作用:1 . 解决实际问题,领域问题。这个时候需要聚焦到实际问题的业务中,不应该把太多经历花在语言本身,否则这门语言就不适合解决这个领域,或者语言本身成本太高。2: 纯粹的语言研究,和自我操练。这类人我觉得真的需求的不超过千分之一甚至万分之一。大部分应该是技术狂和语言开发领域相关。但是具备这种能力的人,研究如何语言都没差,他们也会写自己的语言或者dsl。所以我并不看好rust的普遍实用性。[呲牙]

【回复】出生早用得广的语言会有各种槽点,讲自己有多好的多半是针对某些情况特化,然后用的范围小。
【回复】其实把rust看成某种填cpp坑的方案就好了。绝大部分人不需要cpp,自然绝大部分人不需要rust。但是当你需要时…比折腾cpp开心多了[doge]cargo堆一下都解决了多少问题[doge]
skyline661:
我觉得这篇文章写的不错[doge],rust吵的太过,拿出来成绩再吹,现在也没看到多牛的项目是rust编写的

【回复】是啊,学习资料都少的可怜
AI视频小助理:
一、作者三次尝试学习Rust语言的经历,并列举了Rust社区的一些问题,包括社区氛围、语言特性以及学习资料等方面。 00:01 - DOI写的文章《我讨厌rust语言》,讨论了Rust社区的问题。 01:05 - DOI列举了多次尝试学习Rust的经历,包括对社区的第一印象不好。 03:11 - DOI列举了学习Rust遇到的问题,包括官方推荐的学习资料不能编译等。 二、作者对于新兴语言Rust的反感和无奈,认为Rust的推广并没有实际贡献,只是让人感觉高尚,维持现状的工具。 04:39 - 转向微软的技术让人沮丧,Java也是如此。 05:52 - 2022年开始,人们鼓吹Rust语言的势头,每个C/C++开发者大会都有关于Rust的演讲。 08:46 - Rush让你感觉高尚,却维持现状的工具,比喻为塑料回收。 三、 Rust 并不是一个内存安全的语言,因为 Rust 也使用了底层 API,例如 POSIX 和 win32 操作系统接口,而这些接口存在内存不安全的问题。 09:20 - Rust重写后并未改变做事方式,只是掩盖了内存不安全问题 10:18 - Rust无法真正解决内存不安全问题,需要操作系统接口消除错误 11:58 - Rust官方文档中的unsafe代码是反讽,滥用unsafe特性容易做出傻事 四、Rush内存漏洞以及unsafe功能和on save语句带来的虚假安全感,提醒大家在使用Rush时需要注意安全问题。同时,也谈到了Cargo编译器的使用和安全性问题。 13:58 - 火速内存漏洞,Rush爱好者感兴趣 15:47 - 代码库中的unsafe部分可能无法确定安全性 17:30 - 卡狗工具的安全性问题需要谨慎配置和使用 五、 Rust 语言的安全性和其社区的批评。虽然 Rust 存在一些技术优点,但它仍然存在很多问题需要修复,并且其社区存在一些过于自大和精英主义的倾向。 18:36 - 依赖库的修复时间取决于问题的严重性 19:43 - Rust语言并不鼓励安全实践,精英主义自大和自以为是的感觉是问题所在 22:39 - Rust需要闭 --本内容由AI视频小助理生成,关注解锁AI助理,由@一生忽得夏司掌好年华 召唤发送

【回复】总结,作者最终没学会rust,而且还发了吐槽文章~这才是最奇葩的
Wilhelm_Reich:
周一学了一天,大概就能读懂代码的程度。然后开始给一个开源项目debug+部署。是在看不懂就丢给GPT解释。作为初级打工人没得选,公司需要啥我会啥。

【回复】回复 @chatMBTI :可以的,我是部署Sui,他们bug太多。
【回复】我24小时内从学到上线项目[doge] 还是solana的
不明觉疼:
批评Rust的不缺他这一个,因为自己弱鸡而批评Rust的更不缺他这一个。[doge]

【回复】从知识面来看,肯定不菜
【回复】回复 @区块漏斗 :但从他提供的论据里面看,是个十分高傲连 the book 几章教程都看不下去,the book 本来也就那么几页也并不难。
【回复】回复 @某只福瑞粉猫的小号 :他提供的理由已经说明他菜了,如果只是宣泄情绪,不需要找理由宣泄就行了。他在批评说Rust不是更安全的语言的时候,实际上也把众多依靠GC和运行时实现内存安全的语言否定了,这么多语言都没有更安全,那它们是吃饱了撑的?费这么大劲引入gc和运行时是为了跟C++一样安全?[笑哭]
siseniao1:
依赖问题不是某个语言的问题,是整个代码圈的问题,基于白嫖原则,不会得到解决[吃瓜]

42536464754_bili:
他所有的东西都是自己写的吗,包括操作系统

等腰三角熊熊:
翻译:一个蠢货的三次hello world尝试[笑哭]

完美12345678:
我不怎么认同作者的观点,其实没有绝对内存安全的语言,即使是Java这种有垃圾回收的语言,也会存在内存泄露的问题。我认为所谓的内存安全是相对,不同的语言写出内存安全代码的难易程度不同,包括找出有问题代码的位置所在。c++和rust我都写过,个人感觉rust要更舒服一些,因为c++要花更多的精力来保证内存安全。rust只要编译不报错基本上就没有怎么问题。而且就算出现了问题一般只要检查少量unsafe代码就基本能找到问题。

【回复】Q:如何解决内存安全问题? A:把不安全的行为禁用就好了。 其实差不多,当你要不可避免地对内存做更细粒度化的操控时你无法避免使用unsafe,写出来的代码效果可能跟cpp一样,cpp里的内存完全问题大多源于从c继承过来的东西,比如什么裸指针,野指针,原始的数组等等,只要你用array,用智能指针等等一些新标准的内容,不要尝试使用C里面的那一套其实可以避免很多问题。rust只不过把这个可选的操作变成了必要的操作。
【回复】你这说的,那什么都不安全了,听过白炽灯烤内存不[doge]
【回复】[doge]不可能安全的,编译通过只是编译器认为没问题,但是编译器是用CPP写的,已经是unsafe, 你使用的标准库可能是safe的,但是其他库不代表safe,但你认为安全了∠( ᐛ 」∠)_因为编译通过了,但是安全隐患已经种下了, 哪怕这些都是safe的,但是你操作系统不是rust写的,是C语言,照样不安全[吃瓜]
liqh99:
cargo 比c++各种编译器,包管理,编译脚本友好多了。 ,c++有时候编译第三方库需要花大量时间

某公主链接福瑞的小号:
回复 @沧浪亭歌 :没有语言可以取代CPP,java试过,然后歪到另一个赛道去了,GO也试了仍然不行,人数上不去→_→,证明还是有局限性,rust正在试,但是人数寥寥无几,还往下跌[呲牙] 加上社区人心浮躁,我[吃瓜]看后续精彩剧情[打call]

【回复】回复 @TRCYX :你在搞笑呢,我是说rust的所谓安全是自己骗自己,你可以不接受但是少扭曲事实。CPP这样可以实现相对安全,只要在使用老特性的时候多检测就好了,真正100%安全不可能,只有rust教徒才把安全口口声声挂在嘴边,因为离开了所谓的掩耳盗铃安全外,rust能比得上CPP的几乎没有[吃瓜]感觉你才是比较地才[吃瓜]。
【回复】不如去看看现在c++的经验群体,初学者(1到3年经验)的占比有多低,而且你说什么go取代,java取代,你自己不会看看创始人说的理念?go创造出来本来也不是为了取代c++的。另外现在c++包管理,还有标准更新后的项目更新问题有多烂,导致现在c++还有什么重量级的新项目吗?都是在维护旧项目,用的人还越来越少,而且现在会c++的人,大部分也都学习了rust你猜为什么?
【回复】回复 @史渔 :已经有斜教徒放弃rust了∠( ᐛ 」∠)_ 他被骗进去学了一段时间rust结果不知道能干啥[吃瓜]
tomgao100:
我也尝试学过半个月,挺麻烦的语言,实话说,没感觉的他们所说的优雅。。

【回复】因为rust主要适用面是底层开发。包括函数库开发,驱动程序,嵌入式,操作系统,这方面需求本来就小众,不搞相关开发的人员当然体会不到rust提供的价值。其他的应用层开发本来就不是首选rust c cpp,首选垃圾回收语言。
老9学编程:
rust社区,超级排外,在一个QQ群,我仅仅是对一个管理员提出,他的一些做法不对,您猜怎么着,嘿,直接把我踢掉了, 感觉他们建立交流群,就是为了居高临下,显得自己很牛逼。

编程语言 C++ 编程 科技鉴赏家 RUST C/C++ 原来你也玩闪耀暖暖

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!