后浪笔记一零二四

目前来看,只有rust可以拯救linux的桌面开发。

rust 和 linux

linus torvalds原话:

我们拭目以待。我不认为 Rust 会接管核心内核,但在其中开发单个驱动程序(甚至可能是整个驱动程序子系统)听起来并非完全不可能。也许文件系统也是如此。因此,这并不是 “取代 C”,而是 “在有意义的地方增强我们的 C 代码”。

当然,驱动程序大约占实际内核代码的一半,因此有很大的空间。但我不认为有人真的期望用 Rust 全面重写现有的驱动程序,更多的是 “有些人会用 Rust 做新的驱动程序,并且一些驱动程序可能会在有意义的地方被重写”。

rust 和 c

rust完美继承了c语言精确高效的特性,但是又同时避免了像c++那么庞大。

在rust语言里面,其实住着一个完整的c语言,它跟c是完全兼容的,比如说c语言写的动态链接库,是可以直接在rust语言里面直接调用的,并且没有性能损耗。

rust语言也可以用来写动态链接库,然后在c语言里面无性能损失的去调用这个动态链接库。

rust可以写跨平台的可移植的底层库,然后供其他语言调用,因为其他语言都兼容C接口。

但是rust语言和c++语言之间就没有这么好的兼容性了。

trait是rust的灵魂

trait 用一种方法论把整个rust语言划分成一块一块小的领地,包括所有权、移动语义、复制语义、对象的回收、不同类型之间的转换,这些都可以用trait来定义。

运算符重载,在c++里面是语言固有的一个特性,但是在rust语言里面,它是归类到这个trait下面的,比如说要重载这个加号,它有个trait叫做Add,你只需要对类型实现Add这个trait就行了。

这就意味着运算符重载就不是一个顶层的语言内置特性,它只是一个具体的trait而已。

trait有个特点,它是非侵入性的,不需要改原有这个结构体的内容,它可以直接在这个类型上私加一个新的trait,这样的话,那个类型就具有了那个trait提供的那些方法。

这个非侵入性的方法,不能乱用,它遵循这个“孤儿规则”。


本文发表于 0001-01-01,最后修改于 0001-01-01。

本站永久域名「 jiavvc.top 」,也可搜索「 后浪笔记一零二四 」找到我。


上一篇 « 下一篇 »

赞赏支持

请我吃鸡腿 =^_^=

i ysf

云闪付

i wechat

微信

推荐阅读

Big Image