前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第1章Hello world 1/5:如何安装最新版Rust:运行第一个程序

第1章Hello world 1/5:如何安装最新版Rust:运行第一个程序

原创
作者头像
程序员吾真本
修改2024-06-10 19:56:31
1000
修改2024-06-10 19:56:31
举报

讲动人的故事,写懂人的代码

很多程序员都在自学Rust。

🤕但Rust的学习曲线是真的陡,让人有点儿怵头。

程序员工作压力大,能用来自学新东西的时间简直就是凤毛麟角。

📕目前,在豆瓣上有7本Rust入门同类书。它们虽有高分评价,但仍存在不足。

首先,就是它们介绍的Rust新知识,有点难理解,因为它和程序员已有编程知识的关联不够细致

这让那些已经对Java或C++驾轻就熟的程序员们,在理解Rust的独特设计理念时,难以找到和自己已有知识的联系,这对于缓解Rust的学习曲线并没什么帮助。

其次,内容有点枯燥,因为缺乏引人入胜的故事。

虽然这些书的知识部分有实例,但还是觉得有点枯燥,学习起来可能会有点累。书中缺少那些能让读者产生情感共鸣的故事情节。

✅程序员吾真本正在创作一本**“对比+故事”轻松愉快Rust编程入门书**,也就是用Java和C++的相关概念,再加上一些动人的故事(约占内容的20%),讲述代码内容(约占内容的80%),让你轻松上手Rust,并巩固Java和C++的现代化编程特性。

🔥“在学习过程中,我们会详细比较Rust和Java与C++的语言特性,这样你就能用已经学过的知识来更好地理解Rust,降低学习Rust的难度。”

🔥“这是第一本编程故事书。我们用20%的感人故事,来讲述80%的代码内容,这样学起来就不会那么枯燥了。”

😃这本书的目标读者,是有过代码编写经验(编程语言不限),且想学习Rust的程序员或编程爱好者,了解Java和C++中任何一门编程语言的基本语法更佳(能通过与Rust对比来深入理解Java或C++)。

❤️这本书的故事梗概是这样的。

当她的老旧Java系统即将被淘汰,这位总想赶快搞定编程工作的女程序员,面临着要么在三个月内转岗,要么被裁员的抉择。

她希望能转到公司用Rust的新项目组,所以开始自学Rust。

在这过程中她还认识了一位C++程序员、一位Rust程序员和一位AI编程助理。

但是,学会了Rust之后,为了通过新项目组的面试,她还得理解什么叫真正的"快速"编程,才能避免掉进代码里的大坑,顺利转岗,保住饭碗。

🪴小吾计划在2024年12月初交稿。2025年年中就能见到这本书啦。

下面就是小吾以连载的形式给大家分享这本书的内容,让我们一起来瞧瞧吧。

欢迎在Java和C++的陪伴下,一起踏上入门Rust编程的奇妙之旅。

在本章里,我们将通过动人的故事,在与Java和C++相关特性的对比中,讨论以下的Rust技术内容:

  1. 轻松地安装Rust
  2. 超好用的Rust工具链
  3. 编写和运行你的第一个Rust程序Hello world
  4. 确保构建稳定可靠的Cargo.lock文件
  5. 对比用三种语言创建和运行第一个程序Hello world的完整过程
  6. 对比三种语言的Hello world代码特点和优劣势

1.1 引子

女程序员赵可菲一直辛苦地加班到深夜,正在全力以赴地修复老旧Java系统的Null Pointer Exception缺陷。

等到她疲惫地回到家时,她的老公、保姆和可爱的不满一岁的宝贝儿子都已经进入梦乡了。

她只能轻轻地、满怀爱意地亲了下宝宝肉嘟嘟的小脸蛋儿。

赵可菲在父母的严格教育下长大,因此总是稍微缺乏自信。

她的父母从小就督促她要把时间用在做作业上,理由是“后面还有很多事情要做”。

因此,作为一名程序员,赵可菲养成了迅速完成任务的习惯,无论是编写代码还是享受生活。

