编写完10万行代码,我发了篇长文吐槽Rust

Rust 被吹上天的背后,这些缺点让开发者又爱又恨! Rust 的严格性、性能和安全特性让它成为系统级开发的利器,但也让它在易用性和开发效率上付出了代价。正如一位十年 Rust 老将所言:“我爱 Rust,但它的痛点真实存在。你愿意为安全和性能牺牲多少开发速度? 阅读详情

机器之心编译

机器之心编辑部

存在一种完美的编程语言吗?

e48ef9bcc83f73db962ca75bcfc89086.jpeg

Rust 语言因其并发安全性而深受众多开发者的喜爱,曾在多个榜单上获评最受欢迎编程语言。然而,现在有人花费大量时间编写 10 万行 Rust 代码之后,撰写博客阐明 Rust 语言的一系列缺点,以下是博客的主要内容。

我深入研究 Rust 是为了改进由 Xobs 编写的 Xous 操作系统。Xous 是一个用纯 Rust 编写的微内核消息传递操作系统,是为了轻量级 (IoT / 嵌入式规模) 的安全优先平台(例如 Precursor)而编写的,用于 MMU 的硬件强制型页面级内存保护。

一年来,我们为 Xous 操作系统添加了许多功能,包括网络 (TCP/UDP/DNS)、用于模态和多语言文本的中间件图形抽象、存储(以加密的形式)、PDDB、可信启动(trusted boot)以及密钥管理库等。

我们决定编写自己的操作系统而不是使用 SeL4、Tock、QNX 或 Linux 等现有实现,是因为我们想真正了设备中每一行代码都在做什么。特别是对于 Linux,它的源代码库非常庞大且动态,即使开源,也不可能搞清其内核中的每一行代码。因此,Xous 仅支持我们的平台,以尽可能避免内核不必要的复杂性。

这样减少应用范围还意味着我们还可以充分利用 CPU 在 FPGA 中运行的优势 。因此,Xous 以一种不寻常的 RV32-IMAC 配置为目标:具有 MMU + AES 扩展的配置。

FPGA 意味着我们有能力在硬件级别上修复 API 错误,从而使内核更加精简。这对于从 RAM 中处理诸如挂起和恢复之类的抽象破坏(abstraction-busting)进程尤其重要。

我们创建 Xous 时研究了大量的系统编程语言,最终 Rust 脱颖而出。当时它刚刚开始支持 `no-std`,它的特点是强类型、内存安全,具有良好的工具和新型生态系统。我个人是强类型语言的忠实拥护者,而内存安全性不仅有利于系统编程,还能使优化器更好地生成代码,并且 Rust 适用于并发。

实际上,我希望 Precursor 有一个支持标记指针和内存功能的 CPU,类似于 CHERI。于是我们和 CHERI 研发团队进行了一些讨论,但显然他们非常专注于 C 语言,也没有足够的带宽来支持 Rust。总体而言,C 比 Rust 需要 CHERI 多得多,他们的选择是符合资源优先原则的。我们不使用 C 语言,但出于安全性考虑,我希望有一天 Rust 中会存在硬件强制型胖指针(fat pointer)。

然而,Rust 语言绝不是完美的,甚至给我们的开发带来了很多问题。下面我列举一下 Rust 的缺点。

语法混乱复杂

我发现 Rust 语法密集、繁重且难以阅读,例如:

Trying::to_read::<&'a heavy>(syntax, |like| { this. can_be( maddening ) }).map(|_| ())?;

简单来说,上面的代码类似于在对象(实际上是 `struct`)上调用一个名为「to_read」的方法。

还有一种不遵循 Rust 语法规则的宏和指令也能运行:

#[cfg(all(not(baremetal), any(feature = “hazmat”, feature = “debug_print”)))]

上面的语句中最令我困惑的是使用‘=’来表示等价而不是赋值,因为配置指令中的内容不是 Rust 代码,它就像一个完全独立的元语言。

再比如,Rust 宏的可读性也存在问题——即使是我自己编写的一些 Rust 宏也「只是勉强工作」。

