如果您正在寻找某种金属面板业务,让我澄清一下:我指的是Rust作为一种编程语言。还在那儿?当我8岁开始学习编程语言时,世界处于不同的状态,计算机比今天使用的工具抖音更浪漫、更神奇。GW-Basic和C是我在直接访问内存的时代从事计算机科学的第一次尝试,这对许多人来说是一种乐趣,对其他人也有好处。使用某些语言提供的合法结构,对操作系统内核的野蛮攻击非常容易。>如果这张照片让您怀旧,那么您已经足够大了,可以继续阅读了。如果没有,请继续阅读:我在学术界的岁月主要是在后端系统和计算机科学中大量使用C(和较少的C++),其特点是在.我博士的BigLeap的特点是大量使用C并指示编译器减轻所有低级编程语言所遭受的讨厌问题,即直接访问内存。因此,诸如忘记释放内存(双重释放)、读取/写入超出数组限制(缓冲区溢出)、指向和访问无效内存等问题导致了我们迄今为止所知的一些最严重的攻击历史计算机科学。那么这与Rust有什么关系呢?事实上,Rust从字面上消除了我的大部分博士学位。一种新的编程范式。我一点也不生气。在我攻读博士学位期间,我最雄心勃勃的目标(不仅是我的目标)是构建一个编译器,该编译器可以自动修复内存重复释放、缓冲区溢出和无效指针(有时甚至不通知开发人员他们最终会这样做)重新来过)。一遍又一遍地重复那个令人讨厌的错误-这是什么意思?)。Rust就是这样做的:它通过引入一种新方法将很多责任从开发人员转移到编译器(对于Python程序员来说,编译器就是你每次都写得好......Python然后放弃了灵活性和性能。编程范式。在这样的范例中,这些错误是不可能的。编译器只会拒绝继续并生成有问题的程序。更高级的Rust编译器的唯一副作用是它肯定会让开发人员感到沮丧。但我没有解决方案。是时候再攻读一个博士学位了吗?Rust通过利用编程语言设计中的五个基本概念提供了如此强大的功能。虽然有些密切相关,但让我简要介绍一下。借用检查器Rust的借用检查器确保引用(和指针!)不会超过它们指向的数据。所有内存不安全的错误?去“是的,但是伙计......我正在失去灵活性”,你说?别担心,您仍然可以使用不安全的Rust。如果你觉得你有责任(而且你最好知道你在做什么),那就继续吧,让你的代码不安全并释放一些超能力。好消息是,当你遇到一个错误时(伙计),你会确切地知道去哪里找。还记得您编写并引以为豪的不安全代码吗?也许你想去那里看看。所有权如果你不想整理你的房间,其他人(妈妈?)将不得不这样做。这是有代价的(不要让我在那里)。所有基于垃圾收集器的语言都比没有垃圾收集器的语言慢是有原因的。你猜怎么了?所有权是一种编程范式,它允许Rust以零成本跟踪内存(并在不再使用时释放它)。如何?通过改变程序员习惯的思考方式(相信我,Rust强迫你思考的方式是正确的方式)。琐碎的lety=SomeType{field:String::from("hello")};letx=y;println!("{:?}",y);//Thiswillfail.Wenolongerowny将y的所有权移至x。这意味着不能在该语句之后使用y。这个简单的概念允许编译器为您管理内存并使房间保持无可挑剔的状态。并发是一个很大的问题。特别是由于在多核上分布计算的普遍趋势。Rust不仅使并发变得容易(它相对容易,有时语法是b!tch)。所有权和锁定机制的结合使Rust中的并发性变得无所畏惧。通道强制执行线程隔离,数据受锁保护,只有在持有锁时才能访问。这可以防止意外共享状态。数据竞争是不可能的(编译器将简单地拒绝生成可能导致数据竞争的代码)。可移植性Rust编译器构建在LLVM之上,可以为大量目标平台生成机器码。虽然这种级别的可移植性不如C/C++,但请记住Rust只有10岁(比我刚开始编程时还大一点,多可爱?)速度和安全如果你想让编译器生成安全代码,请做好放弃性能的准备。低级别安全社区意识到有多少代码检测技术可以降低您的软件速度(以至于许多人更愿意将不安全的代码换成高性能代码)。使用Rust,您可以同时拥有两者。Rust是一种编译语言。与C/C++和其他编译语言生成的机器码一样,生成的机器码可以进行优化(并且随着编译器变得更智能而优化得更多)。至于速度,可以在此处找到Rust与C的比较,以及更详细的解释。只需考虑惯用的Rust和惯用的C之间的比较。不用说,无论选择哪种语言,糟糕的代码都不能很好地执行。当然,这篇文章并没有公正地对待Rust,因为Rust可以提供更多的东西。尽管这是一种绝对用于系统编程的语言,但社区正在以惊人的速度增长,并且crates.io已经出现了用纯Rust包装的包和库。我会说有很多重复,很多图书馆似乎被遗弃了。我相信这是由于许多开发人员和工程师最初对Rust进行测试的热情所致。尽管有一些出版物,特别是关于减轻缓冲区溢出的低级对策,但我坚信Rust是未来的语言。我还为使用Rust进行数据处理的项目做出了贡献(人们在复制和粘贴Tensorflow模型之前必须做的事情,我期待尽快发布它。参考:https://medium.com/@frag/5-reasons-why-rust-is-the-future-3e23adf0803b
