当前位置:网站首页>Rust更适合经验较少的程序员?
Rust更适合经验较少的程序员?
2022-04-23 20:48:00 【不叫月红】
随着 Rust被亚马逊、谷歌等大厂青睐,越来越多的开发者加入学习大军,但接触之后,不少人纷纷嗟叹,Rust 太难了。在2020年Rust调查报告中,当被问及为什么会停止使用Rust时,有35%的开发者表示他们还没学会,可能是因为没有时间,也可能是因为太难。
而近日 Reddit 上的一篇帖子引起了不少人讨论,不少开发者表示:Rust可能更适合那些编程经验较少的程序员,如果你有1、2年的编程经验,那么入门Rust会更快一些。
yxonic的用户发帖表示:他一直认为自己喜欢Rust的原因来自于自己是一名经验丰富的程序员和自己明确的需求,之所以这样考虑是因为他有C++和Haskell背景以及可以发现不少好东西,例如直接继承和Rust可以解决的一些问题。

然而,他最近把Rust介绍给了他的女朋友,她大约有两年的Python的编码经验,没想到,她一下子就爱上了Rust,因此,yxonic认为,Rust对编码经验不足的程序员可能很有意,下面是yxonic跟女朋友总结的一些Rust优点:
-
在cargo(也许也有cargo-edit)的帮助下,立即开始一个项目和编写代码是非常容易的,并且所有的测试、文档、lint、vcs 等都可以直接使用。而Python在这方面做得非常糟糕,以至于yxonic女朋友对Rust中的简单性感到震惊。
-
理解和照例子编写不需要深入理解。实际上,在阅读文档和 reqwest、rocket 等 crate 等示例后,做一些真正的事情会很容易。一个程序想要做什么已经很好地表达了,而它究竟是如何完成的并不重要。
-
话虽如此,Rust 鼓励开发者更多地理解“how”,更重要的是,它让编程变得有趣和有益。感觉就像通过学习每个 Rust 概念来学习编程和计算机。你进行的每一步都会带给你一些东西,不像在 Python 中,你只需要记住那些花哨的特性、奇怪的约定和微小的差异,但这些并不能促进开发者对编程的理解。
尽管yxonic是通过与Python对比才得出了上面的结论,但这些观点可能也适用于其它编程语言,并且他希望Rust能够得到更多初级程序员的喜爱,让他们对编程产生真正的兴趣,并帮助大家变的更加自信和专业。
没想到这一观点得到了许多开发者们的响应,不少程序员纷纷抛出了自己的观点,笔者摘取部分点赞较多的跟大家共享:
nicoburns的评论获得了162个支持:
nicoburns 认为 Rust 非常适合拥有一两年经验的程序员。 他表示:Rust可能不适合小白类的初学者(例如仍在学习什么是变量、数组、循环的人)。 对于完全的初学者,他认为即使是像 Java 这样的语言也有太多的障碍,你真的需要像 Python 或 JavaScript 这样的动态语言。当然,您可以直接深入学习 Rust 或 Java,但学习曲线会更陡峭。
IshKebab,43个支持:
IshKebab认为Python缺乏编译时的静态类型检查机制,这会阻碍初学者快速上手,在编写 Python 代码时,你仍然需要了解类型。 在设计程序时,你也需要考虑它们。 但是 Python 让程序员将所有这些都记在脑子里,或在临时注释中。
在这方面Rust和Python的设计初衷是一致的,只是方法不同。Rust变量所有权检查机制强迫开发者编写代码时,就必须要考虑类型的问题,只要程序能编译通过就不会有类型的错误产生,在实战中Rust的类型检查方案确实减轻了开发者的负担。
(是的,Python现在有静态类型提示,但是 a)它们很糟糕,b)初学者教程不使用它们,c)生态系统的一半仍然没有类型化,所以使用它们很痛苦。)
针对本文的观点,笔者细想一番,无论你学习何种技术,0基础跟有点经验总归是有区别的,有时候入门跟上手就在那一瞬间,一旦能Get到某些点,那可能就是不一样了,用句学习上的老话:“哎,开窍了”。对此,你怎么看?
版权声明
本文为[不叫月红]所创,转载请带上原文链接,感谢
https://blog.csdn.net/mengyidan/article/details/120653565
边栏推荐
- Addition, deletion, modification and query of advanced MySQL data (DML)
- go interface
- mmap、munmap
- On the three paradigms of database design
- 黑客的入侵方式你知道几种?
- Recommended usage scenarios and production tools for common 60 types of charts
- 启牛学堂有用吗,推荐的证券账户是否安全
- UKFslam
- LeetCode 232、用栈实现队列
- A login and exit component based on token
猜你喜欢

Addition, deletion, modification and query of MySQL advanced table

Preliminary understanding of cache elimination algorithm (LRU and LFU)

MySQL基础之写表(创建表)

Common problems in deploying projects with laravel and composer for PHP

Go zero framework database avoidance Guide

Gsi-ecm digital platform for engineering construction management

GO語言開發天天生鮮項目第三天 案例-新聞發布系統二

常用60类图表使用场景、制作工具推荐

高薪程序员&面试题精讲系列91之Limit 20000加载很慢怎么解决?如何定位慢SQL?

Another data analysis artifact: Polaris is really powerful
随机推荐
go struct
笔记本电脑卡顿怎么办?教你一键重装系统让电脑“复活”
go interface
Learn to C language fourth day
Win 11K in 100 days, super complete learning guide for job transfer test
"Meta function" of tidb 6.0: what is placement rules in SQL?
On IRP from the perspective of source code
Preliminary understanding of cache elimination algorithm (LRU and LFU)
MySQL基础合集
The construction and use of Fortress machine and springboard machine jumpserver are detailed in pictures and texts
IOT 设计与开发
MySQL stored procedures and functions
Reentrant function
Send email to laravel
MySQL advanced common functions
Elastic box model
vulnhub DC:1渗透笔记
Vscode download speed up
Parsing methods of JSON data in C - jar and jobobject: error reading jar from jsonreader Current JsonReader item
Async function ------ ES6