在 Vim 中写 Rust
Neovim 是 vim 的一个分支,它专注于可扩展性和可用性。比如,能够使用 Lua 以及各种脚本来编写插件,并为扩展编辑器提供更大的灵活性。
在 Neovim 0.5 版本中,开发者引入了语言服务器协议 (LSP) 客户端框架 (:help lsp)
这意味着,Neovim 可以充当 LSP 服务器(如 rust-analyzer)的客户端,并协助构建增强的 LSP 工具。
下面这篇文章就详细说明了 如何为 Neovim 配置 Rust 插件,可以省去很多自己折腾的时间。
文章地址: https://sharksforarms.dev/posts/neovim-rust/
Rust for Linux 补丁发布
2022 年,我们很可能会看到 Linux 内核中的实验性 Rust 编程语言支持成为主流。最近又发布了最新的补丁,介绍了在内核中处理 Rust 的初始支持和基础设施。
目前 Rust 支持在 Linux 中编写最简单的 driver,虽然还没有落地,但是距离完善的开发支持,也仅仅是一个时间问题,无需顾虑可行性。
Rust-For-Linux-v2: https://www.phoronix.com/scan.php?page=news_item&px=Rust-For-Linux-v2
Rust-Linux-Kernel-2021: https://www.phoronix.com/scan.php?page=news_item&px=Rust-Linux-Kernel-Linaro-2021
讨论:学习 Rust 让我更擅长 C vs 学习 C 让我更擅长 Rust
这来自 Reddit 上的一个热门讨论,题主问题如下:
显然,要学习 C 就应该学习 C,要学习 rust 就应该学习 rust
但我很好奇,在第一次学习其他语言时,是否存在不对称性。主要是我听说严格的 rust 编译器会让你成为一个更好的低级程序员,因为它迫使你养成可以扩展到 C 的良好编码习惯,但这是真的还是假的?
热门回帖如下:
- 我想说,了解两种语言非常有用,但一般来说,它们本质上是完全不同的,恕我直言,很难将知识从一种语言移植到另一种语言。 也就是说:如果您非常了解 C,并且如果您在实际使用该语言时遇到了一些问题,您肯定会轻松理解 Rust 中大多数安全机制的基本原理,如果 Rust 是您的第一语言,您可能会不清楚这些原理。
- 如果您可以在不与 rust 中的借用检查器进行斗争的情况下进行编码,然后切换到 C,那么您在编写代码时大概率会自动开始在 C 中应用相同的模式。但是,Rust 为您进行内存管理,从 Rust 切换到 C 后,释放分配的内存仍然是一件头大的事情。
- 并不是说编写 C 的人不会像你说的那样考虑生命周期,而是他们经常使用临时的心理模型来考虑它。Rust 形式化了一个你可以带回 C 的模型。 Rust 之所以影响你在 C 中的编码习惯,并不是使用 C 或其他语言编写脱糖的 Rust 那么简单,而是可以避免过于复杂的所有权模型,更多地考虑指针失效,避免可能移动的自引用结构,避免修改 for 循环条件中使用的变量,避免可变全局变量,正确使用同步原语等。