她现在在公司负责一个有十多年历史的老旧Java系统。这个系统即将被淘汰,代码质量也略显陈旧。

每次上线都会出现一些bug,她不得不加班修复。

她的唯一愿望就是能尽快解决这些问题,好回家陪伴她的宝宝。

有一次,赵可菲修复的bug没有通过测试,测试人员就让她再修一下。

赵可菲看了一会儿,发现自己忘记处理了一个异常。

她说:“我很快就能修好。”

测试人员就问她:“赵可菲,你每次都能快速修复,但怎样才能一次就修好,别老返工呢?”

赵可菲笑了笑回答说:“那样就慢了。后面还有好多事情等着我呢。”

赵可菲维护的那个Java老旧系统快要淘汰了

她的老板给她提供了一个内部转岗的机会,如果三个月内转不出去,就要被裁员。

赵可菲开始感到焦虑和不安。

她喜欢现在的公司文化和同事,希望能继续在这里做程序员。

但是她的Java编程技能现在已经不再占优势,内部转岗也变得困难。

她得知公司可能会用Rust重写一些系统。公司也提供了Rust的培训。

然而,她听说这个近两年非常流行的编程语言,入门会有些难度

她离30岁已经不远了,对能否学习新的编程语言有些担忧。

她对未来感到迷茫,不确定下一步该怎么做。

赵可菲听说那个她之前维护的Java系统可能会用Rust重写。

考虑到公司正在提供Rust的培训,她觉得,编程还是很有趣的,于是就毫不犹豫地报名参加了。

在公司的Rust培训课上,赵可菲遇到了讲师贾克强。他是来自高性能网络服务项目组的Rust程序员。

她还结识了她在课堂上的编程搭档席双嘉。他是一位C++程序员。

她还开始使用AI编程助手艾极思(AiGeeCee)。这是公司最近在内部部署的生成式AI大模型。程序员在编程时,可以与艾极思聊天,获得帮助。

赵可菲和席双嘉在学习Rust的过程中,有任何问题都会向贾克强或艾极思寻求帮助。

贾克强和艾极思都非常愿意随时帮助他们。

1.2 学习Rust的方法

贾克强向学员们提了个建议,对于那些在课堂上一起编程的小伙伴们,回家后也可以一起看看Rust官网推荐的那本书:《The Rust Programming Language》。

这本书是Steve Klabnik和Carol Nichols一起精心编写的。

Rust官网上有2023年英文版的第二版,还有2021年英文版的第一版的中译版,都可以免费下载阅读。

赵可菲和席双嘉已经开始看这本书了。

贾克强还贴心地说:“学Rust的最有效的办法就三步。“

”第一步,看Rust的书。“

“第二步,把书上的例子需求改改,然后自己写一遍代码试试看。“

”第三步,把Rust的语言特点和你擅长的编程语言做个比较,帮助记忆。“

”如果遇到问题,先问问艾极思,如果还是不明白,我们再一起在课堂上讨论。”

1.3 如何安装最新版Rust

在课堂上,赵可菲和席双嘉都兴奋地在自己的电脑上访问了Rust语言的官网安装页面,按照友好的提示,他们用rustup顺利地安装了Rust。

贾克强笑着说:“rustup这个命令行工具真的很棒,它可以管理Rust版本和相关工具,让你在电脑上安装多个版本的Rust,切换起来也超级方便。”

赵可菲开心地接着说:“这跟Java世界的SDKMAN!好像啊。”

席双嘉叹了口气,说:“如果C++世界也有这样的工具就好了。”

1.3.1 如何验证安装是否成功

安装弄好后,他们两个兴奋地运行了显示rustc编译器版本的命令,看看安装是否成功。

(温馨提示:在本书中,所有的命令都在macOS、Windows11、WSL2 Ubuntu、Ubuntu这4个操作系统上通过了测试。如果没有特别说明,展示的命令和输出都是以在macOS上运行为例。如果同一命令在不同操作系统中有些许差异,我们会特别提醒你的。)

代码语言:javascript
复制
rustc --version

