Rust更适合经验较少的程序员?

2023-10-27

随着 Rust被亚马逊、谷歌等大厂青睐,越来越多的开发者加入学习大军,但接触之后,不少人纷纷嗟叹,Rust 太难了。在2020年Rust调查报告中,当被问及为什么会停止使用Rust时,有35%的开发者表示他们还没学会,可能是因为没有时间,也可能是因为太难。

而近日 Reddit 上的一篇帖子引起了不少人讨论,不少开发者表示:Rust可能更适合那些编程经验较少的程序员,如果你有1、2年的编程经验,那么入门Rust会更快一些。

yxonic的用户发帖表示:他一直认为自己喜欢Rust的原因来自于自己是一名经验丰富的程序员和自己明确的需求,之所以这样考虑是因为他有C++和Haskell背景以及可以发现不少好东西,例如直接继承和Rust可以解决的一些问题。
在这里插入图片描述

截图自Reddit

然而,他最近把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到某些点,那可能就是不一样了,用句学习上的老话:“哎,开窍了”。对此,你怎么看?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rust更适合经验较少的程序员? 的相关文章

随机推荐

  • Linux统计代码量命令cloc

    记录一下Linux中一个非常好用的代码量统计命令 cloc 安装步骤 sudo apt get install cloc 使用方法 进入到要统计的工程根目录 cloc 运行结果
  • 【以太坊源码】mpt实现

    转载自 click here trie encoding go encoding go主要处理trie树中的三种编码格式的相互转换的工作 三种编码格式分别为下面的三种编码格式 KEYBYTES encoding这种编码格式就是原生的key字
  • C语言字符串及其函数

    C语言中没有类似于C 或Java中的string类型 如果要在C中表示字符串 可用字符数组的形式 数组的概念可戳此链接了解 在C 中 string类库可以更简单的表示和使用字符串 可戳此链接了解string类 C语言中字符串是以空字符 0结
  • FRP中安全地暴露内网服务

    导读 之前的教程介绍的frp内网穿透都是用tcp模式 但是tcp模式是直接把端口映射到公网IP上 很容易被扫描爆破 还是存在一定的风险 我们可以使用frp提供的stcp模式来避免公开暴露端口 同时访问者也要运行一个frpc作为接收转发 fr
  • angular4中ngModel双向绑定在限制输入情况下与value值不一致的问题及尝试的解决方法

    近期公司的一个后台项目在使用angular4进行开发 随着项目的推进和迭代开发 需要对有的input框的value值进行限制输入 例如目前项目的一些input框只允许输入数字和 这两种形式的内容 就在input标签的中添加了 keyup 属
  • html中怎么引入外部css文件路径,怎么引入外部css文件样式?

    怎么引入外部css文件样式 来给html标记添加各种样式 下面本篇文章就来给大家介绍一下引入外部css文件样式的方法 希望对大家有所帮助 方法1 使用来引入外部的css文件 在网页的标签对中使用标记来引入外部样式表文件 使用html规则引入
  • ddl是什么意思网络语_ddl是什么意思(网络语ddl是什么梗)

    每文一言 潜能 我等皆具之资 01 DDL 其真身为deadline 又名死亡之线 常现于众学士之眼 或如任务上缴之日 排它念 存己欲 三刻之内便可将之 绳之以法 实乃天网恢恢 疏而不漏 亦如大考之时 废寝忘食 通宵达旦 以一目十行之势 饱
  • C++默认模板自变量(Default Template Arguments)

    一 类模板的默认模板自变量 我们可以对 class templates 定义其 template parameters 的默认值 这称为 default template arguments 默认模板自变量 默认模板自变量值甚至可以引用前一
  • tomcat重要参数调优

    一 3个参数搞定并发配置 作为一个能承接高并发互联网请求的Web容器 首当其冲的当然是海量请求的冲击 幸运的是Tomcat支持NIO 我们可以通过调整线程数和并发配置 让它表现出最佳的性能 maxThreads tomcat接收客户端请求的
  • MySQL基础(附练习题+答案)

    一 数据库简介 1 数据库系统 1 1数据库 DataBase 简称DB 指的是长期保存在计算机上的一些数据 按照一定的规则组织起来 意义 可以被多个用户或者多个应用共享 存储 维护和管理数据的集合 mysql sqlite 1 2数据库管
  • STM32系列(HAL库)——F103C8T6通过MPU6050+DMP姿态解算读取角度及温度

    1 软件准备 1 编程平台 Keil5 2 CubeMX 3 XCOM 串口调试助手 4 文件资料包 点击跳转下载 2 硬件准备 1 一个捡来的MPU6050 2 F1的板子 本例使用经典F103C8T6 3 ST link 下载器 4 U
  • YOLO数据集实现数据增强的方法(裁剪、平移 、旋转、改变亮度、加噪声等)

    前言 最近我在做论文实验时从MSCOCO数据集中筛选了符合条件的1260张图片 但数据样本太少了 于是我就利用数据增强的方法实现了带标签的样本扩充 最后扩充为7560张图片 本文就来记录一下过程 有不懂的地方欢迎留言噢 目录 前言 一 什么
  • mix_transformer_demo

    代码 原代码为mix transformer 官方代码 我改了一些地方做适配 目的是做研究 并了解一下mix transformer 原来的代码的segformer head 的normalize那里的config的type是SyncBN
  • 为什么3D建模成为副业标配?

    其实在副业大时代的潮流下找到一份适合自己的副业兼职 改变现状 并不是一件很困难的事情 如果你喜欢游戏 喜欢动漫 对影视动画制作感兴趣 热爱画画 模型等等 3D建模是你副业兼职的最好选择 3D建模 通俗来讲是通过三维制作软件 构建出具有三维数
  • WSL1升级为WSL2

    首先需要启用组件 使用管理员打开Powershell并运行 Enable WindowsOptionalFeature Online FeatureName VirtualMachinePlatform 启用后会要求重启计算机 从https
  • Python全栈(七)Flask框架之4.Flask模板继承与案例练习

    Flask模板继承与案例练习 一 模版继承 二 配置静态资源文件 三 模板案例 一 模版继承 Flask中的模板可以继承 把模板中重复出现的元素抽取出来放在父模板中 子模板再根据自己的需要进行改写 通常 在父模板中定义公用的部分 通过定义b
  • Swift 变量

    变量是一种使用方便的占位符 用于引用计算机内存地址 Swift 每个变量都指定了特定的类型 该类型决定了变量占用内存的大小 不同的数据类型也决定可存储值的范围 上一章节我们已经为大家介绍了基本的数据类型 包括整形Int 浮点数Double和
  • WPF System.Windows.Data Error: 17 数据校验模板绑定错误

    错误定位 Path AdornedElement Validation Errors 0 ErrorContent 修改为 Path AdornedElement Validation Errors CurrentItem ErrorCon
  • linux下创建samba共享

    参考网上哪位大神的忘记了 用的是ubuntu 首先 sudo apt get install samba 安装好后在 etc samba 目录下面改一下smb conf文件 保存之前的 cd etc samba mv smb conf sm
  • Rust更适合经验较少的程序员?

    随着 Rust被亚马逊 谷歌等大厂青睐 越来越多的开发者加入学习大军 但接触之后 不少人纷纷嗟叹 Rust 太难了 在2020年Rust调查报告中 当被问及为什么会停止使用Rust时 有35 的开发者表示他们还没学会 可能是因为没有时间 也