< 返回版块

ChaosBot 发表于 2018-10-03 12:07

Tags:rustnews

从今天开始,「每日新闻」会增加一些试验内容,选择翻译一些文章,时间有限,选择连载的方式。

原文

「Solana 、Zcash 和Parity 三家会面讨论为什么Rust适合区块链开发 」连载1

  • Solana是一种高性能区块链
  • Zcash是一种加密货币
  • Parity是一个核心的区块链基础公司,以太坊相关

内容里涉及的人物我不清楚他们具体谁是对应哪家公司,但可能通过聊天内容猜的出来。

正文:

Anatoly: 我的Rust经历实际上是来自于上一份工作,在Dropbox的时候,用Rust编写压缩相关的工作。当时,没有使用标准库的内存分配器,自己实现了一个类型安全的沙箱。非常酷。但是在开始这个项目之前,Rust并没有吸引我。 我用了两周时间使用C语言,但是当用到一些外部库的时候,还得写makefile,手动下载这些库,比较麻烦。所以,我决定尝试一下Rust。就在那一刻,“Holy shit, this is amazing.”。我才觉醒到,这是一个和C语言一样快的语言,并且还给了我Haskell般的类型安全。Rust击中了我,这真的很酷。

Jack: Rust击中我并不是因为速度或者其他因素。那是很久以后的事了,就像我现在才非常关心编写正式的Rust代码,才发现Rust中真正有趣的东西。(慢热) 但是最初的时候是因为我之前写C#,总是碰到运行时错误。因为这种动态类型,完全没有经过类型检查。我都无法列出遇到过的运行时错误数量了,感觉随便一个简单的操作都能碰到错误。给我的感觉是,这根本不像是编程,因为我还得处理这些运行时的错误(代码里感觉像多了很多“废话”,不精炼)。但是Rust就没有这种感觉。我喜欢Rust的人体工程学,比如包管理、类型安全和Null指针安全等。

Anatoly: Sean呢?

Sean: 是的,对我来说也是一样的。速度,可以说是一个我为什么用Rust工作的合理的解释。我可以说,“哦,好吧,它非常快,而且很容易合作,而且非常容易审核”等等。 但实际上,当我第一次学习Rust的时候,我的感觉是,“我再次爱上了编程”。因为我不太想再次求助于Haskell了(在某些情况下)。当然,Haskell很棒。

Jack:Haskell有太多的return废话了。

Sean: Rust将我的编程心智模型和程序思维恰到好处的结合了起来,我太喜欢这些概念了。当我第一次使用Rust的时候,它和现在有很大不同,还有垃圾回收之类的内容。但是过去这几年发生了变化,随着时间的推移它会更加优雅。我想这就是为什么我非常喜欢它的原因之一,就是我看到它的改进比原来越来越好。

Greg: 这些年我涉足了很多不同的编程语言。C、C++、Haskell、Python等。而且每一次,我都尽力在每个项目上只选择两种语言。我会说,“好吧,如果我想做这些高级的东西,我会选择Python,如果我想选函数式类型的东西,我会选Haskell,当我想做一些底层的东西,我会选C++”。我在这些跨语言交互过渡中被折磨了多次。这真的非常艰难,尤其是涉及垃圾回收的时候,实际上不可组合。 然后,C++那里没有垃圾回收也没有安全性可言。如果你用C++给Python写个插件,突然间你的程序就崩溃了。它不应该崩溃,对吗?但它就是崩溃了。因此,Rust对我来说,就是一股新鲜空气。我现在使用Rust这一种语言就可以完成整个软件堆栈的绝大部分功能,而不必切换语言了。

Jack: 我认为C++其实也不是完全不安全的。它还是安全的,但它的安全只存在于简单的情况下,但是当处理复杂的情况,就不安全了。表现就像安全性是一个谎言一样。

Greg: 你是指未定义行为吧?

Jack: 是的。

Greg: 所以,假设你的程序有一个整数溢出,它只是在你正在使用的编译器中出现,但是在语言定义中并没有定义整数溢出的情况,这就是未定义行为。你的编译器允许是允许做任何事情的,任何事情。 当然,它也许不会出现在你正使用的编译器中。然后你升级编译器,它就崩溃了。或者它在其他人的库中发生崩溃,因为它们有整数溢出,这就很烦。

Jack: 我的意思是,像Linux内核禁用了空指针检查优化(-fno-delete-null-pointer-checks , GCC会默认把空指针检查优化掉)。这是因为曾经有一个错误,是编译器将空指针检查优化掉了,也就是说,把空指针检查给删除了。这就导致Linux内核的安全性大大降低,所以Linux内核要禁止这种优化。 当我想到Rust,只要Rust的不安全规则是正确的,那么建立在这些不安全上面的一切也是正确的。(就像Linux禁止空指针检查优化那样,建立不安全规则,在这个规则之上构建安全)

Sean:是的,所以说Rust实际上是有一层抽象的屏障,将安全作为第一等概念,因为在语言层面unsafe是第一等概念。

「未完待续」


将CUDA Path Tracer 移植到ptx-builder/linker

该文作者一直致力于将Rust应用于CUDA。目前他还不建议用Rust应用于CUDA,但是他认为现在已经有了稳定的基础。

该文记录了PTX链接器和相关构建脚本,因此可以在Rust里可靠地构建CUDA内核,这是朝Rust的GPGPU迈出重要的一步。

GPGPU 相关前文

原文


witnet 月报

Witnet去中心Oracle网络协议(Witnet Decentralized Oracle Network protocol)的第一个开源实现,是witnet-rust

Witnet协议将智能合约连接到任何在线数据源,例如股票价格,天气预报,以及其他区块链,该协议由被称为目击者的分布式矿工节点运行,这些节点可以检索并向智能合约提交数据从而获得代币奖励,建立一个分布式的,不可更改的,抗审查的数据档案。

witnet-rust 包括了一些区块链组件,比如持久化区块链的存储引擎等, 2019年会发布测试网络。感兴趣的可以看看。

原文


「远程工作」编译器和分布式系统工程师

公司(很可能没有公司)在悉尼,但是你可以在全球任何地方工作。 但可能只是临时工,并且可能只提供1-2个月的工资。 不过想参与到编译器和分布式开发的开源项目的人,也可以关注下。

原文


GitHub趋势榜今日新上榜项目

  • stratisd,易于使用的Linux存储管理工具
  • imageflow,高性能图片处理Web服务器
  • salsa, 通用的增量计算框架

评论区

写评论

还没有评论

1 共 0 条评论, 1 页