屏幕上出现了rustc 1.77.2 (25ef9e3d8 2024-04-09)

他们两个又一次运行那个用来查看rustup工具版本的命令。

代码语言:javascript
复制
rustup -V

屏幕上弹出了rustup 1.27.0 (bbb9276d2 2024-03-08)

下面还多了两行字,温馨地提醒他们,这个命令其实并不是用来查看rustc编译器版本的。

1.4 超好用的Rust工具链

贾克强:“Rust拥有一套超好用的工具链,也就是我们用来开发Rust程序的一系列工具和库。“

“它包含了所有你所需要的东西,从编写代码,到编译,构建,测试,以及发布。“

“Rust工具链的核心部分是rustuprustccargo。“

rustup 能帮你管理和更新Rust编译器和工具链,让你能够毫不费力地在不同版本的工具之间进行切换。”

rustc 是我们的核心编译器,它直接负责代码的编译工作。”

“而cargo 则提供了项目管理、依赖管理和构建系统,让开发、测试和发布变得更加高效和简单。”

“工具链通常都与特定的发布渠道和目标平台有关。Rust有三个主要的发布渠道。“

“第一个发布渠道就是Stable(稳定版)。这是我们最重要的发布渠道,每6周就会有一次更新。它会为你带来经过Nightly和Beta版测试的新功能和改进,让你有最稳定和完善的体验。”

“第二个发布渠道就是Beta版。这个渠道的更新是为了服务下一个Stable版的。在新特性稳定化之前,这里就是最后的测试场所。”

“第三个发布渠道就是Nightly(每日构建版)。这个渠道里有关于Rust语言和工具的最新更改。新功能一般都会先在这里出现,但是可能在未来的版本中有所改变或者不稳定。”

“你的电脑可以同时安装多个版本的Rust工具链。你可以用rustup在这些版本之间轻松切换。”

“这种灵活性让我们的开发者可以在不需要更改整个开发设置的情况下,针对不同的Rust版本或者不同的平台,比如像x86_64或ARM这些,来测试他们的代码。”

1.4.1 Java工具链

赵可菲:“Java也有像工具链一样的好东西哦。”

“比如说,Java开发工具包 (JDK),这可是Java程序员的得力助手,和Rust的工具链管理工具rustup有得一拼。“

”它包括了Java运行环境JRE,一个javac编译器,以及其他Java开发所需的各种工具和库。javacrustc的作用可是相当相似的哦。”

“还有像Apache Maven,Gradle和Ant这样的构建工具,这些和Rust的cargo的作用是一样的。它们能管理项目的依赖,自动化构建过程,甚至处理部署。”

“像SDKMAN!这样的版本管理工具sdk也是个好帮手,可以帮我们管理多个版本的JDK和其他与JVM相关的开发工具,让我们可以随心所欲地在不同版本之间切换。sdk的功能和rustup可是相当的。”

1.4.2 C++工具链

席双嘉:“对于编译器,C++并没有像Java或Rust那样的官方工具包,但是不用担心。”

“它利用了像GCC(GNU编译器集合),Clang和MSVC(Microsoft Visual C++)等强大的编译器,这些编译器不仅包含标准库,有时还会带有一些额外的小工具。”

“在构建工具方面,有像CMake,Make和Ninja这样的工具在这里帮你管理C++项目中的构建过程。无论是处理复杂的大项目构建配置,还是配合各种编译器使用,它们都能胜任。”

“说到包管理器,虽然C++没有像Rust的Cargo那样统一的包管理器,但是没关系。像Conan,vcpkg和Bazel这样的新工具,正在依赖关系管理和构建自动化等领域慢慢地受到人们的喜爱。”

(未完待续)

如果喜欢这篇文章,别忘了给文章点个“赞”哦~😃

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 引子
  • 1.2 学习Rust的方法
  • 1.3 如何安装最新版Rust
    • 1.3.1 如何验证安装是否成功
    • 1.4 超好用的Rust工具链
      • 1.4.1 Java工具链
        • 1.4.2 C++工具链
        相关产品与服务
        项目管理
        CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档