Rust&Go&C++比较 £神魔★判官ぃ 2022-10-22 12:56 120阅读 0赞 最近在用Golang做了一个中型项目开发,从零搭建,所以学到很多,加上之前私下做的俩golang项目和在公司做的三四个golang项目,我也算是用golang做了不少小玩意儿了。所以计划好好学一下golang。 期间接触了一点python,但如之前用flask那次一样,死活没爱。而WEB前端这块我还在犹豫到底是学JS ES6,7呢还是TS,加上最近工作和它有点远,还是暂时挂起。 而最近发现一个更好玩的语言,Rust,简直令我沉迷,连Go都快被我抛弃了~哈哈。 这里记录下Go, C++, Rust的一些初步了解,以供自己参考。 没错,我打算以后用Rust开发游戏客户端,Web的话就TS。 ## 特点 ## > Go: 并行,简洁 > > Rust: 安全,规矩多 > > C++: 高性能,强大的自由 \#\#一句话描述 > Go: “做正确事情的C;Python的替代品” > > Rust: “务实的Haskhell;安全的C++” > > C++: “能力非常非常强大” ## 积极领域 ## > Go: 服务器(特别是网站http服务器),分布式系统,网络编程,自动化工具 > > Rust: 操作系统,底层基础软件,性能要求高的软件(如游戏,ML) > > C++: 操作系统,嵌入式开发,底层基础软件,性能要求高的软件(如游戏,ML) ## 跨平台能力 ## > Go: 简洁便利 > > Rust: 比C++简单一些 > > C++: 困难 ## 基本库支持 ## > Go: 非常强大 > > Rust: 比较强大 > > C++: 基本无意义 ## 内存管理 ## > Go: 根据对象生命周期,自动推断是放在堆上还是栈上,有自动GC。Go的GC是高频低延迟的,Java则是低频率高延迟的,所以Go的GC稍微没有那么明显,但依然有额外开销。 > > Rust: 手动声明内存分配在堆上还是栈上,然后通过scopes进行管理。所以使用者必须了解内存分配。 > > C++:自行控制内存分配,使用者必须了解内存分配。 ## 开发效率和学习难度 ## > Go: 学习曲线比较平缓。开发很快,但运行期间测试问题很多。 > > Rust: 入手相对较难,概念较多,但比C++强。开发较慢,但运行期间出问题的概率较低。 > > C++:入手难,精通更难。开发非常慢,运行期间出问题概率高。 ## 泛型支持 ## > Go: 不支持。导致很多人用interface\{\}模拟。 > > Rust: 支持。 > > C++: 支持。 ## 性能优化分析 ## > Go: pprof很方便强大。 > > Rust: 无 > > C++: 无 ## 编译构建速度 ## > Go: 快的很 > > Rust: 和C++有一拼…… > > C++: 不联编的话会要命 ## 包版本管理工具 ## > Go: 有简单的基本工具,但还需改进 > > Rust: 依赖Cargo > > C++: 无 ## 单元测试 ## > Go: 自带testing,但过于简单,建议考虑使用 testify 库 > > Rust: 没有完整的单元测试支持,但是可以使用assert做检查 > > C++: 没有完整的单元测试支持,但是可以使用assert做检查 ## 注释 ## > Go: 自带GoDoc,不太方便 > > Rust: 使用MdBook,支持Markdown,很舒服 > > C++: 使用doxygen,不方便
相关 分数比较 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhp 短命女/ 2022年11月12日 10:53/ 0 赞/ 191 阅读
相关 交换、比较 交换 比较 -------------------- 交换 请编写一个算法,不用任何额外变量交换两个整数的值。 给定一个数组 妖狐艹你老母/ 2022年06月09日 09:56/ 0 赞/ 160 阅读
相关 字符串比较 字符串比较 1. 比较是否同一字符串对象 String str1=new String("hello wolrd"); String str2=new Strin 男娘i/ 2022年06月03日 02:28/ 0 赞/ 290 阅读
相关 Linux Shell日期比较,数值比较和字符串比较及相关 Linux Shell日期比较,数值比较和字符串比较及相关 说明: 1. 把字符串当成整型进行比较,由于abcd等字符对不上0123当程序尝试去转成二进制时无法完成 青旅半醒/ 2022年05月18日 04:17/ 0 赞/ 372 阅读
相关 字符串比较 题目描述 比较两个字符串s1和s2的大小,如果s1>s2,则输出一个正数;若s1=s2,则输出0;若s1<s2,则输出一个负数。 要求:不用strcpy函数;两个字符串 红太狼/ 2022年05月05日 10:28/ 0 赞/ 358 阅读
相关 比较 形容词 副词 有所谓的比较的概念 quick large ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_1 素颜马尾好姑娘i/ 2022年04月12日 13:30/ 0 赞/ 293 阅读
相关 比较器 比较器 我们知道,使用TreeSet集合当我们存储的元素是有默认的规则时候,取出的元素顺序是升序输出的,那么当我们存储一个自定义的引用类型数据的时候也想让他们按照一个顺序 喜欢ヅ旅行/ 2022年03月08日 02:52/ 0 赞/ 318 阅读
相关 文本比较 参考:[https://www.cnblogs.com/grenet/archive/2010/06/01/1748448.html][https_www.cnblogs 亦凉/ 2022年02月03日 06:39/ 0 赞/ 339 阅读
相关 值比较 跟 索引比较 要分清 值比较 跟 索引比较。值比较常见的有字符串,数字跟布尔。索引比较常见的有对象,数组跟函数。索引比较的话只要索引不同即不等。 -------------------- 川长思鸟来/ 2021年09月22日 09:04/ 0 赞/ 449 阅读
相关 js 深比较和浅比较 浅比较: 基本类型会比较值是否相等 复杂类型会比较引用地址是否相等,如=== 深比较: 复杂类型递归遍历里面的每一个属 淡淡的烟草味﹌/ 2021年07月24日 11:39/ 0 赞/ 491 阅读
还没有评论,来说两句吧...