hhstore / blog

My Tech Blog: about Mojo / Rust / Golang / Python / Kotlin / Flutter / VueJS / Blockchain etc.
https://github.com/hhstore/blog/issues
291 stars 24 forks source link

Comparative Analysis: Rust vs Golang vs Python #352

Open hhstore opened 2 years ago

hhstore commented 2 years ago

related:

hhstore commented 2 years ago

比较分析: Rust vs Golang vs Python

说明:

Rust 语言特性与其他语言对比:

关于比较分析法:

hhstore commented 2 years ago

Rust 核心亮点:

Rust 比较糟糕的设计:

hhstore commented 2 years ago

Rust 语言特性与其他语言对比:

注意:

Why Python?

Why Golang?

Why C++?

Why Haskell?

特性对比:

Rust Python Golang C++ Haskell 备注
基础数据类型 xxxxxxxxxxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx
struct 对应 class go 类似, 用作类型设计<数据+行为> xxxxxxxxxx xxxxxxxxxx rust 的 struct, 设计和使用方式上和 go 非常像
trait + impl 抽象类 ≈ interface 接口类型. 区别是 trait 可以含默认接口实现 xxxxxxxxxx xxxxxxxxxx rust 是显示声明 impl 实现一个 trait, go 是隐式实现.
泛型 动态语言, 鸭子类型, 无需 go1.8 添加支持 xxxxxxxxxx xxxxxxxxxx rust 的泛型设计, 非常简洁
xxxxxxxxxxxxxxxxxx go 的代码生成器(generate) xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx
类型标注 xxxxxxxxxxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx
模块(mod.rs) __init__.py 文件 无, 默认一个文件夹, 为一个 module xxxxxxxxxx xxxxxxxxxx rust 这个 模块设计, 接近 Python, 范围控制颗粒度更细
模块作用域范围 文件内 文件夹内(共享作用域/隐式可见) xxxxxxxxxx xxxxxxxxxx rust 使用 mod 关键字控制, 默认是文件内可见, 通过 mod 显式导入
内存所有权(ownership) 无明确概念 xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx 类似 c/c++ 内存概念
变量生命周期 xxxxxxxxxxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx
变量类型标注 类似 type hint, 区别: 约束 vs 编译器 check xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx
move vs copy 语义 无需关注 引用类型 vs 值类型 xxxxxxxxxx xxxxxxxxxx 复制 vs 引用, 基本同 c/c++ 的指针概念
单元测试 测试方法以 test 为前缀 xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx #[cfg(test)] #[test] 标注测试方法
集成测试 pytest, unittest 包 _test.go 后缀 xxxxxxxxxx xxxxxxxxxx rust 隐含 tests 文件夹, 是集成测试专用
cargo pip 包管理工具 go mod 包管理工具 xxxxxxxxxx xxxxxxxxxx rust 包管理工具
cargo bin __main__ 隐式入口 main() 函数入口 xxxxxxxxxx xxxxxxxxxx cargo bin 是二进制类型项目
cargo lib python 常规的 lib 项目就是, 无特别约束 xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx cargo lib 是库类型项目
https://crates.io/ https://pypi.org/ 包托管平台 无, 依赖 github.com 实现包获取 xxxxxxxxxx xxxxxxxxxx rust 官方包托管平台, 自带 docs 托管
https://docs.rs/ 无, 项目方自行维护 无, 项目方自行维护 xxxxxxxxxx xxxxxxxxxx rust 文档托管平台
xxxxxxxxxx xxxxxxxxxxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx
xxxxxxxxxx xxxxxxxxxxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx
xxxxxxxxxx xxxxxxxxxxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx
xxxxxxxxxx xxxxxxxxxxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx
xxxxxxxxxx xxxxxxxxxxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx
xxxxxxxxxx xxxxxxxxxxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx
hhstore commented 2 years ago

1

hhstore commented 2 years ago

1

hhstore commented 2 years ago

1