一种可靠的语言不应该存在这些语法问题。

Rust 的确很强大,它的标准库中包含 HashMaps、Vecs 和 Threads 等数据结构,丰富且可用性高。然而,Rust 的「std」库并没有为我们构建可审计的代码库带来任何好处。

Rust 不够完善

我们编写 Xous 的代码时,引入了一个叫作「const generic」的新类型。在此之前,Rust 没有原生能力来处理多于 32 个元素的数组,这个限制令人抓狂。

在编写 Xous 的过程中,Rust 的内联汇编、工作空间等功能逐渐成熟,这意味着我们需要重新审视已经写好的代码,以使关键的初始启动代码集成进我们构建的系统。

Xous 开发的第一年都是使用’no-std’完成的,代价是占用大量内存空间且复杂性高。尽管可以编写一个只有预先分配的、静态大小的数据结构的操作系统,但为了适应最坏情况下的元素数量,因此我们不得不推出一些自己的数据结构。

大约一年前,Xobs 将 Rust 的 `std` 库移植到 Xous,这意味着我们可以在稳定的 Rust 中访问堆,现在 Xous 与特定版本的 Rust 绑定。

`std` 库从根本上将内存分配、线程创建等「不安全」的硬件结构转变成了「安全」的 Rust 结构。

然而,我必须不断提醒自己,拥有 `std` 库并不能消除关键代码中的安全漏洞风险——它只是将许多关键代码移动到标准库中。

Rust 有固定的更新周期,这意味着我们也必须定期更新 Xous ,以保持与语言的兼容性。

但这可能是不可持续的。最终,我们需要锁定代码库,但我没有明确的退出策略。也许我们可以考虑仍然使用 `no-std` 以获得稳定的 `alloc` 功能来访问堆。但这样我们就还需要使用 Vec、HashMap、Thread 和 Arc/Mutex/Rc/RefCell/Box 构造等,以使 Xous 能够被有效编码。

Rust 在供应链安全方面堪忧

在 rustup.rs 安装文件中有如下代码:

`curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`

用户可以下载脚本并在运行之前对其进行检查,这似乎比 vscode 的 Windows .MSI 安装程序好得多。但是,这种做法遍及整个构建生态系统,让我对通过 crates.io 生态系统发起的软件供应链攻击的可能性感到不安。

Crates.io 也存在一种拼写错误,很难确定哪些 crate 是好或坏;一些完全按照用户想要的名称命名的 crate 放弃提供所需功能,而积极维护的 crate 必须采用不太直观的名称。当然,这不是 Rust 独有的问题。

