首页 > 娱乐幽默 Rust:愿者上钩 Rust:愿者上钩 💬 57 条评论 | rust/编程语言 | 2025-06-11 共有 57 条讨论 谁说所有 C/C++ 程序员都 “反对 ”Rust?是的,有很多这样的人。但我接触到的大多数人都会说:“我希望我能做 Rust,但你知道,blabla 遗留代码,blabla 谨慎的管理者…… ”之类的话。 回复 大多数 Rust 程序员也使用 c 和 c++。有没有想过,为什么其他语言子集之间没有区别? 回复 是的,我甚至可以更进一步说,现在还没有一个优秀的 Rust 开发人员不是在 C/C++ 中学习的。 这可能很快就会发生。但就目前而言。你的职业是 C 程序员,业余爱好是 Rust 程序员。 回复 嗯。Rust 可以用作相当高级的语言。我开始用它编写网络应用程序(包括通过 WebAssembly 编写的前端程序),感觉非常棒。从那时起,我开始接触裸机。当然,我在学校学过 C 语言,但只够应付考试。我甚至无法在不查找语法的情况下声明一个返回另一个函数指针的函数。我从没学过 C++。(当然,你可能会质疑我是否是一个优秀的 Rust 程序员,这很公平,笑)。 回复 没有。我猜你就是那个我有点怀疑是否存在的新一代!很高兴听到你的存在!继续努力吧。 在我看来,Rust 是我们在计算机软件方面取得进步的唯一希望,因为处理器有点停止不前了。 回复 我在学校里完全跳过了 C/C++,我学过的最低等的语言(辅修 CSci,非主修)是 Java 和 OCaml。课外我几乎只用 Python。但最近因为工作需要,我不得不学习 Rust,其实它并没有什么特别大的不同,也不难用,虽然整体过程相当相似,但需要考虑的因素要多一些。事实上,我发现当我回到 Python 时,我真希望能拥有它的一些一致性,因为不能如此轻松地控制类型有时会让我头疼。 回复 Linux内核中的一些C语言程序员对Rust直言不讳,因此所有C/C++程序员都反对Rust。 逻辑很简单,老兄。 回复 哦,是关于这种情况吗?我的意思是,“最糟糕 ”的克里斯托夫-赫尔维格(Christoph Hellwig)自己说过,他并不反对 Rust,他只是反对在同一个项目中混合使用两种语言。(我认为这在总体上是一个合理的立场)。 回复 我不知道这是不是真的,这只是我对整个想法的讽刺,笑。 不过是的,据我所知,这只是 C 语言开发人员不想在理解一种新语言后继续做出有效贡献而已。 回复 这肯定是对某些 Rust shilling 毒性的一种反应。 回复 我的意思是,与其说是反对 Rust,不如说是厌恶某些特别有发言权的 Rustaceans 的怪异心态。这是一种有目的、有实用性的语言,而不是一种生活方式,伙计们。 回复 你可以两种语言都用,但我知道多种语言互用并不是最轻松的事(我用过 C++ 和 js、golang、c# 和 java)……而且有时是很厚的一层…… 回复 什么?Rustacean 说的是黑帮中的每个人都错了。还不能确定暴民就是所有的 C/C++ 开发人员。 回复 他们不是反对,他们只是错了 回复 是的,这只是一种礼貌的说法,我们不喜欢 Rust,因为它的语法不可读,而且过于复杂,足以让人不喜欢、不需要。因此,对于小而简单的东西,使用 Go 是合理的;对于复杂的东西,使用 C++ 是合理的。Rust 在任何情况下都没有意义。多亏了 C++,我们已经受够了代码可读性差的问题。 我们需要的是像 C++ 一样强大、快速,但具有更好的可读性和更简单的语法。Rust 并不符合这一要求。 回复 对语法的抱怨简直愚蠢至极。语法没有好坏之分,只有熟悉与不熟悉之分。每个人在认真使用过几种不同的语言后都会意识到这一点。你的大脑会为你经常使用的语言开发出解析器,然后就像骑自行车一样。因为语法最初不熟悉而拒绝一门语言是非常短视的。 当然,如果你在整个职业生涯中都坚持使用类似 C 语言的舒适区,你可能永远都不会有这种认识。 回复 当然,可读性并不重要,那为什么不只在 Brainfuck 上编码呢? 在残酷的现实中,人的时间是一种资源。这些时间是有限的,应该明智地使用。根据我的观察,由于可读性差和语法过于复杂,开发团队在 Rust 上开发代码所需的时间比在 C++ 上以安全、准确的方式开发相同代码所需的时间多出约 40-50%,而且还要遵循现代 C++ 准则和最佳实践,以确保代码尽可能安全。 那为什么还要这么做呢?Rust 本身就比 C++ 慢,使用 Rust 的开发过程也比 C++ 慢得多,即使大家都对 C++ 存在依赖性。那为什么还要用 Rust 呢? 回复 brainfuck的 “问题 ”不在于它的语法,它很容易解析和理解。可读性问题在于它不允许你表达与领域相关的想法。无法用类型对值进行有意义的分组。命名函数的行为没有意义。 因此,语言特点肯定会影响可读性。Rust 的语言特点与 C++ 极为相似。它缺少继承性是唯一能想到的主要区别,这说明 Rust 实际上更简单。 根据我的观察,由于可读性差和语法过于复杂,开发人员团队在 Rust 上开发代码比在 C++ 上开发同样的代码大约多花 40-50% 的时间 你考虑过你的团队可能还没有完全精通 Rust 吗?下面是谷歌工程总监 Lars Bergstrom 的一段演讲,他谈到了他们如何将许多项目从 C++ 重写为 Rust,开发人员的工作效率平均提高了一倍:https://youtu.be/QrrH2lcl9ew?t=474 回复 是的,Rust 在语法上与 C++ 非常相似,它继承了 C++ 最糟糕的语法 Trait,并将其变得更糟糕。糟透了。真的很可惜。每个人都知道 C++ 在可读性方面有多糟糕,但他们不知怎么就把 Rust 弄得比那还要糟糕。 是的,我完全同意我的团队并不精通 Rust,而且我也不打算勉强他们。这样做毫无意义。我们的当务之急是重构和改进现有的、相当稳固但庞大的 C++ 代码库,使其更有条理、更易于管理,而不是花费数月时间从头开始编写所有内容,以获得相同的产品,但速度要慢 15-25%。 在这种情况下,谷歌是一个非常糟糕的例子,他们的产品质量目前可以与微软相媲美。这并不是生产力翻了一番。他们只是裁掉了一半的开发人员,而剩下的一半开发人员现在正努力完成被裁掉的开发人员的工作。 回复 大多数 Rust 爱好者都来自 C/C++。 试想一下,你以为你会一直使用同一种语言,直到死亡,因为它已成为行业标准。但有一天,一种新语言的出现解决了你多年来遇到的许多问题。 Rust 并非灵丹妙药,但如果你打算编写更安全的软件,它无疑是向前迈进了一大步。 回复 我是一名 Rust 程序员,拥有近二十年的 C/C++ 编程经验。 我有自己的观点,但我尽量不把这些观点强加给别人,除非他们请我喝足够多的酒并提出要求。 不过,我得承认一点。作为一个行业,我们不应该在面向公众的服务中接受内存破坏 CVE,因为这些服务中保存着敏感的用户数据。对于游戏或科学代码,我对 C/C++ 没有任何意见。但在处理医疗信息、金融信息甚至只是私人对话时,我们应该以 Rust(或 GCed 语言)为基准。然后,我们应该努力做得更好。当然,我们不可能重写世界上所有的遗留代码!但我希望在新的新建系统代码中消除 2/3 的严重安全漏洞,这应该是可以实现的。 回复 我不明白为什么人们把 Rust 的安全性作为主要论点;它又没有标准化的构建系统和软件包管理器,而这在过去可是个大麻烦。 回复 它不像它有标准化的构建系统和软件包管理器,而这曾是个大麻烦 我不明白。你是在抱怨 Cargo 还是它默认使用静态链接的方式? Rust 的设计默认是安全的。除非你必须处理 C API(主要是操作系统 API),否则你永远不需要使用不安全的代码。 这就是 Rust 与 C++ 的主要区别,C++ 也可以用来编写安全代码,但 Rust 并不是围绕安全设计的,安全在 Rust 中只是二等公民。 此外,Rust 的类型系统非常出色,编译器错误很有帮助,而且 Rust 从函数式编程中吸收了很多概念,因此流程处理可以非常优雅。 回复 是的,我可以用更好的方式来表述,我的意思是在 c++ 的情况下,这很麻烦、 当你使用 cmake 时,交叉依赖管理其实并不更好,因为你需要处理不同的软件包实现方式(对我来说,猜测经常不起作用,我不得不阅读文档)。 我不喜欢 cmake,因为它让简单的事情变得不简单,而且它只有在处理大项目时才有用,但大多数项目都是中小型的,这让我无法忍受。 是的,我知道一些 cmake 的基础知识,但这不是我不学习它的借口。 回复 因为那是附带的,而不是语言的本质。 回复 Rust 不是银弹,但如果你打算编写更安全的软件,它肯定是向前迈进了一大步。 与 C/C++ 的安全灾难相比,Rust 只是 “更安全 ”而已。 它甚至比几十年前的任何虚拟机语言都不安全。 真正的革命是 JVM。它首次允许使用安全语言编写高性能应用程序。 Rust 的确是比 C/C++ 更好的语言。但这并不是一场革命。它只是一种能在 C/C++ 细分领域有所改进的语言,而非一般的编程语言。 如果你想真正见识一下未来的语言,不妨看看 Scala。它早在 10 到 15 年前就拥有了现在备受赞誉的 Rust 功能,而且它仍然领先主流语言 20 年左右。 回复 如果你真的想看到火花四溅的场面,把这个放到 LinkedIn 上吧。 回复 Rust in Peace 回复 一个德国人与英语使用者 回复 ??? 是因为 “爱好者 ”的大写错误,还是因为 “是的,你们都错了 ”中的非典型词序? 回复 好的 回复 如果它能用在图片或 arduinos 上,也许我会学学,但现在我的需求已经得到满足了 回复 它可用于 Stm32 和 esp32。我不确定皮卡的情况,但在 arduino 上也可以使用。 回复 如果必须允许越界内存访问,可以使用 “不安全”。 回复 hmph. 回复 等你意识到这三组之间有多少重叠的时候就知道了。 回复 让我加入最肤浅的争论: 我不喜欢 Rust 中 name : 类型语法的样子。否则我也会学习 Rust,因为我喜欢速度:) 回复 我认为在编译器可以推断出类型的情况下,这样做是有意义的,因此函数签名遵循相同的结构以保持一致性。因此,将类型放在变量名之后也是合理的,因为它们通常是变量的可选项。考虑到某些类型的冗长甚至错综复杂,类型推断确实有助于使事情变得顺畅。 回复 C99 是顶峰,其他一切都只是在更多抽象层之上的抽象层。 回复 其他一切都只是层层抽象之上的更多层次的抽象 这是好事! 否则,我们根本写不出任何大型系统。 我们没有理由接受 C 语言与实际机器之间的所有抽象,却不接受让一切变得更简单的进一步抽象。这在逻辑上是说不通的。 回复 查看 回复 Rust开发者(抱怨C/C++的开发者)就像Linux之于Windows。是的,好吧,我们明白了,你使用 Rust,全场都在欢呼。 回复 Rust 肯定没问题。就像任何新技术(与 C 语言相比是新技术)一样,它需要一段时间才能被业界更多的人采用。 回复 正确的东西不一定受欢迎,受欢迎的东西也不一定正确。 – 阿尔伯特-爱因斯坦 回复 有趣的是,“火船 ”号刚刚发布了一段视频,讲述了 C 是多么正确…… 回复 编写糟糕 C 代码的 5 种简单方法 这 5 个简单的 C 语言内存管理示例有可能让您的公司损失数十亿美元,甚至让您锒铛入狱。 大笑 这正是您应该使用安全、快速、有 GC 的语言编写关键任务代码的原因。这些语言拥有强大的类型系统,可以在编译时防止出现各种运行时错误,比如 Scala。 回复 [删除] 回复 你刚刚上钩了…… 回复 我不知道,也许可以试试用 Rust 赢得 cp 比赛? 回复 汉克,不要缩写赛博朋克或企鹅俱乐部 回复 汉克 回复 这怎么会是个好尺度? 回复 Rust 现在唯一的用途(以及可用的工作岗位)主要是在区块链和 web3 公司。 它将与 web3 一同驰骋,同归于尽。 回复 事实并非如此。我已经为两家不同的公司编写了五年的 Rust 生产语言,与区块链或 web3 毫无关系。工作机会不会像 C# 那样从树上掉下来,但它们确实存在 回复 我目前的工作是用 Rust 进行科学计算。我之前的雇主(嵌入式、航空航天)目前也在使用 Rust。 除了这些趣闻轶事:你几乎可以肯定每天都在使用基于 Rust 构建的基础架构。例如,AWS、windows 和 cloudflare 都在大量使用 Rust。如果你有一部安卓手机,你就在使用 Rust。 回复 即使在网络开发生态系统中,它也可以编译为 wasm,可用于多种不同的网络应用程序。 除此之外,现在美国国家航空航天局(NASA)也在使用它,甚至谷歌也在将大量 C++ 代码过渡到 Rust。Rust 不会因为你的无知意见而消失。 此外,尽管我们大多数人都讨厌 web3 和区块链,但它们仍在不断获得大量资金投入,所以我不认为它们会很快消亡。所以,即使是这样,Rust 的应用也会持续一段时间。 回复 妄想有人在听他们说话是非常真实的。 回复 发表回复 取消回复您的邮箱地址不会被公开。 必填项已用 * 标注评论 * 显示名称 * 邮箱 * 网站 你也许感兴趣的: Rust 中常见的有关生命周期的误解 Linux 内核 Rust 实验现状 Linux 中的 Rust 内核不再处于实验阶段 关于Go、Rust与Zig的思考 Debian APT对Rust的要求引发质疑 编程语言 Rust 的几个核心问题 Rust并非系统编程的未来——它只是炒作周期 Rust在Android中的应用:内存安全漏洞密度较C/C++降低了1000倍 用Rust重写的 coreutils 漏洞导致Ubuntu 25.10自动更新功能失效 Debian强制要求APT采用Rust语言,重塑Ubuntu及其他Linux发行版
谁说所有 C/C++ 程序员都 “反对 ”Rust?是的,有很多这样的人。但我接触到的大多数人都会说:“我希望我能做 Rust,但你知道,blabla 遗留代码,blabla 谨慎的管理者…… ”之类的话。 回复
嗯。Rust 可以用作相当高级的语言。我开始用它编写网络应用程序(包括通过 WebAssembly 编写的前端程序),感觉非常棒。从那时起,我开始接触裸机。当然,我在学校学过 C 语言,但只够应付考试。我甚至无法在不查找语法的情况下声明一个返回另一个函数指针的函数。我从没学过 C++。(当然,你可能会质疑我是否是一个优秀的 Rust 程序员,这很公平,笑)。 回复
我在学校里完全跳过了 C/C++,我学过的最低等的语言(辅修 CSci,非主修)是 Java 和 OCaml。课外我几乎只用 Python。但最近因为工作需要,我不得不学习 Rust,其实它并没有什么特别大的不同,也不难用,虽然整体过程相当相似,但需要考虑的因素要多一些。事实上,我发现当我回到 Python 时,我真希望能拥有它的一些一致性,因为不能如此轻松地控制类型有时会让我头疼。 回复
哦,是关于这种情况吗?我的意思是,“最糟糕 ”的克里斯托夫-赫尔维格(Christoph Hellwig)自己说过,他并不反对 Rust,他只是反对在同一个项目中混合使用两种语言。(我认为这在总体上是一个合理的立场)。 回复
是的,这只是一种礼貌的说法,我们不喜欢 Rust,因为它的语法不可读,而且过于复杂,足以让人不喜欢、不需要。因此,对于小而简单的东西,使用 Go 是合理的;对于复杂的东西,使用 C++ 是合理的。Rust 在任何情况下都没有意义。多亏了 C++,我们已经受够了代码可读性差的问题。 我们需要的是像 C++ 一样强大、快速,但具有更好的可读性和更简单的语法。Rust 并不符合这一要求。 回复
对语法的抱怨简直愚蠢至极。语法没有好坏之分,只有熟悉与不熟悉之分。每个人在认真使用过几种不同的语言后都会意识到这一点。你的大脑会为你经常使用的语言开发出解析器,然后就像骑自行车一样。因为语法最初不熟悉而拒绝一门语言是非常短视的。 当然,如果你在整个职业生涯中都坚持使用类似 C 语言的舒适区,你可能永远都不会有这种认识。 回复
当然,可读性并不重要,那为什么不只在 Brainfuck 上编码呢? 在残酷的现实中,人的时间是一种资源。这些时间是有限的,应该明智地使用。根据我的观察,由于可读性差和语法过于复杂,开发团队在 Rust 上开发代码所需的时间比在 C++ 上以安全、准确的方式开发相同代码所需的时间多出约 40-50%,而且还要遵循现代 C++ 准则和最佳实践,以确保代码尽可能安全。 那为什么还要这么做呢?Rust 本身就比 C++ 慢,使用 Rust 的开发过程也比 C++ 慢得多,即使大家都对 C++ 存在依赖性。那为什么还要用 Rust 呢? 回复
brainfuck的 “问题 ”不在于它的语法,它很容易解析和理解。可读性问题在于它不允许你表达与领域相关的想法。无法用类型对值进行有意义的分组。命名函数的行为没有意义。 因此,语言特点肯定会影响可读性。Rust 的语言特点与 C++ 极为相似。它缺少继承性是唯一能想到的主要区别,这说明 Rust 实际上更简单。 根据我的观察,由于可读性差和语法过于复杂,开发人员团队在 Rust 上开发代码比在 C++ 上开发同样的代码大约多花 40-50% 的时间 你考虑过你的团队可能还没有完全精通 Rust 吗?下面是谷歌工程总监 Lars Bergstrom 的一段演讲,他谈到了他们如何将许多项目从 C++ 重写为 Rust,开发人员的工作效率平均提高了一倍:https://youtu.be/QrrH2lcl9ew?t=474 回复
是的,Rust 在语法上与 C++ 非常相似,它继承了 C++ 最糟糕的语法 Trait,并将其变得更糟糕。糟透了。真的很可惜。每个人都知道 C++ 在可读性方面有多糟糕,但他们不知怎么就把 Rust 弄得比那还要糟糕。 是的,我完全同意我的团队并不精通 Rust,而且我也不打算勉强他们。这样做毫无意义。我们的当务之急是重构和改进现有的、相当稳固但庞大的 C++ 代码库,使其更有条理、更易于管理,而不是花费数月时间从头开始编写所有内容,以获得相同的产品,但速度要慢 15-25%。 在这种情况下,谷歌是一个非常糟糕的例子,他们的产品质量目前可以与微软相媲美。这并不是生产力翻了一番。他们只是裁掉了一半的开发人员,而剩下的一半开发人员现在正努力完成被裁掉的开发人员的工作。 回复
大多数 Rust 爱好者都来自 C/C++。 试想一下,你以为你会一直使用同一种语言,直到死亡,因为它已成为行业标准。但有一天,一种新语言的出现解决了你多年来遇到的许多问题。 Rust 并非灵丹妙药,但如果你打算编写更安全的软件,它无疑是向前迈进了一大步。 回复
我是一名 Rust 程序员,拥有近二十年的 C/C++ 编程经验。 我有自己的观点,但我尽量不把这些观点强加给别人,除非他们请我喝足够多的酒并提出要求。 不过,我得承认一点。作为一个行业,我们不应该在面向公众的服务中接受内存破坏 CVE,因为这些服务中保存着敏感的用户数据。对于游戏或科学代码,我对 C/C++ 没有任何意见。但在处理医疗信息、金融信息甚至只是私人对话时,我们应该以 Rust(或 GCed 语言)为基准。然后,我们应该努力做得更好。当然,我们不可能重写世界上所有的遗留代码!但我希望在新的新建系统代码中消除 2/3 的严重安全漏洞,这应该是可以实现的。 回复
它不像它有标准化的构建系统和软件包管理器,而这曾是个大麻烦 我不明白。你是在抱怨 Cargo 还是它默认使用静态链接的方式? Rust 的设计默认是安全的。除非你必须处理 C API(主要是操作系统 API),否则你永远不需要使用不安全的代码。 这就是 Rust 与 C++ 的主要区别,C++ 也可以用来编写安全代码,但 Rust 并不是围绕安全设计的,安全在 Rust 中只是二等公民。 此外,Rust 的类型系统非常出色,编译器错误很有帮助,而且 Rust 从函数式编程中吸收了很多概念,因此流程处理可以非常优雅。 回复
是的,我可以用更好的方式来表述,我的意思是在 c++ 的情况下,这很麻烦、 当你使用 cmake 时,交叉依赖管理其实并不更好,因为你需要处理不同的软件包实现方式(对我来说,猜测经常不起作用,我不得不阅读文档)。 我不喜欢 cmake,因为它让简单的事情变得不简单,而且它只有在处理大项目时才有用,但大多数项目都是中小型的,这让我无法忍受。 是的,我知道一些 cmake 的基础知识,但这不是我不学习它的借口。 回复
Rust 不是银弹,但如果你打算编写更安全的软件,它肯定是向前迈进了一大步。 与 C/C++ 的安全灾难相比,Rust 只是 “更安全 ”而已。 它甚至比几十年前的任何虚拟机语言都不安全。 真正的革命是 JVM。它首次允许使用安全语言编写高性能应用程序。 Rust 的确是比 C/C++ 更好的语言。但这并不是一场革命。它只是一种能在 C/C++ 细分领域有所改进的语言,而非一般的编程语言。 如果你想真正见识一下未来的语言,不妨看看 Scala。它早在 10 到 15 年前就拥有了现在备受赞誉的 Rust 功能,而且它仍然领先主流语言 20 年左右。 回复
我认为在编译器可以推断出类型的情况下,这样做是有意义的,因此函数签名遵循相同的结构以保持一致性。因此,将类型放在变量名之后也是合理的,因为它们通常是变量的可选项。考虑到某些类型的冗长甚至错综复杂,类型推断确实有助于使事情变得顺畅。 回复
其他一切都只是层层抽象之上的更多层次的抽象 这是好事! 否则,我们根本写不出任何大型系统。 我们没有理由接受 C 语言与实际机器之间的所有抽象,却不接受让一切变得更简单的进一步抽象。这在逻辑上是说不通的。 回复
编写糟糕 C 代码的 5 种简单方法 这 5 个简单的 C 语言内存管理示例有可能让您的公司损失数十亿美元,甚至让您锒铛入狱。 大笑 这正是您应该使用安全、快速、有 GC 的语言编写关键任务代码的原因。这些语言拥有强大的类型系统,可以在编译时防止出现各种运行时错误,比如 Scala。 回复
我目前的工作是用 Rust 进行科学计算。我之前的雇主(嵌入式、航空航天)目前也在使用 Rust。 除了这些趣闻轶事:你几乎可以肯定每天都在使用基于 Rust 构建的基础架构。例如,AWS、windows 和 cloudflare 都在大量使用 Rust。如果你有一部安卓手机,你就在使用 Rust。 回复
即使在网络开发生态系统中,它也可以编译为 wasm,可用于多种不同的网络应用程序。 除此之外,现在美国国家航空航天局(NASA)也在使用它,甚至谷歌也在将大量 C++ 代码过渡到 Rust。Rust 不会因为你的无知意见而消失。 此外,尽管我们大多数人都讨厌 web3 和区块链,但它们仍在不断获得大量资金投入,所以我不认为它们会很快消亡。所以,即使是这样,Rust 的应用也会持续一段时间。 回复
谁说所有 C/C++ 程序员都 “反对 ”Rust?是的,有很多这样的人。但我接触到的大多数人都会说:“我希望我能做 Rust,但你知道,blabla 遗留代码,blabla 谨慎的管理者…… ”之类的话。
大多数 Rust 程序员也使用 c 和 c++。有没有想过,为什么其他语言子集之间没有区别?
是的,我甚至可以更进一步说,现在还没有一个优秀的 Rust 开发人员不是在 C/C++ 中学习的。
这可能很快就会发生。但就目前而言。你的职业是 C 程序员,业余爱好是 Rust 程序员。
嗯。Rust 可以用作相当高级的语言。我开始用它编写网络应用程序(包括通过 WebAssembly 编写的前端程序),感觉非常棒。从那时起,我开始接触裸机。当然,我在学校学过 C 语言,但只够应付考试。我甚至无法在不查找语法的情况下声明一个返回另一个函数指针的函数。我从没学过 C++。(当然,你可能会质疑我是否是一个优秀的 Rust 程序员,这很公平,笑)。
没有。我猜你就是那个我有点怀疑是否存在的新一代!很高兴听到你的存在!继续努力吧。
在我看来,Rust 是我们在计算机软件方面取得进步的唯一希望,因为处理器有点停止不前了。
我在学校里完全跳过了 C/C++,我学过的最低等的语言(辅修 CSci,非主修)是 Java 和 OCaml。课外我几乎只用 Python。但最近因为工作需要,我不得不学习 Rust,其实它并没有什么特别大的不同,也不难用,虽然整体过程相当相似,但需要考虑的因素要多一些。事实上,我发现当我回到 Python 时,我真希望能拥有它的一些一致性,因为不能如此轻松地控制类型有时会让我头疼。
Linux内核中的一些C语言程序员对Rust直言不讳,因此所有C/C++程序员都反对Rust。
逻辑很简单,老兄。
哦,是关于这种情况吗?我的意思是,“最糟糕 ”的克里斯托夫-赫尔维格(Christoph Hellwig)自己说过,他并不反对 Rust,他只是反对在同一个项目中混合使用两种语言。(我认为这在总体上是一个合理的立场)。
我不知道这是不是真的,这只是我对整个想法的讽刺,笑。
不过是的,据我所知,这只是 C 语言开发人员不想在理解一种新语言后继续做出有效贡献而已。
这肯定是对某些 Rust shilling 毒性的一种反应。
我的意思是,与其说是反对 Rust,不如说是厌恶某些特别有发言权的 Rustaceans 的怪异心态。这是一种有目的、有实用性的语言,而不是一种生活方式,伙计们。
你可以两种语言都用,但我知道多种语言互用并不是最轻松的事(我用过 C++ 和 js、golang、c# 和 java)……而且有时是很厚的一层……
什么?Rustacean 说的是黑帮中的每个人都错了。还不能确定暴民就是所有的 C/C++ 开发人员。
他们不是反对,他们只是错了
是的,这只是一种礼貌的说法,我们不喜欢 Rust,因为它的语法不可读,而且过于复杂,足以让人不喜欢、不需要。因此,对于小而简单的东西,使用 Go 是合理的;对于复杂的东西,使用 C++ 是合理的。Rust 在任何情况下都没有意义。多亏了 C++,我们已经受够了代码可读性差的问题。
我们需要的是像 C++ 一样强大、快速,但具有更好的可读性和更简单的语法。Rust 并不符合这一要求。
对语法的抱怨简直愚蠢至极。语法没有好坏之分,只有熟悉与不熟悉之分。每个人在认真使用过几种不同的语言后都会意识到这一点。你的大脑会为你经常使用的语言开发出解析器,然后就像骑自行车一样。因为语法最初不熟悉而拒绝一门语言是非常短视的。
当然,如果你在整个职业生涯中都坚持使用类似 C 语言的舒适区,你可能永远都不会有这种认识。
当然,可读性并不重要,那为什么不只在 Brainfuck 上编码呢?
在残酷的现实中,人的时间是一种资源。这些时间是有限的,应该明智地使用。根据我的观察,由于可读性差和语法过于复杂,开发团队在 Rust 上开发代码所需的时间比在 C++ 上以安全、准确的方式开发相同代码所需的时间多出约 40-50%,而且还要遵循现代 C++ 准则和最佳实践,以确保代码尽可能安全。
那为什么还要这么做呢?Rust 本身就比 C++ 慢,使用 Rust 的开发过程也比 C++ 慢得多,即使大家都对 C++ 存在依赖性。那为什么还要用 Rust 呢?
brainfuck的 “问题 ”不在于它的语法,它很容易解析和理解。可读性问题在于它不允许你表达与领域相关的想法。无法用类型对值进行有意义的分组。命名函数的行为没有意义。
因此,语言特点肯定会影响可读性。Rust 的语言特点与 C++ 极为相似。它缺少继承性是唯一能想到的主要区别,这说明 Rust 实际上更简单。
你考虑过你的团队可能还没有完全精通 Rust 吗?下面是谷歌工程总监 Lars Bergstrom 的一段演讲,他谈到了他们如何将许多项目从 C++ 重写为 Rust,开发人员的工作效率平均提高了一倍:https://youtu.be/QrrH2lcl9ew?t=474
是的,Rust 在语法上与 C++ 非常相似,它继承了 C++ 最糟糕的语法 Trait,并将其变得更糟糕。糟透了。真的很可惜。每个人都知道 C++ 在可读性方面有多糟糕,但他们不知怎么就把 Rust 弄得比那还要糟糕。
是的,我完全同意我的团队并不精通 Rust,而且我也不打算勉强他们。这样做毫无意义。我们的当务之急是重构和改进现有的、相当稳固但庞大的 C++ 代码库,使其更有条理、更易于管理,而不是花费数月时间从头开始编写所有内容,以获得相同的产品,但速度要慢 15-25%。
在这种情况下,谷歌是一个非常糟糕的例子,他们的产品质量目前可以与微软相媲美。这并不是生产力翻了一番。他们只是裁掉了一半的开发人员,而剩下的一半开发人员现在正努力完成被裁掉的开发人员的工作。
大多数 Rust 爱好者都来自 C/C++。
试想一下,你以为你会一直使用同一种语言,直到死亡,因为它已成为行业标准。但有一天,一种新语言的出现解决了你多年来遇到的许多问题。
Rust 并非灵丹妙药,但如果你打算编写更安全的软件,它无疑是向前迈进了一大步。
我是一名 Rust 程序员,拥有近二十年的 C/C++ 编程经验。
我有自己的观点,但我尽量不把这些观点强加给别人,除非他们请我喝足够多的酒并提出要求。
不过,我得承认一点。作为一个行业,我们不应该在面向公众的服务中接受内存破坏 CVE,因为这些服务中保存着敏感的用户数据。对于游戏或科学代码,我对 C/C++ 没有任何意见。但在处理医疗信息、金融信息甚至只是私人对话时,我们应该以 Rust(或 GCed 语言)为基准。然后,我们应该努力做得更好。当然,我们不可能重写世界上所有的遗留代码!但我希望在新的新建系统代码中消除 2/3 的严重安全漏洞,这应该是可以实现的。
我不明白为什么人们把 Rust 的安全性作为主要论点;它又没有标准化的构建系统和软件包管理器,而这在过去可是个大麻烦。
我不明白。你是在抱怨 Cargo 还是它默认使用静态链接的方式?
Rust 的设计默认是安全的。除非你必须处理 C API(主要是操作系统 API),否则你永远不需要使用不安全的代码。
这就是 Rust 与 C++ 的主要区别,C++ 也可以用来编写安全代码,但 Rust 并不是围绕安全设计的,安全在 Rust 中只是二等公民。
此外,Rust 的类型系统非常出色,编译器错误很有帮助,而且 Rust 从函数式编程中吸收了很多概念,因此流程处理可以非常优雅。
是的,我可以用更好的方式来表述,我的意思是在 c++ 的情况下,这很麻烦、
当你使用 cmake 时,交叉依赖管理其实并不更好,因为你需要处理不同的软件包实现方式(对我来说,猜测经常不起作用,我不得不阅读文档)。
我不喜欢 cmake,因为它让简单的事情变得不简单,而且它只有在处理大项目时才有用,但大多数项目都是中小型的,这让我无法忍受。
是的,我知道一些 cmake 的基础知识,但这不是我不学习它的借口。
因为那是附带的,而不是语言的本质。
与 C/C++ 的安全灾难相比,Rust 只是 “更安全 ”而已。
它甚至比几十年前的任何虚拟机语言都不安全。
真正的革命是 JVM。它首次允许使用安全语言编写高性能应用程序。
Rust 的确是比 C/C++ 更好的语言。但这并不是一场革命。它只是一种能在 C/C++ 细分领域有所改进的语言,而非一般的编程语言。
如果你想真正见识一下未来的语言,不妨看看 Scala。它早在 10 到 15 年前就拥有了现在备受赞誉的 Rust 功能,而且它仍然领先主流语言 20 年左右。
如果你真的想看到火花四溅的场面,把这个放到 LinkedIn 上吧。
Rust in Peace
一个德国人与英语使用者
???
是因为 “爱好者 ”的大写错误,还是因为 “是的,你们都错了 ”中的非典型词序?
好的
如果它能用在图片或 arduinos 上,也许我会学学,但现在我的需求已经得到满足了
它可用于 Stm32 和 esp32。我不确定皮卡的情况,但在 arduino 上也可以使用。
如果必须允许越界内存访问,可以使用 “不安全”。
hmph.
等你意识到这三组之间有多少重叠的时候就知道了。
让我加入最肤浅的争论: 我不喜欢 Rust 中 name : 类型语法的样子。否则我也会学习 Rust,因为我喜欢速度:)
我认为在编译器可以推断出类型的情况下,这样做是有意义的,因此函数签名遵循相同的结构以保持一致性。因此,将类型放在变量名之后也是合理的,因为它们通常是变量的可选项。考虑到某些类型的冗长甚至错综复杂,类型推断确实有助于使事情变得顺畅。
C99 是顶峰,其他一切都只是在更多抽象层之上的抽象层。
这是好事!
否则,我们根本写不出任何大型系统。
我们没有理由接受 C 语言与实际机器之间的所有抽象,却不接受让一切变得更简单的进一步抽象。这在逻辑上是说不通的。
查看
Rust开发者(抱怨C/C++的开发者)就像Linux之于Windows。是的,好吧,我们明白了,你使用 Rust,全场都在欢呼。
Rust 肯定没问题。就像任何新技术(与 C 语言相比是新技术)一样,它需要一段时间才能被业界更多的人采用。
– 阿尔伯特-爱因斯坦
有趣的是,“火船 ”号刚刚发布了一段视频,讲述了 C 是多么正确……
大笑
这正是您应该使用安全、快速、有 GC 的语言编写关键任务代码的原因。这些语言拥有强大的类型系统,可以在编译时防止出现各种运行时错误,比如 Scala。
[删除]
你刚刚上钩了……
我不知道,也许可以试试用 Rust 赢得 cp 比赛?
汉克,不要缩写赛博朋克或企鹅俱乐部
汉克
这怎么会是个好尺度?
Rust 现在唯一的用途(以及可用的工作岗位)主要是在区块链和 web3 公司。
它将与 web3 一同驰骋,同归于尽。
事实并非如此。我已经为两家不同的公司编写了五年的 Rust 生产语言,与区块链或 web3 毫无关系。工作机会不会像 C# 那样从树上掉下来,但它们确实存在
我目前的工作是用 Rust 进行科学计算。我之前的雇主(嵌入式、航空航天)目前也在使用 Rust。
除了这些趣闻轶事:你几乎可以肯定每天都在使用基于 Rust 构建的基础架构。例如,AWS、windows 和 cloudflare 都在大量使用 Rust。如果你有一部安卓手机,你就在使用 Rust。
即使在网络开发生态系统中,它也可以编译为 wasm,可用于多种不同的网络应用程序。
除此之外,现在美国国家航空航天局(NASA)也在使用它,甚至谷歌也在将大量 C++ 代码过渡到 Rust。Rust 不会因为你的无知意见而消失。
此外,尽管我们大多数人都讨厌 web3 和区块链,但它们仍在不断获得大量资金投入,所以我不认为它们会很快消亡。所以,即使是这样,Rust 的应用也会持续一段时间。
妄想有人在听他们说话是非常真实的。