Skip to content

Instantly share code, notes, and snippets.

@crlf0710
Created January 5, 2020 04:49
Show Gist options
  • Save crlf0710/9db84fb84f392aa5ce434a7838ad1052 to your computer and use it in GitHub Desktop.
Save crlf0710/9db84fb84f392aa5ce434a7838ad1052 to your computer and use it in GitHub Desktop.

Rust 之所以为 Rust —— Rust进阶教程,前言

有段时间没有写关于Rust的东西了,在这段时间里,Rust发布了2018的大版本,增加了一些之前答应的功能,生态上有了一些进步。在国内国外,比起之前一段时间,听说过Rust的人变多了,关注Rust的人变多了,实际在写Rust的人也变多了。PYPL排行榜上,Rust目前已经升到了18位。超过前面17位的Visual Basic,甚至赶上第16位的Scala,我觉得也是很有希望的,只是可能再需要一点时间。整体来说,大概还算是欣欣向荣的。至于短时间内成为爆款什么的,个人觉得倒是可能性不大,不过万一火了呢,毕竟前面有Clojure、Scala的先例嘛。

这次打算写一点进阶的东西。如果是入门的话,其实现在Rust入门教程已经有很多了。官方的教程《The Rust Programming Language》已经出了实体书,还有Rust By Examples也在一直更新。Ralf Jung聚聚的《Rust 101》我也蛮喜欢的,还有Niko Matsakis聚聚之前录的《Into Rust》五集视频教程。还有很多我只听说过但是没有深入了解的,比如NRC聚聚写的Rust for C-Plus-Plus Programmers, Youtube上的jonhoo录的视频教程系列,还有O'Reilly出了一本实体书Programming Rust。国内这边,范老师和张老师先后出了两本Rust入门教程的实体书,很抱歉我还都没拜读过,不过听说口碑也都还可以。哦对了,可能很少有人知道,JetBrains已经把Rust官方的Rustlings做进了它的教育包里,也就是交互式教程。感兴趣的也可以玩玩看。

不过貌似网上关于进阶的东西貌似不是很多。Rust 并不是一门简单的语言,实际上它的技术细节是相当多的。初学者们在入门阶段读的东西,一般都是入门教程作者精心挑选之后拿给你们的东西。一次一个主题,能够在不把读者吓跑的同时把读者写程序解决实际问题时可能用到的主题内容细致的传达给读者。即使这样,内容就已经很多了…… 读者很少会有余力去想,有没有Rust本身的设计里有,但是书籍作者没有传达的内容呢?实际上,不但有,而且还很多很重要:)。

所以就有了这个系列,我会尝试跳过入门书籍的职责,直接讨论Rust的世界观和一些基本的设计意图和设计结论。很快你就可以看到,不是所有的设计结论都是尽善尽美的,实际上很多决策是有些令人遗憾的。然而Rust是一个把企业用户看得很重的语言。为了企业用户,大家需要保持向后兼容性。也就是说,在可预期的未来,这些决策大概率不会有根本上的调整。为了建立一个完整的世界观,在文中很可能会引入入门教程里规避不谈的很多基本概念,我会尽量列出参考资料(如果漏掉了什么,欢迎在评论中留言要求补充)。可能有的读者稍微看了一点会觉得“嘿,你在说的这个,跟我之前学的是同一个语言?”如果能帮助大家离开入门阶段的舒适区,我想这就达到了我的写作意图了。

前言部分,就暂时写到这里,谢谢大家~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment