mac环境下 环境安装
Stack Overflow 2022 定制软件开发者调查报告现已出炉。Stack Overflow 定制软件年度开发者调查是面向定制软件全球开发者进行的规模最大、定制软件最全面的调查,定制软件调查涵盖了从开发者喜定制软件爱的技术到工作偏好等内容。2022 年是 Stack Overflow 定制软件发布年度开发者调查报定制软件告的第十二年,有来自 180 个国家 / 地区的 73000 定制软件多名开发人员参与了这个调查。其中,定制软件依旧是来自美国和印度定制软件的受访者数量最多,定制软件其次是德国和 UKI(英国和爱尔兰);仅有 632 份调查反馈来自中国开发者,占比为 0.88%。
rust的应用场景
Rust 已连续第七年成为最受喜爱的语言,87% 的开发人员表示他们希望继续使用它。
Rust最爽的是可以从 C++调用 rust,以前大部分语言都是只能调用 C++,C++反过来是不能直接调用的,都要比较麻烦的接口。rust同 C++的无缝结合,正可以从 lib层慢慢替换各个各个原有模块
Rust最容易吸引的人群可能是C++程序员:因为,一方面解决了不少C++的痛点,另一方面Rust的很多特性其实有点复杂也有点门槛的。这些特性背后的动因有C++背景的程序员是非常容易理解,也是不少C++程序员梦寐以求的。相对而言,其他语言背景出身的程序员,对Rust的共鸣性远远没有C++程序员强烈。
Rust的主要目标是弥补C++的很多不足最终可以完全替代C++, 能写出更安全稳定且性能不输C++的程序
但编程语言没有十全十美的设计,Rust满足了安全稳定和性能, 是以开发效率和上手难度的代价换来的
也就是说Rust主要的领域在功能较稳定的底层模块, 不太适合写需求大量易变的上层逻辑
rust面临的生态问题和开发优势
1.内存安全模型,这是趟过c/c++坑的人的共识,也是业界的共识,大型c++项目如os,游戏引擎,浏览器等,70%的bug都是因为内存安全引起。
2.高性能,无运行时,不像c#,java,go一样有gc,这样理论上可以做到和c一样的目标代码的运行效 率。
3.拥抱web,随着web上的应用越来越复杂,未来可见的wasm,rust是最佳语言,跟上面一条一样,因为无运行时,rust编译出来的wasm极小,这在web环境下是非常重要的。虽然c/c++编译成wasm也同样很小,但项目组织和包管理比rust复杂多了。
Google开始在Rust OS底层开发中逐步使用Rust替代C++。主要是针对新项目,老的C++不会动的。
安装
今天我们就在mac开发环境下安装一下rust
先上资料:https://www.rust-lang.org/zh-CN/tools/install
执行 curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh
进行rust的安装
期间会弹出一个input,一般开发者输入1就可以。
安装过程如下:
安装成功后可以使用rustc -V来查询版本
大功告成。
创建项目并测试
使用cargo命令创建项目, cargo new project
看一下项目名称是否正确
进入项目进行编辑执行 :
cargo build进行编译
cargo run进行执行
大功告成!@@!
idea编辑器插件安装
安装IntelliJ插件
需要安装两个插件 intellij-rust和intellij-toml, intellij-rust是Rust语言插件,intellij-toml是为Toml语言的插件,是为cargo的配置文件cargo.toml使用。
安装方式:Perferences… -> Plugins 在Marketplact中直接搜索Rust
同样方式搜索toml并安装。
重启idea ,创建项目
执行 demo
常见问题
问题一:
解决办法
vi ~/.cargo/config
# 放到 `$HOME/.cargo/config` 文件中[source.crates-io]registry = "https://github.com/rust-lang/crates.io-index"# 替换成你偏好的镜像源replace-with = 'sjtu'#replace-with = 'ustc'# 清华大学[source.tuna]registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"# 中国科学技术大学[source.ustc]registry = "git://mirrors.ustc.edu.cn/crates.io-index"# 上海交通大学[source.sjtu]registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"# rustcc社区[source.rustcc]registry = "git://crates.rustcc.cn/crates.io-index"[net]git-fetch-with-cli=true
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
变为上海交通大学的源,设置为从git拉取。git就不会不会被墙啦!@@。