这篇短文解释了为什么我不认为Go和Rust是竞争对手。为什么人们认为Go和Rust是竞争者在解释为什么我不认为Go和Rust是竞争者之前,我想解释一下为什么会提出这个问题。Rust和Go几乎同时发布。Go从2007年开始构思,并于2009年11月公开。Rust于2010年发布,仅晚了几个月,尽管Graydon表示Rust的构思可能更早。无论如何,这两种语言都具有其前辈的贵族血统。对于Go,有Hoare的CSP、Alef和Pike的Newsqueak,而Rust是ML语言家族之一。Rust和Go都被认为是内存安全的。虽然这个说法是正确的,但两种语言都不允许不安全的内存访问,更重要的是,世界再也不能容忍一种内存不安全的新语言。事实是,Go和Rust等语言经过数十年的证据表明,在现实世界中,程序员通常无法安全地手动管理内存。同样年轻的语言,Go的1.0版本是在2012年发布的,而Rust的1.0版本是今年早些时候(2015年),这意味着它们既有野心又有上进心,想要占领现有编程语言的市场。这些迹象都可以解释为什么我们看到的Rust和Go在竞争。环顾四周,确实很难找到他们之间的其他联系,他们出现得太偶然了。一首歌在1周前由2个人翻译。丁丁干得好!为什么我认为Rust和Go不是竞争对手总结一下,我认为Go和Rust没有竞争力,原因如下:Rust注重“免费”抽象。如果这听起来很熟悉,那么您已经使用C++多年了。为了确保语言的简单性和正交性,Go将许多低级操作推迟到运行时。Rust专门设计用于与C互操作;Rust代码通常驻留在从C调用的其他更大的程序中。Go使用cgo在语言之间进行交互,但这并不是设计Go的主要原因。Go首先关注并发性。并不是说Rust中没有类似Go的并发框架,而是Rust将这部分留给了程序员。Go注重程序员的编码效率,这一点贯穿于整个软件开发生命周期。Rust作为LLVM的顶层代码,有很多类似的做法。Finlay翻译1周前由1人顶顶完成。翻译的不错!Rust和Go不是竞争对手。Go专注于提高大型团队中开发人员的工作效率,遵循严格应用简单性(rigidapplicationofsimplicity)的原则——拒绝复杂性和歧义性视角。Rust是为那些不能容忍不安全的内存访问或运行时开销的程序员准备的(Go也一样,我认为没有人想学习一种新的不安全的编程语言)——这不安全,或者带来(额外)的想法开销将被拒绝,至少在核心语言之外。Rust的竞争对手是C++和D编程语言。这类语言的程序员很可能会接受更复杂的语法和语义(并且可能有更高的可读性成本——注意,应该是更难阅读代码)以换取***性能。例如MCU、AAA游戏引擎、网页渲染引擎(以及其他应用领域)。Go从2006年开始主要抢占互联网2.0公司的市场,他们大量采用(淘汰)Ruby、Python、Node.js(v8)语言,没有耐心使用基于JVM的语言部署成本高昂。英文原文:为什么Go和Rust不是竞争对手
