Rust 入门实战系列(1)- Hello World

专栏开篇

Rust 这门语言有很多优势,但最令我好奇的地方在于,这还是第一次见到一个语言,从前端展示,到后端业务,到系统编程都能做。这一点太了不起了。

我们能想象用 JS 来写 Linux Kernel,或者用 C++ 写前端么?简直天方夜谭,但是这两个领域,Rust 可以。

第二个吸引我的点在于内存管理。Java,Python,Go 这类语言提供了 GC,工程师只管分配内存,不用管删除,提高了开发效率。而 Rust 则没有 GC,且不用手工管理内存,不会有野指针,并发安全,它通过【共享不可变,可变不共享】的理念,让运行时风险降低,现代高级语言能做到这一点很厉害。

作为这个系列第一篇,希望首先收集所有官方,权威的专栏,课程,资料。并通过 demo 来简单上手。

Rust 是什么

Rust is a multi-paradigm, general-purpose programming language. Rust emphasizes performance, type safety, and concurrency. Rust enforces memory safety—that is, that all references point to valid memory—without requiring the use of a garbage collector or reference counting present in other memory-safe languages.

简单说就是五个点:通用语言,高性能,类型安全,并发,无GC。

毕竟笔者主语言还是 Go,直观来看跟 Rust 相比有两个劣势:

  • 通常来说,Golang 的性能一般来说是足够的,无论是gc开销还是goroutine调度。但是如果你想追求极致性能,还是建议考虑 Rust,毕竟没有GC而且可以自定义并发运行时与 allocator。

  • 从代码风格上来看,golangci-lint 只会告诉你你不应该怎么样,而 cargo clippy 不仅可以告诉你不应该如何,还会告诉你你完整的上下文(一个lint可以同时标记多处代码)。

当然,Rust 陡峭的学习曲线跟 Go 还是有差距的,毕竟 Golang 整体非常简洁,上手成本很低,认真学的话一周以内就可以完全上手,但 Rust 还是需要理解很多概念,尤其是【所有权】。

但既然这么牛逼,这个成本还是非常值得的。

学习资料(持续更新)

专栏开篇还是希望把市面上已知的 reference,教程汇总一下,以后有需要了随时过来找。如果有遗漏的欢迎大家指出。

  • rust官网
  • 如何提交代码
  • The Rust Programming Language
  • Rust程序设计语言(The book 的中文版)

你可能感兴趣的:(rust,开发语言,后端)