Jon Gjengset认为学习Rust语言并不难


Jon Gjengset是书籍Rust for Rustaceans 的作者,曾是MIT CSAIL 并行和分布式操作系统组的博士生,是 Amazon Web Services (AWS) 的高级软件工程师。在亚马逊,他的重点是在内部推动 Rust 的采用,包括构建内部基础设施以及与 Rust 生态系统和社区进行互动。
 

Rust 连续六年被 Stack Overflow 评为“最受欢迎的语言”,它也因比其他流行语言更难学习而闻名,那些擅长 Python 但由于感知到的学习曲线而犹豫是否需要尝试 Rust?
Rust 并不难学,而是 Rust 迫使您将其应用到代码中的原则。如果您正在使用 Python 编写代码,以您的示例为例,该语言存在大量问题,您无需考虑就可以逃脱 - 也就是说,直到它们稍后回来咬您为止。无论是由于动态类型导致的错误、仅在重负载期间出现的并发问题,还是由于缺乏仔细的内存管理而导致的性能问题,您都在进行反应式开发。您首先构建一些有效的东西,然后在发现问题时周而复始地解决问题。
Rust 是不同的,因为它迫使你更加主动。今年来自 RustConf 的一个恰当引用是 Rust“首先给你带来宿醉头疼反应”——作为开发人员,你被迫对你的程序的运行时行为做出明确的决定,并且你被迫确保相当大的错误不会出现存在于您的程序中,所有这些错误都在编译器编译源代码之前就能发现。这是开发人员需要学习的东西,以及在编译时调试的相关技能,而不是在运行时调试和发现各种错误。
正是开发过程的这种变化导致了大​​部分(尽管不是全部)Rust 更陡峭的学习曲线。这是一个非常真实和重要的教训。我也怀疑这将是一个非常有价值的教训,随着行业越来越关注通过形式验证等方式保证正确性,这只会在这个方向上进一步推动开发人员体验。例如,当我现在用 Java 编写代码时,我更加了解该代码的正确性和性能影响,因为从某种意义上说,Rust 教会了我如何更好地推理代码的这些方面。
 
 Rust 比 C 和 C++ 有两个主要优点
 Rust 比 C 和 C++ 有两个主要优点:人体工程学和安全性。
对于人体工程学,Rust 采用了许多传统上与高级语言相关的机制,这些机制使得编写简洁、灵活、(大部分)易于阅读且不易误用的代码和接口变得更容易——像代数数据类型这样的机制、模式匹配、相当强大的泛型和一流的功能。这些反过来让编写 Rust 感觉不像我们考虑C等系统编程时经常想到的那样 - 低级代码只处理原始指针和字节 - 并使该语言对更多开发人员更容易上手。
至于安全性,Rust 在类型系统中编码了更多关于代码、访问和数据的语义的信息,这允许在编译时检查其正确性。线程安全和独占可变性等属性在 Rust 的类型级别强制执行,编译器不会让你弄错。Rust 的强类型系统还允许通过类型状态编程将 API 设计为抗误用,这在 C 等不太严格的语言中很难实现。

其他点击标题