加餐|这个专栏你可以怎么学,以及Rust是否值得学?
该思维导图由 AI 生成,仅供参考
代码缺陷
- 深入了解
- 翻译
- 解释
- 总结
Rust语言的学习方法及发展前景 Rust语言的学习方法和优势在本文中得到详细介绍。文章首先从控制代码缺陷的角度出发,讨论了Rust语言在解决开发者在实践过程中遇到的语法、类型、内存和资源、并发、错误处理等方面的问题。通过Rust的类型系统、所有权、借用检查和生命周期检查等特性,能够在编译期间发现并解决大量缺陷,从而保证代码质量。此外,文章还从引入缺陷的代价的角度阐述了Rust语言的优势,指出Rust能够在编译期间检测出缺陷,让开发者能够在秒和分钟级别就发现并修改缺陷,避免将缺陷带入后续环境,最大程度地保证代码质量。总的来说,Rust语言通过其独特的特性和优势,为开发者提供了一种高效、安全的编程语言选择。 此外,文章还对Rust语言的发展前景进行了分析。通过统计数据显示,Rust生态虽然绝对数量不高,但增长率一直遥遥领先,过去两年多的增长速度差不多是第二名NPM的两倍。文章还对Rust和Golang进行了对比,指出了它们各自的优势和适用场景。最后,文章还介绍了一些官方和其他学习资料,为读者提供了学习Rust语言的参考资源。 总的来说,本文通过详细介绍Rust语言的学习方法和发展前景,为读者提供了全面了解Rust语言的概览。
《陈天 · Rust 编程第一课》,新⼈⾸单¥68
全部留言(34)
- 最新
- 精选
- leiiiooo置顶老师好,今天阅读到这段话的时候不是很理解。“Rust 的诞生目标就是取代 C/C++,想要做出更好的系统层面的开发工具,所以在语言设计之初就要求不能有运行时” 这个不能有运行时如何理解,C/C++没有运行时吗?这里我的记忆有些模糊了,也去查了些资料,还是不太理解,Rust也没有运行时吗?没有运行时它是直接由编译器生成到机器码吗?
作者回复: 对,Rust 和 C/C++ 都是编译成机器码,直接面对具体的 CPU 架构。所以 Rust 代码需要为每个平台单独编译,这是它和 Java/DotNet 等语言的主要区别;但是像 golang 这样的语言,它也直接编译成机器码,但 golang,即便一个最简单的 hello world,编译出来的代码也包含了一个庞大的运行时,处理调度,GC 等工作。Rust 没有这些额外的运行时。
2021-08-25723 - 小样置顶再推荐一个和“rustlings”很像的,也是跟着一个个的例子往前走,《通过例子学rust》,有中文版。 另外rust看起来确实很美好,内存安全,无gc,无畏并发。但我不相信这世上有银弹,一门语言就解决了所有问题,继续学习吧,希望陈老师能带我们看看rust这个洞到底有多深😎
作者回复: 是的,一门语言不能解决所有问题。:)
2021-08-259 - pedro这里补充一点,即使你看了再多的书,刷了再多的视频,你的rust其实还是一地稀碎。 纸上得来终觉浅,绝知此事要躬行,所以没有什么是比和编译期做斗争,再思考,再斗争更好的学习方式了!
作者回复: 对的。所以我们强调要实践,要学以致用。
2021-08-25235 - Geek_8598a7在现在(2021年),Rust作为一个良好设计的现代非托管内存编程语言,毫无疑问是有很大的学习价值的,且由于后发优势相比同类的编程语言学习的效率也会更好。 但本篇文章中整体传达出的意思是有些不负责任的,举两个具体的例子:1、增长率高只是增长率高,不能说明潜力高,既没有因果性,也没有相关性;2、“我对 Rust 的前途持非常乐观的态度……”后续一段列举了多个场景,但并没有说剂量,是的,如果抛开剂量这些说法都是成立的,但是作为一个在编码阶段给程序员施加诸多心智开销的语言,注定不可能在业务逻辑开发的场景占到较大的比例,可能存在,但只可能存在很小的部分;绝大部分市场、岗位,仍然属于业务逻辑更方便编写的语言。 以上说的两点我相信作为工程基础扎实的作者其实是能够理解的。 这篇文章整体传达出的倾向,并不是基于现实情况给出的中立预估,而是选择性的说了一部分,最终给读者一种Rust过高的期待。 这种事情在技术传道的时候其实是非常常见的,可以说是一种通用的做法,我不觉得算是有问题。大部分资深的人也习惯了,并在心里会有一个正确的预估。 但看到这个课程的评论,我还是担心,会有新人给予Rust过高的期待,进而影响后续的学习路线,导致真正面临职业选择的时候,可选择的面变得非常的窄,即使最终能来得及调整自己的选择,但职业发展已经太晚了,毕竟技术人员的成长是一个复利的事情,晚个几年可以说是人生级的损失也不为过————我们在过去很多语言/技术栈上都见过这样的人。 希望作者能够多做一步,不仅限于按照业界常见的手法去传播相关技术,而是给读者一个比较现实、中立的描述。我觉得还是有这种可能性的,因为和很多传播技术的人不一样,首先作者具有广泛的技术视野和工业经验,能给出一个更合理的说法;同时不像很多其他技术的推广者就是开发者本身,作者没有和推广的技术(这里是Rust)有任何利益绑定,是通过热爱在这边更新教程,那么能不能更进一步,留给真正的萌新们一个更好的启蒙呢?
作者回复: 谢谢你的回复!你可以看接下来的三篇,我分别用一个 CLI,一个 web 服务,一个对 csv 做 sql 查询的工具把 Rust 引入给 Python3/javascript,从几个方面展示 Rust 的巨大能力。所谓 talk is cheap, show me the code,你可以在看这些真实世界里的需求如何通过 Rust 实现,再想想自己的主力语言如何实现,两相对比,自己感受 Rust 的能力和潜力,是否适合做业务逻辑,职业面是否会窄,它会不会让你成为一个更好的程序员。 潜力这事,本就是仁者见仁智者见智的。我只是给出数据抛砖引玉。如果增长率不可以佐证潜力,stackoverflow 连续六年用户最爱不可以佐证潜力,良好的用户体验和稳定的六周发布周期不能佐证潜力,linux kernel,android 以及很多大厂在业务系统中都在引入 Rust 不能佐证潜力,那么我不知道什么可以佐证潜力。当然潜力不一定能兑现成未来的即战力,就像不少 NBA 新秀高光之后慢慢沦为路人。但作为一个在生产环境中使用过多种语言的工程师,我觉得 Rust 有很大的概率兑现它的这些潜力: 1. 在很多场合下,成为其他语言要做高性能组件的首选语言(比如做一个库给 Python/Elixir/nodejs 使用) 2. 成为业务流程中核心服务的首选语言(比如 in-memory 状态处理服务) 3. 成为多端共享核心逻辑的首选语言(比如 iOS/android 共享一个 engine) 4. 成为系统开发的重要语言
2021-09-08730 - byemoto学习资料推荐一个: cheats.rs 里面有语法特性概览, 适合速查
作者回复: 对,这个非常棒,我在后续的讲解中还引用了其中的图。还有一个类似的是:https://docs.google.com/presentation/d/1q-c7UAyrUlM-eZyTo1pd8SZ0qwA_wYxmPZVOQkoDmH4/
2021-08-2521 - MacJayLee太值得学习了,为数不多的性能与内存安全并存的语言, 我是重度golang开发者,golang很优秀,网络io型程序开发的绝对利器,开发效率和性能可以达到一个很好的平衡,但是面对内存的过高占用以及cpu密集型计算的场景,深感无力,所以必须掌握rust。相信go和rust的结合一定会有光明的未来
作者回复: 👍 的确如此
2021-08-25217 - ecafkoob现在一些cncf的项目就是go+rust这种模式。比如tidb 还有linkerd 2。感觉这种相互配合的模式就挺好的。rust未来可期。
作者回复: 嗯,很多项目一开始是纯 golang,后来会把一些核心的,需要高性能的部分抽取出来用 rust 实现。
2021-08-2529 - 常常基础语法了解之后,感觉还是照猫画虎,老师有什么好的建议么,虽然语法都熟悉,但是感觉还是很陌生。
作者回复: 多看那些优秀的项目,多尝试着自己写一些东西。比如把一篇文字(如战争与和平)的词汇的 frequency 表生成出来,打印前 10,这样的简单问题,尝试用 Rust 实现,然后不断优化(使用 rayon,使用 tokio + channel,甚至使用 datafusion),把性能做到极致。
2021-12-115 - 王硕尧Jon Gjengset 正在写的 Rust for Rustaceans 不错,还有Rust in Motion,Rust in Action
作者回复: 嗯,Rust for Rustaceans 比较适合有一定基础的,我也期待这本书。
2021-08-255 - Sports听音频最后有惊喜哦:)
作者回复: :)
2021-08-2524