从Julia到Rust语言的学习 - miguelraz


我的第一个真正的编程语言是 Julia,我认识其他对 Rust 感兴趣的 Julian。我为这些人写了这篇文章,因为 Rust 和 Julia 是性能很好的陪练伙伴,但 Rust 有不同的心态和值得考虑的权衡。
这两个演讲促使我学习Rust:第一个·是卡罗尔·尼科尔斯、第二个是由Ryan埃伯哈特和阿明Nanavari演讲。第一个讨论了大约 70% 的大型科技公司的错误来自内存安全,而且火车过去没有紧急刹车;第二个解释了系统编程代码库如何将资源所有权的不变性强加给编码人员 ,但这种推理可能非常容易出错、乏味和自动化。
这就是技术的意义!不必担心前几代的问题,因为我们找到了一种将这种想法转移到机器上的方法。
Rust 上真正让我受益匪浅的第三个演讲是Alex Gaynor:银行或学校网站可能因内存错误而崩溃已经够糟糕的了,
但是一旦你考虑到即使是世界上最好的程序员(按薪水排序,粗略地)也无法交付安全代码,你开始有点绝望。然后你会听说像sudo这样久经考验的库,正如道德论据所说,如果你继续交付一个损坏的工具,你很可能会让易受伤害的人受到伤害。
Rust 的哲学是什么?
  
两种语言的故事
你可能知道Julia的起源故事-有一个用于科学计算的gajillion dsl,BLAS是一个烂摊子,但是为了性能需要通过名称空间实现多态性,其他库由于性能限制重新实现了一个穷人版本的multiple dispatch。如果您将一个聪明的JIT添加到多个dispatch功能中,那么如果可以推断出类型,您就可以轻松地获得~C性能,幸运的是,您可以围绕这个范例和这些权衡构建一个通用编程语言。最终,他们对语言进行了洗礼,以纪念一位真正的算法女王。
Rust来自不同的地方:几年前在Mozilla,Graydon Hoare和团队厌倦了系统编程和C/C++工具链。他们正在开发一种语言,这种语言允许程序员在低级系统中高效工作,在没有火箭筒的情况下利用并发性能,并在运行时避免错误。起初,他们有不同的系统来处理之前的问题,直到团队拼凑出一个所有权系统,在编译时有一个借阅检查器 borrow checker,可以一举两得。最终,他们以真菌命名了这种语言。
Julian们厌倦了不可重用的代码、利基dsl和黑客多态性。他们以多重调度为核心设计特点,解决了这些问题。Rust摆平了C/C++雷区,并试图保持所有不变性,所有权和借阅检查器的概念使它们在编译时知道这些错误,并且不受数据竞争的影响。

详细点击标题