赞
踩
Rust和Go似乎都是系统编程语言,都编译为机器码,并且都提供了出色的性能。那么,您如何决定哪种语言适合您的需要呢?
Rust
Rust于2010年上市,尽管它的构思可能要早得多。Rust通常被视为ML语言家族的一个扩展。Mozilla是Rust的审核人(underwriter) ,Servo browser engine(由Mozilla赞助)是使用Rust构建的。利用Rust的并发性和所有权优势的Servo项目的一些目标是:(i)改进并行性(ii)更好的安全性(iii)增加模块化(iv)优越的性能。
Rust 1.0于2015年5月发布。rust1.33.0于2019年2月发布。社区对rust有强有力的支持。社区项目的一些例子,比如一个用Rust编写的操作系统redox;一个线性代数和计算机图形库cgmath;还有Iron,一个并发web框架。
为什么选择rust?
为什么不选择rust?
Golang
Golang (Go)是2007年谷歌构思的,它是对该公司在开发软件基础设施时遇到的一些问题的一种回击。诸如网络系统、web编程模型和大规模计算集群所带来的问题,都是通过变通方法而不是直接解决的。由于服务器程序需要数百或数千名程序员组成数千万行代码,规模问题也发生了巨大的变化。构建时间也在增长。
根据谷歌的Rob Pike的说法,Go“被设计和开发出来是为了让在这种环境下工作更有效率。”除了其众所周知的方面,如内置并发性和垃圾收集,Go的设计考虑还包括严格的依赖关系管理、软件体系结构随系统增长的适应性以及组件之间边界的健壮性。
它于2009年11月公开,并继续作为一个开源项目。实际上,谷歌导入的是公共存储库,而不是相反。有影响力的前辈包括Hoare的CSP、Alef和Pike的Newsqueak。2012年达到1.0。Go 1.12于2019年2月发布。最新功能的亮点包括“选择加入对TLS 1.3的支持,改进的模块支持(为成为Go 1.13的默认选项做准备),对windows/arm的支持,以及改进的macOS和iOS向前兼容性。”
go在全球数千个系统中使用;它最大的成功案例之一是Docker是用Go构建的。
为什么选择golang?
为什么不选择go?
结论
如果您正在设计一个需要处理大量流量的web服务,并且希望能够同时进行垂直和水平伸缩,那么这两种语言都可以很好地工作。许多业内人士表示,Go速度更快,所以如果您有一个大型开发团队或许多服务需要编写,那么Go可能是更好的语言选择。Go和Rust都不能容忍不安全的内存访问。
Rust被描述为“一种更高级的语言,可以通过各种可能的方式进行开发”,并且“与任何其他编程语言相比,它几乎是无懈可击的”。然而,go更受欢迎,部分原因是它相对简单,开发时间较短。
这两种语言一直被视为竞争对手,部分原因是它们几乎同时出现,但正如我们所看到的,情况未必如此。Go将重点放在简单性和一致性上,允许开发人员获得更简单的编程体验。它通过对简单性的严格应用提高了大型编程团队的效率。同时,Rust使开发人员能够在粒度级别上进行控制,从控制线程与系统其他部分的行为,到控制变量的生存期。
Rust与c++、D语言直接竞争空间,也就是说,对于那些准备接受更复杂的语法和语义以获得最佳性能(如微控制器、AAA游戏引擎和web引擎)的程序员来说,Rust可用于更复杂的领域中。
与此同时,Go更像是2006年后Internet 2.0一代公司的竞争对手,这些公司希望使用比基于JVM的语言更简单的解决方案,并且已经超越了Ruby、Python和Node.js (v8)等语言。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。