还有一个事实是,依赖项是链式的。也就是说当你从 crates.io 拉入一个东西时,你也会拉入该 crate 的所有从属依赖项,以及它们所有的 build.rs (http://build.rs/) 脚本,这些最终都将在你的机器上运行。因此,仅审核 Cargo.toml 文件中明确指定的 crate 是不够的——您还必须审核所有相关 crate 是否存在潜在的供应链攻击。

幸运的是,Rust 确实允许您使用 Cargo.lock 文件将 crate 固定在特定版本,并且可以完全指定依赖 crate 。我们试图在 Xous 中通过发布 Cargo.lock 文件并将我们所有的一阶相关 crate 指定为次要修订的策略来缓解这个问题。

然而,我们的大部分调试和测试框架都依赖于一些相当花哨和复杂的 crate,这些 crate 引入了大量的依赖项,即使我尝试为我们的目标硬件运行构建,在主机上运行的依赖 crate 和 build.rs 脚本还是被构建。

针对这个问题,我编写了一个名为「crate-scraper」的小工具,它为我们的 Cargo.toml 文件中指定的每个源下载源包,并且将它们存储在本地,这样我们就可以获得用于构建 Xous 版本的代码快照。

它还运行一个快速的「分析」程序——搜索名为 build.rs 的文件并将它们整理到一个文件中,这样我就可以更快地通过 grep 查找明显的问题。当然,手动审查并不是检测嵌入在 build.rs (http://build.rs/) 文件中巧妙伪装的恶意软件的实用方法,但它至少让我了解了我们正在处理的攻击面的规模。令人惊讶的是,我们审查出来自各种第三方的大约 5700 行代码,用于操作文件、目录和环境变量,并在我的计算机上运行其他程序。

我不确定这个问题是否有更好的解决方案,但是,如果你的目标是构建可信赖的固件,请警惕 Rust 广泛的软件供应链攻击面。

无法复现别人的 Rust 构建

我对 Rust 的最后一点看法是,一台计算机上的构建无法在另一台上复现。

我认为这主要是因为 Rust 将源代码的完整路径作为内置到二进制文件中调试字符串的一部分。这导致了一些糟糕的情况,例如我们在 Windows 上构建的工作成功了,但在 Linux 下却失败了,因为二者的路径名非常不同,这会导致一些内存对象在目标内存中被转移。

公平地讲,这些失败是由于 Xous 中存在错误,这些错误已经得到修复。但是,最终仍会有用户向我们报告我们无法复现,因为他们在构建系统上的路径与我们的不同。

最后,我想说尽管这里列出了所有的怨言,但如果能重来,Rust 仍然是我们用于构建 Xous 所用语言的有力竞争者。我用 C、Python 和 Java 完成了很多大型项目,所有这些项目最终都背负着「不断增加的技术债务」,而 Rust 可以规避这些问题。

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

点阅读原文,看B站我的20个视频!

Python数据科学核心库工作流:从NumPy到TensorFlow的协同逻辑 在人工智能工程实践中,机器学习并非孤立算法调用,而是由底层数值计算、结构化数据处理、可视化分析、模型训练与深度学习框架共同构成的端到端工作流。NumPy作为统一数据表示的地基层,为Pandas、Scikit-Learn和TensorFlow提供内存布局与dtype标准化;Pandas以智能索引和向量化操作支撑高效EDA与特征构造;Scikit-Learn通过一致API和Pipeline机制保障可复现性与工程鲁棒性;TensorFlow/Keras则在大规模非结构化数据场景中提供灵活建模能力。理解各库的职责边 阅读详情

相关推荐

Rust no_std内核宿主机测试:让嵌入式开发告别烧录调试循环

嵌入式内核开发常陷入修改、烧录、串口查看的慢节奏循环,而Rust语言的条件编译与平台抽象能力提供了一条高效路径。通过将no_std内核逻辑重构为双模编译形态,开发人员可以在宿主机上执行单元测试,覆盖调度器、内存分配器、同步原语等核心机制,并利用模拟时钟与可插拔日志后端构建类硬件环境。这种方法将机制验证与硬件配置分离,使回归测试和持续集成成为可能,极大缩短开发反馈周期。文章详细阐释了实现原理、测试用例设计及常见坑点,为追求可靠内核的Rust嵌入式开发者提供了一套完整可落地的宿主测试实践。

weixin_28273593的博客 174

Rust使用感受

一、关于内存管理 1、rust加入了生命周期和所有权的特性,实现内存自动回收,避免内存泄漏和野指针的问题。 例如:,局部变量离开作用域后Rust会连同变量绑定的内存,不管是否为常量字符串,连同所有者变量一起被销毁释放。所以上面的例子,a销毁后再次访问a就会提示无法找到变量a的错误。 这些所有的一切都是在编译过程中完成的。 2、Rust没有null,取而代之的是None和Option<...

瞎几波写 2392

【Codex 深度掌控:从入门到企业级多模型部署】09:Codex 对比 Copilot、Cursor:谁才是 AI 编程新王?——多维实测与选型决策全指南

本文对GitHub Copilot、Cursor与OpenAI Codex三款AI编程工具进行系统性横向评测。作者设计统一测试场景(Python FastAPI待办事项服务),从安装体验、响应速度、代码质量、上下文理解、多语言支持、隐私安全及价格成本七大维度共21项指标展开实测,并引入Codex++社区方案探讨多模型路由与私有化部署。评测结果显示三款工具各有优势:Copilot上手简单、性价比高;Cursor长于全仓库索引与超大上下文;Codex在代码生成质量及私有化部署方面领先。文章还提供国内开发者专属选

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 384

25% 的开发者认为 Rust 是最佳替代,最新 Go 开发者调查报告出炉

数据处理成为Go第二常见的用途。

优快云资讯 7796

【BuildFlow & 筑流】 Rust no_std 详解与实践指南

no_std是 Rust 的一个特性,允许代码在不依赖 Rust 标准库 (std) 的环境中运行。它只使用核心库 (core) 和可选的分配器库 (alloc✅ 覆盖全场景:从 8KB RAM 嵌入式到服务器集群✅ 渐进式采用:用户从所需的最小功能开始✅ 零成本抽象:未使用的层次不产生开销✅ 编译期优化:每个层次只包含必要的代码✅ 未来可扩展:新的层次可以轻松添加这种多层次的 no_std 架构是现代 Rust 系统级库的最佳实践。

weixin_43219667的博客 383

【ELF2学习板】基于OpenMP与RK3588多核架构优化FFTW的并行计算效率

本文详细介绍了如何在ELF2学习板上利用OpenMP与RK3588多核架构优化FFTW的并行计算效率。通过编译支持OpenMP的FFTW库、合理设置线程绑定与调度策略,以及内存访问优化等技巧,显著提升了FFT计算的性能。实测数据显示,多核并行优化可使4096点FFT计算速度提升一倍以上,特别适合信号处理、图像分析等高性能计算场景。

weixin_30352645的博客 608

【Rust开发】将Rust项目改为支持在no_std下运行

正在开发的rust项目要求在no_std的环境下运行,因此会遇到许多库中的函数无法使用的情况,记录在开发过程中针对这类问题做的修改,使整体项目能够在no_std环境中运行。

qq_42218376的博客 849

量子磁场测量技术在生物磁场成像领域的应用现状与产业趋势

首先对量子磁场测量技术的发展进行了简述,然后介绍了量子磁场测量技术在生物磁场成像领域的应用,最后分析了量子磁场测量技术的两大重要应用方向(心磁图仪和脑磁图仪)及其产业现状和未来发展趋势。美国普林斯顿大学在《自然》上公布了目前人类磁场测量灵敏度最高的基于量子磁场测量技术的零场原子磁力计。拥有巨大的发展潜力及庞大的市场空间。因此其数千万元的高昂售价及每年数百万元的超导维护成本限制了超导式心磁图仪的发展和临床应用。而基于超导式脑磁图仪的癫痫、阿尔兹海默症、抑郁症等脑疾病患者的临床研究也取得丰富的研究成果。

罗伯特技术屋 1531

实战一个项目后,谈谈 Rust 语言的优点和缺点

最近做了一个知识库的产品开发,服务器端完全用 Rust 编写的。现在项目的核心功能已经完成,我来谈谈 Rust 的初步印象。 1. Rust 的开发效率 Rust 的入门门槛稍有些高。如果有 C/C++ 的经验,说实话,我觉得也不算太高。刚开始用的时候,会发现 Rust 没完没了地提示编译错误。在这个阶段,我发现自己很多不严谨的编程习惯。 幸运的是,这个过程很快就过去了。接下来,就会享受到 Rust 语言的高效率编程的乐趣了。目前,我觉得 Rust 是一个能够高效产出高质量代码的工具,让我有些爱不释手了!

程序猿视角 4万+

硬件基础——mos管

文章目录前言一、寄生参数二、使用步骤1.引入库2.读入数据总结 前言 MOS管设计重点 一、寄生参数 1.寄生电容 mos管有寄生电容Cgs,此电容大小一般为pF级别,一般规格书可以查到。 使用时,要特别注意GS管教的寄生电容Cgs,控制MOS管的导通与截止,本质上是控制Cgs电容的充放电。(最好要加限流) 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt imp

Malqaq的博客 6606

【Linux】常见指令的使用

Linux常用指令

qq_74897518的博客 1480

【AIGC】Claude(Anthropic)

Claude 是由公司开发的一系列大型语言模型(LLM),旨在提供安全、可靠、有益且符合人类价值观的 AI 助手。自 2023 年初首次发布以来,Claude 已成为与 OpenAI 的 GPT 系列、Google 的 Gemini 并列的主流大模型之一。2025年11月19日,Anthropic宣布与微软扩大战略合作,Claude Sonnet 4.5、Haiku 4.5和Opus 4.1模型正式上线 Microsoft Foundry 平台公测。

bryant_meng 1513

AI大模型驱动Web UI自动化测试:Playwright与RobotFramework智能整合实践

Web自动化测试是软件质量保障的关键环节,其核心原理是通过脚本模拟用户操作,对Web应用界面进行功能验证。传统方法依赖固定的元素定位和脚本逻辑,在应对频繁的UI变更时面临维护成本高、脚本脆弱的挑战。随着AI大模型技术的发展,其强大的自然语言理解和代码生成能力为自动化测试带来了新的技术价值。通过将大模型的意图理解与代码生成能力,与Playwright强大的浏览器自动化执行引擎以及RobotFramework灵活的关键字驱动框架相结合,可以构建出能够理解自然语言指令、动态生成稳定操作脚本的智能测试系统。这种融合

weixin_28718769的博客 415

Rust“巨坑”?真相来了!

Rust是一门极具争议性的语言。有许多创业公司的开发者甚至创始人都点名表示:Rust是巨坑!简直浪费时间。再比如,其他语言中的“粗糙编码”的编程方式在Rust中也很难实现;库和文档也不够成熟,学习起来相当费劲,诸如此类。

pantouyuchiyu的博客 2188

马尔可夫网络和贝叶斯网络的一些总结

马尔可夫网络和贝叶斯网络的一些总结 最近学习了一些关于概率逻辑的知识图谱推理方法,主要就是贝叶斯网络和马尔可夫网络,在此总结一下,内容都来自网络资料,这里加入了一下个人的理解,尽量为大家避雷! 这篇文章是我目前在网络上找到的关于贝叶斯网络最清晰的介绍,大家有兴趣可以去看看 贝叶斯网络中比较重要的两部分就是贝叶斯网络的结构和条件概率表。 贝叶斯网络的结构 下面通过一个例子来介绍: 贝叶斯网的网络结...

qq_43654303的博客 4374

el-table通过上下左右键移动光标

在Element Plus的el-table中包含el-input和el-select组件,要实现上下左右键控制光标位置,需要通过focus和blur跟踪判断当前是哪个el-input或el-select有焦点,当按键按下时,通过监听,计算下一个获取焦点元素的索引,通过focus方法将焦点切换至改元素。

秋思的博客 1350

Rust语言在项目中的优劣深度分析:是“劝退”还是“真香”?看完这篇全懂了!

ust连续7年蝉联Stack Overflow“最受喜爱语言”,但也因“难学”闻名。本文将从内存安全、并发模型、性能表现、开发体验四大维度深度剖析Rust的核心优势,同时也不回避学习曲线、编译速度、生态年轻化等痛点。最后结合Discord、Firefox等大厂落地案例,给出不同项目类型的选型决策框架。

caizikid的博客 1241

全网唯一OpenCyphal/UAVCAN教程(8)libcanard介绍

当Cyphal里,这个结构体代表一条完整的Cyphal消息,之后我们会根据metadata里提供的元信息,其实就是消息ID,调用对应的反序列化函数,将payload还原成具体的Cyphal消息。用于构造一个新的发送队列,原则上一个can物理接口需要分配一个发送队列,如果它们的MTU大小一致,是可以共用一条的。这个库不包含IO层,是平台无关的,意义是没有实现具体的数据收发,仅提供将发送出去的Cyphal消息转成can帧,以及将收到的can帧转成Cyphal消息。返回值是这条消息拆解成的can帧的数目。....

二进制君 2411

耗时18个月,开发者弃TypeScript投Rust,重写系统后痛批:这门语言烂透了!

在近几年的 Stack Overflow 年度开发者调查报告中,有一门编程语言连续多年被评为“最受喜爱的编程语言”——那就是 Rust。凭借其独特的安全性和与 C++ 不逞多让的性能,Rust 成为许多开发者想要尝试的语言,本文作者正是其中一位。而他在用 Rust 重写整个开源算法交易系统后,得出了一个不同于多数人的结论:Rust 这门语言,真的烂透了。作者 | Austin Starks ...

优快云资讯 1040

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Rust嵌入式编程---#![no_std]和中断处理

上一节讲了一下异常处理和panic处理,中断在各种方面与异常不同,但它们的操作和使用在很大程度上是相似的,并且它们也由相同的中断控制器处理。虽然异常是由Cortex-M架构定义的,但中断在命名和功能上始终是供应商(甚至通常是芯片)特定的实现。以下是详细的中断处理代码,其实和异常处理差别不大,但是后面后期的改进空间比较大,功能会更多一些。2.中断可以嵌套和抢占,即中断处理程序的执行可能会被另一个优先级较高的中断中断。3.通常,需要清除导致中断触发的原因,以防止无休止地重新进入中断处理程序。

phthon1997的博客 1221

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Rust在系统中的no_std

先说说no_std是啥。Rust的标准库(std)依赖操作系统提供的东西,比如文件I/O或网络调用,但在嵌入式或操作系统内核里,这些可能根本不存在。no_std模式通过![no_std]属性,让代码只依赖核心库(core),核心库包括基本类型、trait和内存操作,但不涉及动态分配或系统调用。这样一来,二进制文件小了,启动速度快了,特别适合微控。

2509_93941743的博客 370

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Rust std VS no_std

嵌入式编程的范围很广: 从 仅具有几KB的RAM和ROM的8位MCU 到 具有32位或64位 4核 CPU和1GB RAM的树莓派 但,嵌入式编程主要可分为2大类: Hosted Environment:类似于有特殊用途的PC环境。具有类似 POSIX 的System Interface 来与 文件系统、网络、内存管理、线程等进行交互。libstd 提供了一些通用接口来访问OS abstractions,同时提供了runtime。在no_std环境下没有这种runtime。 Bare Metal En

mutourend2010@gmail.com 1682

十万行代码!!!

前些天,看到网上雷军写的一篇好象是叫给程序员的几个建议,说到程序员必须要写够十万行代码才能成为高手,不要心存侥幸。于是我回来计算了一下我的程序,不算不知道,一算吓一跳,居然有超过9万行的代码。如果不算表单属性等,也有45000多行纯代码,这还不算很多我已经删除的。当然,这当中还是有很大是没有用的,是以前留下来的无用代码暂时还没有删除,但至少,这些代码全是我一行行写出来的。 我的这个程序说起

寒风雨(lanman)的专栏 1万+

C++、Rust 编译一样糟糕?我用 1.7 万行代码试了试

【优快云 编者按】编程语言界,在编译上,有两种语言比较出名,一个是老牌的 C++,一个是近几年因安全的性能而流行起来的 Rust,其都是被评为编译很慢的语言。那么这两种语言相较而言,究竟孰优孰劣,本文作者进行了测试,我们不妨通过其实验一探究竟。原文链接:https://quick-lint-js.com/blog/cpp-vs-rust-build-times/声明:本文为 优快云 翻译,未经...

程序人生的博客 1335

王垠:对 Rust 语言的分析

文章目录1.变量声明语法2.变量可以重复绑定3.类型推导4.动作的“返回值”5.return 语句6.数组的可变性7.内存管理8.完 Rust 是一门最近比较热的语言,有很多人问过我对 Rust 的看法。由于我本人是一个语言专家,实现过几乎所有的语言特性,所以我不认为任何一种语言是新的。任何“新语言”对我来说,不过是把早已存在的语言特性(或者毛病),挑一些出来放在一起。所以一般情况下我都不会去评论...

秋夜无霜 4625
上一篇: 良心总结!Jupyter Notebook 从小白到高手,保姆教程来了!
下一篇: 神器啊!轻松用 Python 写个 APP!
菜鸟学Python
博客等级 码龄9年 8089粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值